Skip to content

Commit 8bf3778

Browse files
committed
Break optimizations
1 parent d1e0c66 commit 8bf3778

File tree

4 files changed

+9
-27
lines changed

4 files changed

+9
-27
lines changed

common/src/main/kotlin/com/lambda/interaction/material/ContainerManager.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,6 @@ object ContainerManager : Loadable {
9090
return container.find { it.available(selection) >= selection.count }
9191
}
9292

93-
9493
fun findContainerWithStacks(
9594
count: Int = StackSelection.DEFAULT_AMOUNT,
9695
selection: (ItemStack) -> Boolean,

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,7 @@ import com.lambda.task.Task
66
import com.lambda.task.tasks.InventoryTask.Companion.deposit
77
import com.lambda.task.tasks.InventoryTask.Companion.withdraw
88
import com.lambda.task.tasks.OpenContainer.Companion.openContainer
9-
import net.minecraft.block.Blocks
109
import net.minecraft.item.ItemStack
11-
import net.minecraft.item.Items
1210
import net.minecraft.screen.GenericContainerScreenHandler
1311
import net.minecraft.util.math.BlockPos
1412

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

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,10 @@ package com.lambda.interaction.material.container
33
import com.lambda.Lambda.mc
44
import com.lambda.interaction.material.MaterialContainer
55
import com.lambda.interaction.material.StackSelection
6-
import com.lambda.module.modules.client.TaskFlow
7-
import com.lambda.task.Task
86
import com.lambda.task.Task.Companion.buildTask
97
import com.lambda.task.Task.Companion.emptyTask
108
import com.lambda.util.player.SlotUtils.combined
119
import com.lambda.util.player.SlotUtils.hotbar
12-
import kotlinx.coroutines.delay
1310
import net.minecraft.item.ItemStack
1411
import net.minecraft.network.packet.c2s.play.PlayerActionC2SPacket
1512
import net.minecraft.util.math.BlockPos

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

Lines changed: 9 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,9 @@ import com.lambda.event.listener.SafeListener.Companion.listener
88
import com.lambda.interaction.InteractionConfig
99
import com.lambda.interaction.construction.context.BreakContext
1010
import com.lambda.interaction.rotation.IRotationConfig
11-
import com.lambda.interaction.visibilty.VisibilityChecker.getVisibleSurfaces
1211
import com.lambda.interaction.visibilty.VisibilityChecker.lookAtBlock
1312
import com.lambda.module.modules.client.TaskFlow
1413
import com.lambda.task.Task
15-
import com.lambda.util.BlockUtils.instantBreakable
1614
import com.lambda.util.BlockUtils.blockState
1715
import com.lambda.util.world.raycast.RayCastUtils.blockResult
1816
import net.minecraft.block.BlockState
@@ -26,12 +24,13 @@ class BreakBlock @Ta5kBuilder constructor(
2624
private val interactionConfig: InteractionConfig = TaskFlow.interactionSettings,
2725
private val sides: Set<Direction> = emptySet(),
2826
private val collectDrop: Boolean = false,
29-
private val noRotationForInstant: Boolean = true,
27+
private val dontRotate: Boolean = true,
28+
private val swingHand: Boolean = true,
29+
private val particles: Boolean = true,
3030
) : Task<ItemEntity?>() {
3131
val blockPos: BlockPos get() = ctx.result.blockPos
3232
private var beginState: BlockState? = null
3333
val SafeContext.state: BlockState get() = blockPos.blockState(world)
34-
val SafeContext.instant: Boolean get() = instantBreakable(state, blockPos) && noRotationForInstant
3534

3635
override fun SafeContext.onStart() {
3736
if (state.isAir && !collectDrop) {
@@ -43,12 +42,12 @@ class BreakBlock @Ta5kBuilder constructor(
4342

4443
init {
4544
listener<RotationEvent.Pre> { event ->
46-
if (instant) return@listener
45+
if (dontRotate) return@listener
4746
event.context = lookAtBlock(blockPos, rotationConfig, interactionConfig, sides)
4847
}
4948

5049
listener<RotationEvent.Post> {
51-
if (instant) return@listener
50+
if (dontRotate) return@listener
5251
if (!it.context.isValid) return@listener
5352
val hitResult = it.context.hitResult?.blockResult ?: return@listener
5453

@@ -61,18 +60,9 @@ class BreakBlock @Ta5kBuilder constructor(
6160
return@listener
6261
}
6362

64-
if (!instant) return@listener
63+
if (!dontRotate) return@listener
6564

66-
val shape = state.getOutlineShape(world, blockPos)
67-
if (shape.isEmpty) {
68-
failure("${blockPos.toShortString()} in state $state has no outline shape")
69-
return@listener
70-
}
71-
72-
shape.boundingBox
73-
.getVisibleSurfaces(player.eyePos).firstOrNull()?.let { side ->
74-
breakBlock(side)
75-
}
65+
breakBlock(ctx.result.side)
7666
}
7767

7868
listener<TickEvent.Post> {
@@ -89,10 +79,8 @@ class BreakBlock @Ta5kBuilder constructor(
8979

9080
private fun SafeContext.breakBlock(side: Direction) {
9181
if (interaction.updateBlockBreakingProgress(blockPos, side)) {
92-
mc.particleManager.addBlockBreakingParticles(blockPos, side)
93-
if (!instant) {
94-
player.swingHand(ctx.hand)
95-
}
82+
if (particles) mc.particleManager.addBlockBreakingParticles(blockPos, side)
83+
if (swingHand) player.swingHand(ctx.hand)
9684
}
9785
}
9886

0 commit comments

Comments
 (0)