Skip to content

Commit 0a6e7de

Browse files
committed
sorter setting for breaks
1 parent 40022f9 commit 0a6e7de

File tree

5 files changed

+26
-6
lines changed

5 files changed

+26
-6
lines changed

common/src/main/kotlin/com/lambda/config/groups/BreakSettings.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ class BreakSettings(
2929
) : BreakConfig() {
3030
val page by c.setting("Break Page", Page.General, visibility = vis)
3131
override val breakMode by c.setting("Break Mode", BreakMode.Packet) { vis() && page == Page.General }
32+
override val sorter by c.setting("Sorter", SortMode.Closest, "The order in which breaks are performed") { vis() && page == Page.General }
3233
override val reBreak by c.setting("ReBreak", true, "Re-breaks blocks after they've been broken once") { vis() && page == Page.General }
3334
override val unsafeCancels by c.setting("Unsafe Cancels", true, "Allows cancelling block breaking even if the server might continue breaking sever side, potentially causing unexpected state changes") { vis() && page == Page.General }
3435
override val breakThreshold by c.setting("Break Threshold", 0.70f, 0.1f..1.0f, 0.01f, "The break amount at which the block is considered broken") { vis() && page == Page.General }

common/src/main/kotlin/com/lambda/interaction/construction/context/BreakContext.kt

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,38 +20,49 @@ package com.lambda.interaction.construction.context
2020
import com.lambda.context.SafeContext
2121
import com.lambda.graphics.renderer.esp.DirectionMask
2222
import com.lambda.graphics.renderer.esp.DirectionMask.exclude
23+
import com.lambda.interaction.request.breaking.BreakConfig
2324
import com.lambda.interaction.request.breaking.BreakRequest
2425
import com.lambda.interaction.request.hotbar.HotbarManager
2526
import com.lambda.interaction.request.hotbar.HotbarRequest
2627
import com.lambda.interaction.request.rotating.RotationRequest
28+
import com.lambda.module.modules.client.TaskFlowModule
2729
import com.lambda.util.BlockUtils.emptyState
2830
import net.minecraft.block.BlockState
2931
import net.minecraft.block.FallingBlock
3032
import net.minecraft.util.hit.BlockHitResult
3133
import net.minecraft.util.math.BlockPos
3234
import java.awt.Color
35+
import kotlin.random.Random
3336

3437
data class BreakContext(
3538
override val result: BlockHitResult,
3639
override val rotation: RotationRequest,
3740
override var hotbarIndex: Int,
3841
override var cachedState: BlockState,
39-
var instantBreak: Boolean
42+
var instantBreak: Boolean,
43+
val sortMode: BreakConfig.SortMode = TaskFlowModule.build.breaking.sorter
4044
) : BuildContext() {
4145
private val baseColor = Color(222, 0, 0, 25)
4246
private val sideColor = Color(222, 0, 0, 100)
4347

4448
override val blockPos: BlockPos = result.blockPos
4549
override val expectedState: BlockState = cachedState.emptyState
4650

51+
val random = Random.nextDouble()
52+
4753
override fun compareTo(other: BuildContext): Int {
4854
return when (other) {
4955
is BreakContext -> compareByDescending<BreakContext> {
5056
if (it.cachedState.block is FallingBlock) it.blockPos.y else 0
5157
}.thenBy {
5258
it.instantBreak
5359
}.thenBy {
54-
it.rotation.target.angleDistance
60+
when (sortMode) {
61+
BreakConfig.SortMode.Closest -> it.distance
62+
BreakConfig.SortMode.Farthest -> -it.distance
63+
BreakConfig.SortMode.Rotation -> it.rotation.target.angleDistance
64+
BreakConfig.SortMode.Random -> it.random
65+
}
5566
}.thenBy {
5667
it.hotbarIndex == HotbarManager.serverSlot
5768
}.compare(this, other)

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -698,7 +698,8 @@ object BuildSimulator {
698698
rotationRequest,
699699
player.inventory.selectedSlot,
700700
state,
701-
instantBreakable(state, pos, breaking.breakThreshold)
701+
instantBreakable(state, pos, breaking.breakThreshold),
702+
breaking.sorter
702703
)
703704
acc.add(BreakResult.Break(pos, breakContext))
704705
return acc

common/src/main/kotlin/com/lambda/interaction/request/breaking/BreakConfig.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import java.awt.Color
2525

2626
abstract class BreakConfig : RequestConfig<BreakRequest>() {
2727
abstract val breakMode: BreakMode
28+
abstract val sorter: SortMode
2829
abstract val reBreak: Boolean
2930
abstract val unsafeCancels: Boolean
3031
abstract val breakThreshold: Float
@@ -77,6 +78,13 @@ abstract class BreakConfig : RequestConfig<BreakRequest>() {
7778
Packet
7879
}
7980

81+
enum class SortMode {
82+
Closest,
83+
Farthest,
84+
Rotation,
85+
Random
86+
}
87+
8088
enum class SwingMode {
8189
Constant,
8290
StartAndEnd,

common/src/main/kotlin/com/lambda/module/modules/player/AntiAim.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,6 @@ object AntiAim : Module(
7272
private var currentYaw = 0.0f
7373
private var currentPitch = 0.0f
7474

75-
private val random = Random(0)
7675
private var jitterRight = true
7776
private var jitterUp = true
7877
private var pitchingUp = true
@@ -90,7 +89,7 @@ object AntiAim : Module(
9089
LeftRight.Right -> currentYaw + yawSpeed
9190
}
9291
YawMode.Jitter -> {
93-
val delta = random.nextFloat() * (yawSpeed)
92+
val delta = Random.nextFloat() * (yawSpeed)
9493
if (jitterRight) {
9594
jitterRight = false
9695
currentYaw + delta
@@ -131,7 +130,7 @@ object AntiAim : Module(
131130
}
132131
}
133132
PitchMode.Jitter -> {
134-
val delta = random.nextFloat() * (pitchSpeed)
133+
val delta = Random.nextFloat() * (pitchSpeed)
135134
if (jitterUp) {
136135
jitterUp = false
137136
currentPitch - delta

0 commit comments

Comments
 (0)