Skip to content

Commit e60615f

Browse files
committed
Some fixes
1 parent 3876523 commit e60615f

File tree

4 files changed

+42
-17
lines changed

4 files changed

+42
-17
lines changed

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

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,13 @@
1717

1818
package com.lambda.interaction.construction.simulation
1919

20+
import com.lambda.config.groups.InteractionConfig
21+
import com.lambda.config.groups.InventoryConfig
2022
import com.lambda.context.SafeContext
2123
import com.lambda.interaction.construction.blueprint.Blueprint
2224
import com.lambda.interaction.construction.result.BuildResult
2325
import com.lambda.interaction.construction.simulation.BuildSimulator.simulate
26+
import com.lambda.interaction.request.rotation.RotationConfig
2427
import com.lambda.module.modules.client.TaskFlowModule
2528
import com.lambda.threading.runSafe
2629
import com.lambda.util.BlockUtils.blockState
@@ -32,11 +35,18 @@ import net.minecraft.util.math.Box
3235
import net.minecraft.util.math.Direction
3336
import net.minecraft.util.math.Vec3d
3437

35-
data class Simulation(val blueprint: Blueprint) {
38+
data class Simulation(
39+
val blueprint: Blueprint,
40+
val interact: InteractionConfig = TaskFlowModule.interact,
41+
val rotation: RotationConfig = TaskFlowModule.rotation,
42+
val inventory: InventoryConfig = TaskFlowModule.inventory,
43+
) {
3644
private val cache: MutableMap<FastVector, Set<BuildResult>> = mutableMapOf()
3745
private fun FastVector.toView(): Vec3d = toVec3d().add(0.5, ClientPlayerEntity.DEFAULT_EYE_HEIGHT.toDouble(), 0.5)
3846

39-
fun simulate(pos: FastVector) =
47+
fun simulate(
48+
pos: FastVector
49+
) =
4050
cache.getOrPut(pos) {
4151
val view = pos.toView()
4252
runSafe {
@@ -50,8 +60,7 @@ data class Simulation(val blueprint: Blueprint) {
5060
) return@getOrPut emptySet()
5161
}
5262

53-
// ToDo: wtf was that "reach = TaskFlowModule.interact.reach - 1"
54-
blueprint.simulate(view)
63+
blueprint.simulate(view, interact, rotation, inventory)
5564
}
5665

5766
private fun SafeContext.playerFitsIn(pos: Vec3d): Boolean {
@@ -61,6 +70,10 @@ data class Simulation(val blueprint: Blueprint) {
6170
}
6271

6372
companion object {
64-
fun Blueprint.simulation() = Simulation(this)
73+
fun Blueprint.simulation(
74+
interact: InteractionConfig = TaskFlowModule.interact,
75+
rotation: RotationConfig = TaskFlowModule.rotation,
76+
inventory: InventoryConfig = TaskFlowModule.inventory,
77+
) = Simulation(this, interact, rotation, inventory)
6578
}
6679
}

common/src/main/kotlin/com/lambda/interaction/request/rotation/RotationManager.kt

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -185,10 +185,6 @@ object RotationManager : RequestHandler<RotationRequest>(), Loadable {
185185

186186
object BaritoneProcessor {
187187
private var baritoneContext: RotationRequest? = null
188-
private val baritoneRotation get() = Baritone.rotation.apply {
189-
if (rotationMode == RotationMode.Sync) return@apply
190-
rotationMode = RotationMode.Sync
191-
}
192188

193189
private val movementYawList = arrayOf(
194190
0.0, 45.0,
@@ -199,9 +195,7 @@ object RotationManager : RequestHandler<RotationRequest>(), Loadable {
199195

200196
@JvmStatic
201197
fun handleBaritoneRotation(yaw: Float, pitch: Float) {
202-
lookAt(
203-
Rotation(yaw, pitch)
204-
).requestBy(baritoneRotation)
198+
lookAt(Rotation(yaw, pitch)).requestBy(Baritone.rotation)
205199
}
206200

207201
@JvmStatic

common/src/main/kotlin/com/lambda/module/modules/client/Baritone.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,5 @@ object Baritone : Module(
2626
description = "Baritone configuration",
2727
defaultTags = setOf(ModuleTag.CLIENT)
2828
) {
29-
val rotation = RotationSettings(this, Int.MIN_VALUE)
29+
val rotation = RotationSettings(this, Int.MAX_VALUE)
3030
}

common/src/main/kotlin/com/lambda/task/tasks/BuildTask.kt

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ package com.lambda.task.tasks
2020
import com.lambda.Lambda.LOG
2121
import com.lambda.config.groups.BuildConfig
2222
import com.lambda.config.groups.InteractionConfig
23+
import com.lambda.config.groups.InteractionSettings
2324
import com.lambda.config.groups.InventoryConfig
2425
import com.lambda.interaction.request.rotation.RotationConfig
2526
import com.lambda.context.SafeContext
@@ -39,6 +40,7 @@ import com.lambda.interaction.construction.simulation.BuildGoal
3940
import com.lambda.interaction.construction.simulation.BuildSimulator.simulate
4041
import com.lambda.interaction.construction.simulation.Simulation.Companion.simulation
4142
import com.lambda.interaction.construction.verify.TargetState
43+
import com.lambda.interaction.request.rotation.visibilty.PointSelection
4244
import com.lambda.module.modules.client.TaskFlowModule
4345
import com.lambda.task.Task
4446
import com.lambda.util.BaritoneUtils
@@ -123,13 +125,29 @@ class BuildTask @Ta5kBuilder constructor(
123125
is BuildResult.Ignored,
124126
is BuildResult.Unbreakable,
125127
is BuildResult.Restricted,
126-
is BuildResult.NoPermission,
127-
-> {
128+
is BuildResult.NoPermission -> {
128129
if (finishOnDone) success()
129130
}
130131

131-
is BuildResult.NotVisible, is PlaceResult.NoIntegrity -> {
132-
if (build.pathing) BaritoneUtils.setGoalAndPath(BuildGoal(blueprint.simulation()))
132+
is BuildResult.NotVisible,
133+
is PlaceResult.NoIntegrity -> {
134+
if (!build.pathing) return@listen
135+
// ToDo:
136+
// Solve the problem that baritone stops pathing when it thinks it is in a valid goal
137+
// but the player position does not perfectly match the simulated position
138+
// hacky fix for now is to walk "closer" but it wont work in every situation
139+
val interaction = object : InteractionConfig {
140+
override val attackReach = interact.attackReach
141+
override val interactReach = interact.interactReach - 1
142+
override val scanReach = interact.scanReach
143+
override val strictRayCast = interact.strictRayCast
144+
override val checkSideVisibility = interact.checkSideVisibility
145+
override val resolution = interact.resolution
146+
override val pointSelection = interact.pointSelection
147+
override val swingHand = interact.swingHand
148+
}
149+
val goal = BuildGoal(blueprint.simulation(interaction, rotation, inventory))
150+
BaritoneUtils.setGoalAndPath(goal)
133151
}
134152

135153
is Navigable -> {

0 commit comments

Comments
 (0)