Skip to content

Commit ef5e7bc

Browse files
committed
config passing cleanup
1 parent 780148a commit ef5e7bc

File tree

14 files changed

+235
-251
lines changed

14 files changed

+235
-251
lines changed

src/main/kotlin/com/lambda/interaction/construction/simulation/BuildSimulator.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -817,7 +817,7 @@ object BuildSimulator {
817817
sorter = compareByDescending<ItemStack> {
818818
it.canBreak(CachedBlockPosition(world, pos, false))
819819
}.thenByDescending {
820-
state.calcItemBlockBreakingDelta(player, world, pos, it)
820+
state.calcItemBlockBreakingDelta(pos, it)
821821
}
822822
) {
823823
isTool() and if (breakConfig.suitableToolsOnly) {
@@ -859,7 +859,7 @@ object BuildSimulator {
859859
var bestStack = ItemStack.EMPTY
860860
var bestBreakDelta = -1f
861861
containerStacks.forEach { stack ->
862-
val breakDelta = state.calcItemBlockBreakingDelta(player, world, pos, stack)
862+
val breakDelta = state.calcItemBlockBreakingDelta(pos, stack)
863863
if (breakDelta > bestBreakDelta ||
864864
(stack == player.mainHandStack && breakDelta >= bestBreakDelta)
865865
) {

src/main/kotlin/com/lambda/interaction/request/PostActionHandler.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
package com.lambda.interaction.request
1919

20-
import com.lambda.config.groups.BuildConfig
20+
import com.lambda.context.Automated
2121
import com.lambda.event.events.ConnectionEvent
2222
import com.lambda.event.events.TickEvent
2323
import com.lambda.event.listener.SafeListener.Companion.listen
@@ -48,8 +48,8 @@ abstract class PostActionHandler<T : ActionInfo> {
4848
pendingInteractionsList.remove(context)
4949
}
5050

51-
fun setPendingConfigs(build: BuildConfig) {
52-
BrokenBlockHandler.pendingActions.setSizeLimit(build.breakConfig.maxPendingBreaks)
53-
BrokenBlockHandler.pendingActions.setDecayTime(build.interactionTimeout * 50L)
51+
fun Automated.setPendingConfigs() {
52+
BrokenBlockHandler.pendingActions.setSizeLimit(buildConfig.breakConfig.maxPendingBreaks)
53+
BrokenBlockHandler.pendingActions.setDecayTime(buildConfig.interactionTimeout * 50L)
5454
}
5555
}

src/main/kotlin/com/lambda/interaction/request/RequestHandler.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,14 @@
1818
package com.lambda.interaction.request
1919

2020
import com.lambda.context.Automated
21+
import com.lambda.context.AutomatedSafeContext
2122
import com.lambda.context.SafeContext
2223
import com.lambda.core.Loadable
2324
import com.lambda.event.Event
2425
import com.lambda.event.events.TickEvent
2526
import com.lambda.event.listener.SafeListener.Companion.listen
2627
import com.lambda.interaction.request.ManagerUtils.accumulatedManagerPriority
27-
import com.lambda.threading.runSafe
28+
import com.lambda.threading.runSafeAutomated
2829
import kotlin.reflect.KClass
2930

3031
/**
@@ -76,7 +77,7 @@ abstract class RequestHandler<R : Request>(
7677
listen(instance, priority = (Int.MAX_VALUE - 1) - (accumulatedManagerPriority - stagePriority)) {
7778
tickStage = stage
7879
queuedRequest?.let { request ->
79-
handleRequest(request)
80+
request.runSafeAutomated { handleRequest(request) }
8081
request.fresh = false
8182
queuedRequest = null
8283
}
@@ -107,7 +108,7 @@ abstract class RequestHandler<R : Request>(
107108
return request
108109
}
109110

110-
runSafe {
111+
request.runSafeAutomated {
111112
handleRequest(request)
112113
request.fresh = false
113114
}
@@ -117,7 +118,7 @@ abstract class RequestHandler<R : Request>(
117118
/**
118119
* Handles a request
119120
*/
120-
abstract fun SafeContext.handleRequest(request: R)
121+
abstract fun AutomatedSafeContext.handleRequest(request: R)
121122

122123
protected abstract fun preEvent(): Event
123124
}

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

Lines changed: 33 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
package com.lambda.interaction.request.breaking
1919

20+
import com.lambda.context.SafeContext
2021
import com.lambda.interaction.construction.context.BreakContext
2122
import com.lambda.interaction.request.ActionInfo
2223
import com.lambda.interaction.request.LogContext
@@ -26,10 +27,10 @@ import com.lambda.interaction.request.breaking.BreakInfo.BreakType.Rebreak
2627
import com.lambda.interaction.request.breaking.BreakInfo.BreakType.RedundantSecondary
2728
import com.lambda.interaction.request.breaking.BreakInfo.BreakType.Secondary
2829
import com.lambda.interaction.request.breaking.BreakManager.calcBreakDelta
30+
import com.lambda.threading.runSafeAutomated
2931
import com.lambda.util.Describable
3032
import com.lambda.util.NamedEnum
3133
import net.minecraft.client.network.ClientPlayerEntity
32-
import net.minecraft.client.network.ClientPlayerInteractionManager
3334
import net.minecraft.client.world.ClientWorld
3435
import net.minecraft.entity.ItemEntity
3536
import net.minecraft.item.ItemStack
@@ -112,19 +113,19 @@ data class BreakInfo(
112113
progressedThisTick = false
113114
}
114115

116+
context(safeContext: SafeContext)
115117
fun setBreakingTextureStage(
116118
player: ClientPlayerEntity,
117119
world: ClientWorld,
118-
stage: Int = getBreakTextureProgress(player, world)
119-
) {
120-
world.setBlockBreakingInfo(player.id, context.blockPos, stage)
121-
}
120+
stage: Int = getBreakTextureProgress()
121+
) = world.setBlockBreakingInfo(player.id, context.blockPos, stage)
122122

123-
private fun getBreakTextureProgress(player: ClientPlayerEntity, world: ClientWorld): Int {
124-
val swapMode = breakConfig.swapMode
123+
context(safeContext: SafeContext)
124+
private fun getBreakTextureProgress(): Int = with(safeContext) {
125125
val item =
126-
if (swapMode.isEnabled() && swapMode != BreakConfig.SwapMode.Start) swapStack else player.mainHandStack
127-
val breakDelta = context.cachedState.calcBreakDelta(player, world, context.blockPos, breakConfig, item)
126+
if (breakConfig.swapMode.isEnabled() && breakConfig.swapMode != BreakConfig.SwapMode.Start) swapStack
127+
else player.mainHandStack
128+
val breakDelta = request.runSafeAutomated { context.cachedState.calcBreakDelta(context.blockPos, item) }
128129
val progress = (breakDelta * breakingTicks) / (getBreakThreshold() + (breakDelta * breakConfig.fudgeFactor))
129130
return if (progress > 0.0f) (progress * 10.0f).toInt().coerceAtMost(9) else -1
130131
}
@@ -136,23 +137,29 @@ data class BreakInfo(
136137
else -> 1.0f
137138
}
138139

139-
fun startBreakPacket(world: ClientWorld, interaction: ClientPlayerInteractionManager) =
140-
breakPacket(Action.START_DESTROY_BLOCK, world, interaction)
141-
142-
fun stopBreakPacket(world: ClientWorld, interaction: ClientPlayerInteractionManager) =
143-
breakPacket(Action.STOP_DESTROY_BLOCK, world, interaction)
144-
145-
fun abortBreakPacket(world: ClientWorld, interaction: ClientPlayerInteractionManager) =
146-
breakPacket(Action.ABORT_DESTROY_BLOCK, world, interaction)
147-
148-
private fun breakPacket(action: Action, world: ClientWorld, interaction: ClientPlayerInteractionManager) =
149-
interaction.sendSequencedPacket(world) { sequence: Int ->
150-
PlayerActionC2SPacket(
151-
action,
152-
context.blockPos,
153-
context.result.side,
154-
sequence
155-
)
140+
context(_: SafeContext)
141+
fun startBreakPacket() =
142+
breakPacket(Action.START_DESTROY_BLOCK)
143+
144+
context(_: SafeContext)
145+
fun stopBreakPacket() =
146+
breakPacket(Action.STOP_DESTROY_BLOCK)
147+
148+
context(_: SafeContext)
149+
fun abortBreakPacket() =
150+
breakPacket(Action.ABORT_DESTROY_BLOCK)
151+
152+
context(safeContext: SafeContext)
153+
private fun breakPacket(action: Action) =
154+
with(safeContext) {
155+
interaction.sendSequencedPacket(world) { sequence: Int ->
156+
PlayerActionC2SPacket(
157+
action,
158+
context.blockPos,
159+
context.result.side,
160+
sequence
161+
)
162+
}
156163
}
157164

158165
override fun getLogContextBuilder(): LogContextBuilder.() -> Unit = {

0 commit comments

Comments
 (0)