mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-19 04:15:14 -04:00
interaction: forbid block breaking through entities
This commit is contained in:
parent
31045a0b3a
commit
298c27bcd1
@ -24,6 +24,7 @@ import de.bixilon.minosoft.data.registries.enchantment.DefaultEnchantments
|
|||||||
import de.bixilon.minosoft.data.registries.fluid.DefaultFluids
|
import de.bixilon.minosoft.data.registries.fluid.DefaultFluids
|
||||||
import de.bixilon.minosoft.data.registries.items.tools.MiningToolItem
|
import de.bixilon.minosoft.data.registries.items.tools.MiningToolItem
|
||||||
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
||||||
|
import de.bixilon.minosoft.gui.rendering.input.camera.hit.BlockRaycastHit
|
||||||
import de.bixilon.minosoft.modding.event.events.BlockBreakAckEvent
|
import de.bixilon.minosoft.modding.event.events.BlockBreakAckEvent
|
||||||
import de.bixilon.minosoft.modding.event.invoker.CallbackEventInvoker
|
import de.bixilon.minosoft.modding.event.invoker.CallbackEventInvoker
|
||||||
import de.bixilon.minosoft.protocol.packets.c2s.play.ArmSwingC2SP
|
import de.bixilon.minosoft.protocol.packets.c2s.play.ArmSwingC2SP
|
||||||
@ -70,10 +71,9 @@ class BreakInteractionHandler(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun cancelDigging() {
|
private fun cancelDigging() {
|
||||||
breakPosition?.let {
|
val breakPosition = breakPosition ?: return
|
||||||
connection.sendPacket(PlayerActionC2SP(PlayerActionC2SP.Actions.CANCELLED_DIGGING, it))
|
connection.sendPacket(PlayerActionC2SP(PlayerActionC2SP.Actions.CANCELLED_DIGGING, breakPosition))
|
||||||
clearDigging()
|
clearDigging()
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun swingArm() {
|
private fun swingArm() {
|
||||||
@ -98,9 +98,9 @@ class BreakInteractionHandler(
|
|||||||
cancelDigging()
|
cancelDigging()
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
val raycastHit = renderWindow.inputHandler.camera.blockTarget
|
val raycastHit = renderWindow.inputHandler.camera.nonFluidTarget
|
||||||
|
|
||||||
if (raycastHit == null) {
|
if (raycastHit !is BlockRaycastHit) {
|
||||||
cancelDigging()
|
cancelDigging()
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user