@@ -781,17 +781,24 @@ object BuildSimulator {
781781 return acc
782782 }
783783
784- val matchingStacks = swapCandidates.associateWith { it.matchingStacks(stackSelection) }
785- val (_, toolPair) = matchingStacks.mapValues { (_, stacks) ->
786- stacks.associateWith { state.calcItemBlockBreakingDelta(player, world, pos, it) }
787- .maxByOrNull { it.value }
788- ?.toPair()
789- }.entries.maxByOrNull { it.value?.second ? : 0f }?.toPair() ? : return acc
790-
791- if (toolPair == null ) return acc
784+ val swapStack = swapCandidates.map { it.matchingStacks(stackSelection) }
785+ .asSequence()
786+ .flatten()
787+ .let { containerStacks ->
788+ var bestStack = player.mainHandStack
789+ var bestBreakDelta = state.calcItemBlockBreakingDelta(player, world, pos, bestStack)
790+ containerStacks.forEach { stack ->
791+ val breakDelta = state.calcItemBlockBreakingDelta(player, world, pos, stack)
792+ if (breakDelta > bestBreakDelta) {
793+ bestBreakDelta = breakDelta
794+ bestStack = stack
795+ }
796+ }
797+ bestStack
798+ }
792799
793- breakContext.hotbarIndex = player.hotbar.indexOf(toolPair.first )
794- breakContext.instantBreak = instantBreakable(state, pos, toolPair.first , breaking.breakThreshold)
800+ breakContext.hotbarIndex = player.hotbar.indexOf(swapStack )
801+ breakContext.instantBreak = instantBreakable(state, pos, swapStack , breaking.breakThreshold)
795802 acc.add(BreakResult .Break (pos, breakContext))
796803 return acc
797804 }
0 commit comments