@@ -55,7 +55,7 @@ import net.minecraft.util.math.Direction
5555class PacketBreakBlock @Ta5kBuilder constructor(
5656 private val ctx : BreakContext ,
5757 private var tool : Item ? ,
58- private val breakThreshold : Float = TaskFlowModule .build.breakThreshold,
58+ private var breakThreshold : Float = TaskFlowModule .build.breakThreshold,
5959 private val internalBreakConfirmation : Boolean = false ,
6060 private val swingHand : SwingHandStyle = SwingHandStyle .StartAndEnd ,
6161 private val breakingTexture : Boolean = true ,
@@ -217,6 +217,12 @@ class PacketBreakBlock @Ta5kBuilder constructor(
217217 }
218218 }
219219
220+ override fun SafeContext.onCancel () {
221+ connection.sendPacket(PlayerActionC2SPacket (Action .ABORT_DESTROY_BLOCK , blockPos, side))
222+ setBreakingTextureStage(- 1 )
223+ player.resetLastAttackedTicks()
224+ }
225+
220226 private fun SafeContext.done () =
221227 ! collectDrop && blockState.isAir
222228
@@ -329,7 +335,7 @@ class PacketBreakBlock @Ta5kBuilder constructor(
329335
330336 if (notAir && blockState.calcItemBlockBreakingDelta(player, world, blockPos, getToolItemStack()) >= breakThreshold) {
331337 onBlockBreak()
332- startBreakPacket(blockPos, side, sequence)
338+ startBreakPacket(sequence)
333339 return true
334340 } else {
335341 startedBreaking = true
@@ -341,10 +347,10 @@ class PacketBreakBlock @Ta5kBuilder constructor(
341347 if (breakingTexture) {
342348 setBreakingTextureStage()
343349 }
344- abortBreakPacket(blockPos, side, sequence)
345- stopBreakPacket(blockPos, side, sequence + 1 )
346- startBreakPacket(blockPos, side, sequence + 2 )
347- stopBreakPacket(blockPos, side, sequence + 3 )
350+ abortBreakPacket(sequence)
351+ stopBreakPacket(sequence + 1 )
352+ startBreakPacket(sequence + 2 )
353+ stopBreakPacket(sequence + 3 )
348354 (0 .. 3 ).forEach { i ->
349355 pendingUpdateManager.incrementSequence()
350356 }
@@ -395,25 +401,29 @@ class PacketBreakBlock @Ta5kBuilder constructor(
395401 private fun SafeContext.getToolItemStack (): ItemStack =
396402 tool?.select()?.itemStack ? : player.mainHandStack
397403
398- private fun SafeContext.startBreakPacket (pos : BlockPos , direction : Direction , sequence : Int ) =
399- breakPacket(pos, direction, Action .START_DESTROY_BLOCK , sequence)
404+ private fun SafeContext.startBreakPacket (sequence : Int ) =
405+ breakPacket(Action .START_DESTROY_BLOCK , sequence)
400406
401- private fun SafeContext.stopBreakPacket (pos : BlockPos , direction : Direction , sequence : Int ) =
402- breakPacket(pos, direction, Action .STOP_DESTROY_BLOCK , sequence)
407+ private fun SafeContext.stopBreakPacket (sequence : Int ) =
408+ breakPacket(Action .STOP_DESTROY_BLOCK , sequence)
403409
404- private fun SafeContext.abortBreakPacket (pos : BlockPos , direction : Direction , sequence : Int ) =
405- breakPacket(pos, direction, Action .ABORT_DESTROY_BLOCK , sequence)
410+ private fun SafeContext.abortBreakPacket (sequence : Int ) =
411+ breakPacket(Action .ABORT_DESTROY_BLOCK , sequence)
406412
407- private fun SafeContext.breakPacket (pos : BlockPos , direction : Direction , action : Action , sequence : Int ) =
413+ private fun SafeContext.breakPacket (action : Action , sequence : Int ) =
408414 connection.sendPacket(
409415 PlayerActionC2SPacket (
410416 action,
411- pos ,
412- direction ,
417+ blockPos ,
418+ side ,
413419 sequence
414420 )
415421 )
416422
423+ fun transformToSecondaryBreak () {
424+ breakThreshold = 1.0f
425+ }
426+
417427 enum class SwingHandStyle {
418428 Constant ,
419429 StartAndEnd ,
0 commit comments