Skip to content

Commit 0817c16

Browse files
authored
Fix: shulker canBeOpened check, and place containers more safely (#354)
1 parent b033a20 commit 0817c16

1 file changed

Lines changed: 4 additions & 2 deletions

File tree

‎src/main/kotlin/com/lambda/task/tasks/PlaceContainerTask.kt‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,11 @@ import com.lambda.task.Task
3030
import com.lambda.task.Task.Ta5kBuilder
3131
import com.lambda.threading.runSafeAutomated
3232
import com.lambda.util.BlockUtils.blockPos
33+
import com.lambda.util.BlockUtils.blockState
3334
import com.lambda.util.item.ItemUtils.SHULKER_BOXES
3435
import com.lambda.util.math.distSq
3536
import net.minecraft.block.ChestBlock
37+
import net.minecraft.block.FallingBlock
3638
import net.minecraft.entity.mob.ShulkerEntity
3739
import net.minecraft.item.ItemStack
3840
import net.minecraft.item.Items
@@ -65,6 +67,7 @@ class PlaceContainerTask @Ta5kBuilder internal constructor(
6567
.map { it.blockPos }
6668
.asSequence()
6769
.filter { !ManagerUtils.isPosBlocked(it) }
70+
.filter { !FallingBlock.canFallThrough(blockState(it.down())) }
6871
.flatMap {
6972
it.toStructure(TargetState.Stack(slot.stack))
7073
.sim()
@@ -101,8 +104,7 @@ class PlaceContainerTask @Ta5kBuilder internal constructor(
101104
}
102105
in SHULKER_BOXES -> {
103106
val box = ShulkerEntity
104-
.calculateBoundingBox(0.5f, direction, 0.0f, blockPos.toBottomCenterPos())
105-
.offset(blockPos)
107+
.calculateBoundingBox(1.0f, direction, 0.0f, 0.5f, blockPos.toBottomCenterPos())
106108
.contract(1.0E-6)
107109

108110
world.isSpaceEmpty(box)

0 commit comments

Comments
 (0)