From b6a06c91851b8f630351dcca97aab027de498745 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Tue, 25 Jan 2022 18:23:55 +0100 Subject: [PATCH] Fixed sided connectivity of disk drive. --- .../device/provider/block/DiskDriveDeviceProvider.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/li/cil/oc2/common/bus/device/provider/block/DiskDriveDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/provider/block/DiskDriveDeviceProvider.java index c544096b..4e86e218 100644 --- a/src/main/java/li/cil/oc2/common/bus/device/provider/block/DiskDriveDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/block/DiskDriveDeviceProvider.java @@ -3,10 +3,11 @@ package li.cil.oc2.common.bus.device.provider.block; import li.cil.oc2.api.bus.device.Device; import li.cil.oc2.api.bus.device.provider.BlockDeviceQuery; import li.cil.oc2.api.util.Invalidatable; +import li.cil.oc2.common.block.DiskDriveBlock; import li.cil.oc2.common.blockentity.BlockEntities; import li.cil.oc2.common.blockentity.DiskDriveBlockEntity; import li.cil.oc2.common.bus.device.provider.util.AbstractBlockEntityDeviceProvider; -import net.minecraft.world.level.block.HorizontalDirectionalBlock; +import net.minecraft.core.Direction; public final class DiskDriveDeviceProvider extends AbstractBlockEntityDeviceProvider { public DiskDriveDeviceProvider() { @@ -17,10 +18,11 @@ public final class DiskDriveDeviceProvider extends AbstractBlockEntityDeviceProv protected Invalidatable getBlockDevice(final BlockDeviceQuery query, final DiskDriveBlockEntity blockEntity) { // We only allow connecting to exactly one face of the disk drive to ensure only one // bus (and thus, one VM) will access the device at any single time. - if (query.getQuerySide() == blockEntity.getBlockState().getValue(HorizontalDirectionalBlock.FACING)) { + final Direction blockFacing = blockEntity.getBlockState().getValue(DiskDriveBlock.FACING); + if (query.getQuerySide() == blockFacing.getOpposite()) { + return Invalidatable.of(blockEntity.getDevice()); + } else { return Invalidatable.empty(); } - - return Invalidatable.of(blockEntity.getDevice()); } }