Skip to content

Commit 505ba1d

Browse files
committed
Sort build results by rotation distance
1 parent 4adfb18 commit 505ba1d

File tree

7 files changed

+15
-6
lines changed

7 files changed

+15
-6
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ data class BreakContext(
7171
override fun compareTo(other: BuildContext): Int {
7272
return when (other) {
7373
is BreakContext -> compareBy<BreakContext> {
74-
it.distance
74+
it.rotation.target.distance
7575
}.compare(this, other)
7676

7777
else -> 1

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import com.lambda.context.SafeContext
2222
import com.lambda.graphics.renderer.esp.DirectionMask
2323
import com.lambda.graphics.renderer.esp.DirectionMask.exclude
2424
import com.lambda.interaction.construction.verify.TargetState
25+
import com.lambda.interaction.request.rotation.Rotation.Companion.dist
2526
import com.lambda.interaction.request.rotation.RotationRequest
2627
import com.lambda.threading.runSafe
2728
import com.lambda.util.BlockUtils
@@ -81,6 +82,8 @@ data class PlaceContext(
8182
it.hand
8283
}.thenBy {
8384
it.sneak
85+
}.thenBy {
86+
it.rotation.target.distance
8487
}.thenBy {
8588
it.distance
8689
}.thenBy {

common/src/main/kotlin/com/lambda/interaction/construction/result/BreakResult.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ import com.lambda.interaction.material.container.ContainerManager.findBestAvaila
2828
import com.lambda.interaction.material.container.ContainerManager.transfer
2929
import com.lambda.interaction.material.container.MaterialContainer
3030
import com.lambda.interaction.material.container.containers.MainHandContainer
31-
import com.lambda.task.tasks.BreakBlock
3231
import net.minecraft.block.BlockState
3332
import net.minecraft.item.Item
3433
import net.minecraft.util.math.BlockPos
@@ -106,7 +105,7 @@ sealed class BreakResult : BuildResult() {
106105
?: selectStack {
107106
isItem(badItem).not()
108107
}.transfer(MainHandContainer, inventory)
109-
?: MaterialContainer.Nothing("Couldn't find a tool for ${blockState.block.name.string} with $badItem in main hand.")
108+
?: MaterialContainer.FailureTask("Couldn't find a tool for ${blockState.block.name.string} with $badItem in main hand.")
110109

111110
override fun SafeContext.buildRenderer() {
112111
withPos(blockPos, color)

common/src/main/kotlin/com/lambda/interaction/construction/result/BuildResult.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ abstract class BuildResult : ComparableResult<Rank>, Nameable {
206206
override val pausesParent get() = true
207207

208208
override fun resolve() = neededItem.select()
209-
.transfer(MainHandContainer, inventory) ?: MaterialContainer.Nothing("Couldn't find ${neededItem.name.string} anywhere.")
209+
.transfer(MainHandContainer, inventory) ?: MaterialContainer.FailureTask("Couldn't find ${neededItem.name.string} anywhere.")
210210

211211
override fun SafeContext.buildRenderer() {
212212
if (blockPos.blockState(world).isAir) {
@@ -242,7 +242,7 @@ abstract class BuildResult : ComparableResult<Rank>, Nameable {
242242
override val pausesParent get() = true
243243

244244
override fun resolve() =
245-
neededStack.select().transfer(MainHandContainer, inventory) ?: MaterialContainer.Nothing("Couldn't find ${neededStack.item.name.string} anywhere.")
245+
neededStack.select().transfer(MainHandContainer, inventory) ?: MaterialContainer.FailureTask("Couldn't find ${neededStack.item.name.string} anywhere.")
246246

247247
override fun SafeContext.buildRenderer() {
248248
if (blockPos.blockState(world).isAir) {

common/src/main/kotlin/com/lambda/interaction/material/container/MaterialContainer.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ abstract class MaterialContainer(
8080
this.stacks = stacks
8181
}
8282

83-
class Nothing(override val name: String = "Nothing") : Task<Unit>() {
83+
class FailureTask(override val name: String) : Task<Unit>() {
8484
override fun SafeContext.onStart() {
8585
failure(name)
8686
}

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ package com.lambda.interaction.request.rotation.visibilty
1919

2020
import com.lambda.context.SafeContext
2121
import com.lambda.interaction.request.rotation.Rotation
22+
import com.lambda.interaction.request.rotation.Rotation.Companion.dist
23+
import com.lambda.interaction.request.rotation.Rotation.Companion.rotation
2224
import com.lambda.interaction.request.rotation.RotationConfig
2325
import com.lambda.interaction.request.rotation.RotationRequest
2426
import com.lambda.threading.runSafe
@@ -41,6 +43,10 @@ data class RotationTarget(
4143
runSafe { buildRotation() }
4244
}
4345

46+
val distance by lazy {
47+
runSafe { targetRotation.value?.dist(player.rotation) } ?: 1000.0
48+
}
49+
4450
/**
4551
* Requests a rotation based on the given configuration.
4652
*

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,7 @@ class BuildTask @Ta5kBuilder constructor(
129129
is BuildResult.Unbreakable,
130130
is BuildResult.Restricted,
131131
is BuildResult.NoPermission -> {
132+
if (pendingInteractions.isNotEmpty()) return@listen
132133
if (blueprint is PropagatingBlueprint) {
133134
blueprint.next()
134135
return@listen

0 commit comments

Comments
 (0)