Skip to content

Commit a979cb2

Browse files
committed
catch rebreak logic up to the rest and raise minimum secondary swap ticks to 3
1 parent a3a8bd8 commit a979cb2

File tree

4 files changed

+11
-6
lines changed

4 files changed

+11
-6
lines changed

src/main/kotlin/com/lambda/interaction/request/breaking/BreakInfo.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ package com.lambda.interaction.request.breaking
2020
import com.lambda.interaction.construction.context.BreakContext
2121
import com.lambda.interaction.request.ActionInfo
2222
import com.lambda.interaction.request.breaking.BreakInfo.BreakType.Primary
23+
import com.lambda.interaction.request.breaking.BreakInfo.BreakType.Rebreak
2324
import com.lambda.util.BlockUtils.calcItemBlockBreakingDelta
2425
import com.lambda.util.Describable
2526
import com.lambda.util.NamedEnum
@@ -125,7 +126,8 @@ data class BreakInfo(
125126

126127
fun getBreakThreshold() =
127128
when (type) {
128-
Primary -> breakConfig.breakThreshold
129+
Primary,
130+
Rebreak-> breakConfig.breakThreshold
129131
else -> 1.0f
130132
}
131133

src/main/kotlin/com/lambda/interaction/request/breaking/BreakManager.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -772,6 +772,7 @@ object BreakManager : RequestHandler<BreakRequest>(
772772
}
773773

774774
primaryBreak?.let { primary ->
775+
if (!handlePreProcessing()) return false
775776
updateBreakProgress(primary)
776777
}
777778
return true

src/main/kotlin/com/lambda/interaction/request/breaking/RebreakManager.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ object RebreakManager {
3535
var rebreak: BreakInfo? = null
3636

3737
init {
38-
listen<TickEvent.Post>(priority = Int.MIN_VALUE) {
38+
listen<TickEvent.Post>(priority = Int.MIN_VALUE + 1) {
3939
rebreak?.run {
4040
if (!progressedThisTick) {
4141
breakingTicks++
@@ -89,7 +89,8 @@ object RebreakManager {
8989

9090
val context = reBreak.context
9191
val breakDelta = context.cachedState.calcBreakDelta(player, world, context.blockPos, reBreak.breakConfig)
92-
return@runSafe if ((reBreak.breakingTicks - reBreak.breakConfig.fudgeFactor) * breakDelta >= reBreak.breakConfig.breakThreshold) {
92+
val breakTicks = reBreak.breakingTicks - reBreak.breakConfig.fudgeFactor
93+
return@runSafe if (breakTicks * breakDelta >= reBreak.getBreakThreshold() && reBreak.swapInfo.canCompleteBreak) {
9394
if (reBreak.breakConfig.breakConfirmation != BreakConfig.BreakConfirmationMode.AwaitThenBreak) {
9495
destroyBlock(reBreak)
9596
}

src/main/kotlin/com/lambda/interaction/request/breaking/SwapInfo.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
package com.lambda.interaction.request.breaking
1919

2020
import com.lambda.interaction.request.breaking.BreakInfo.BreakType.Primary
21+
import com.lambda.interaction.request.breaking.BreakInfo.BreakType.Rebreak
2122
import com.lambda.interaction.request.breaking.BreakManager.currentStack
2223
import com.lambda.module.modules.client.TaskFlowModule
2324
import com.lambda.util.BlockUtils.calcItemBlockBreakingDelta
@@ -32,8 +33,8 @@ data class SwapInfo(
3233
val minKeepTicks: Int = 0,
3334
) {
3435
val canCompleteBreak
35-
get() = (BreakManager.heldTicks + 1) >= if (type == Primary) breakConfig.serverSwapTicks
36-
else breakConfig.serverSwapTicks.coerceAtLeast(2)
36+
get() = (BreakManager.heldTicks + 1) >= if (type == Primary || type == Rebreak) breakConfig.serverSwapTicks
37+
else breakConfig.serverSwapTicks.coerceAtLeast(3)
3738

3839
companion object {
3940
val EMPTY = SwapInfo(Primary)
@@ -63,7 +64,7 @@ data class SwapInfo(
6364
!withoutEfficiency) 1
6465
else 0
6566
} else {
66-
val serverSwapTicks = breakConfig.serverSwapTicks.coerceAtLeast(2)
67+
val serverSwapTicks = breakConfig.serverSwapTicks.coerceAtLeast(3)
6768
val swapTickProgress = breakDelta * (breakTicks + serverSwapTicks - 1)
6869
if (swapTickProgress >= threshold && swapStack.heldTicks < serverSwapTicks) 1
6970
else 0

0 commit comments

Comments
 (0)