From b99baf0bcc086fb734a77fbce8103c4809fcae9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Sun, 4 Oct 2015 23:05:59 +0200 Subject: [PATCH] Added special handling for Magnanimous Tools. Closes #1467. --- .../cil/oc/integration/magtools/ModMagnanimousTools.scala | 7 +++++++ .../li/cil/oc/integration/tcon/ModTinkersConstruct.scala | 3 +++ .../li/cil/oc/integration/util/TinkersConstruct.scala | 7 ------- src/main/scala/li/cil/oc/server/agent/Player.scala | 8 +++++--- 4 files changed, 15 insertions(+), 10 deletions(-) create mode 100644 src/main/scala/li/cil/oc/integration/magtools/ModMagnanimousTools.scala delete mode 100644 src/main/scala/li/cil/oc/integration/util/TinkersConstruct.scala diff --git a/src/main/scala/li/cil/oc/integration/magtools/ModMagnanimousTools.scala b/src/main/scala/li/cil/oc/integration/magtools/ModMagnanimousTools.scala new file mode 100644 index 000000000..c3ff017dc --- /dev/null +++ b/src/main/scala/li/cil/oc/integration/magtools/ModMagnanimousTools.scala @@ -0,0 +1,7 @@ +package li.cil.oc.integration.magtools + +import net.minecraft.item.ItemStack + +object ModMagnanimousTools { + def isMagTool(stack: ItemStack) = stack != null && stack.getItem.getClass.getName.startsWith("com.vapourdrive.magtools.items.tools.") +} diff --git a/src/main/scala/li/cil/oc/integration/tcon/ModTinkersConstruct.scala b/src/main/scala/li/cil/oc/integration/tcon/ModTinkersConstruct.scala index 633f6605c..d42d6625c 100644 --- a/src/main/scala/li/cil/oc/integration/tcon/ModTinkersConstruct.scala +++ b/src/main/scala/li/cil/oc/integration/tcon/ModTinkersConstruct.scala @@ -3,6 +3,7 @@ package li.cil.oc.integration.tcon import li.cil.oc.api import li.cil.oc.integration.ModProxy import li.cil.oc.integration.Mods +import net.minecraft.item.ItemStack import net.minecraftforge.common.MinecraftForge object ModTinkersConstruct extends ModProxy { @@ -13,4 +14,6 @@ object ModTinkersConstruct extends ModProxy { MinecraftForge.EVENT_BUS.register(EventHandlerTinkersConstruct) } + + def isInfiTool(stack: ItemStack) = stack != null && stack.getItem.getClass.getName.startsWith("tconstruct.") } diff --git a/src/main/scala/li/cil/oc/integration/util/TinkersConstruct.scala b/src/main/scala/li/cil/oc/integration/util/TinkersConstruct.scala deleted file mode 100644 index eb24e38f2..000000000 --- a/src/main/scala/li/cil/oc/integration/util/TinkersConstruct.scala +++ /dev/null @@ -1,7 +0,0 @@ -package li.cil.oc.integration.util - -import net.minecraft.item.ItemStack - -object TinkersConstruct { - def isInfiTool(stack: ItemStack) = stack != null && stack.getItem.getClass.getName.startsWith( """tconstruct.""") -} diff --git a/src/main/scala/li/cil/oc/server/agent/Player.scala b/src/main/scala/li/cil/oc/server/agent/Player.scala index ba9f1a581..254a56024 100644 --- a/src/main/scala/li/cil/oc/server/agent/Player.scala +++ b/src/main/scala/li/cil/oc/server/agent/Player.scala @@ -12,8 +12,9 @@ import li.cil.oc.api.internal import li.cil.oc.api.network.Connector import li.cil.oc.common.EventHandler import li.cil.oc.integration.Mods +import li.cil.oc.integration.magtools.ModMagnanimousTools +import li.cil.oc.integration.tcon.ModTinkersConstruct import li.cil.oc.integration.util.PortalGun -import li.cil.oc.integration.util.TinkersConstruct import li.cil.oc.util.BlockPosition import li.cil.oc.util.InventoryUtils import net.minecraft.block.Block @@ -332,12 +333,13 @@ class Player(val agent: internal.Agent) extends FakePlayer(agent.world.asInstanc // their break logic in onBlockStartBreak but return true to cancel // further processing. We also need to adjust our offset for their ray- // tracing implementation. - if (TinkersConstruct.isInfiTool(stack)) { + val needsSpecialPlacement = ModTinkersConstruct.isInfiTool(stack) || ModMagnanimousTools.isMagTool(stack) + if (needsSpecialPlacement) { posY -= 1.62 prevPosY = posY } val cancel = stack != null && stack.getItem.onBlockStartBreak(stack, x, y, z, this) - if (cancel && TinkersConstruct.isInfiTool(stack)) { + if (cancel && needsSpecialPlacement) { posY += 1.62 prevPosY = posY return adjustedBreakTime