From ca62dd0de3938f325de9c0a6bae8c10121428e30 Mon Sep 17 00:00:00 2001 From: tterrag1098 Date: Sat, 3 Oct 2015 22:32:01 -0400 Subject: [PATCH] Fix #22 with in-world chiseling, also add #3 creative in-world chiseling --- .../chisel/item/chisel/ChiselController.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/main/java/team/chisel/item/chisel/ChiselController.java b/src/main/java/team/chisel/item/chisel/ChiselController.java index c5c6dfe5..ac39719c 100644 --- a/src/main/java/team/chisel/item/chisel/ChiselController.java +++ b/src/main/java/team/chisel/item/chisel/ChiselController.java @@ -15,6 +15,7 @@ import net.minecraft.item.ItemStack; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.event.entity.player.PlayerInteractEvent; +import net.minecraftforge.event.world.BlockEvent; import net.minecraftforge.oredict.OreDictionary; import cpw.mods.fml.common.eventhandler.SubscribeEvent; @@ -86,11 +87,8 @@ public final class ChiselController { for (int i = 0; i < variations.length; i++) { ICarvingVariation v = variations[i]; if (v.getBlock() == block && v.getBlockMeta() == metadata) { - if(shifting) - idx = (i - 1) % variations.length; // move to the previous in the group - else - idx = (i + 1) % variations.length; // move to the next in the group - break; + idx = i + variations.length + (shifting ? -1 : 1); + idx %= variations.length; } } @@ -115,4 +113,12 @@ public final class ChiselController { } } + // This still shows the block being broken, but it's better than nothing + @SubscribeEvent + public void onBlockBreak(BlockEvent.BreakEvent event) { + ItemStack stack = event.getPlayer().getCurrentEquippedItem(); + if (event.getPlayer().capabilities.isCreativeMode && stack != null && stack.getItem() instanceof IChiselItem) { + event.setCanceled(true); + } + } }