Make computer add devices for self.

Avoids making a cable adjacent to computers lead to more devices, and allows standalone computers inspecting themselves.
This commit is contained in:
Florian Nücke
2021-01-04 13:57:39 +01:00
parent b70d82d927
commit 1f6aec67a2

View File

@@ -17,6 +17,7 @@ import li.cil.oc2.common.bus.AbstractDeviceBusController;
import li.cil.oc2.common.bus.TileEntityDeviceBusController;
import li.cil.oc2.common.bus.TileEntityDeviceBusElement;
import li.cil.oc2.common.bus.device.data.FileSystems;
import li.cil.oc2.common.bus.device.util.BlockDeviceInfo;
import li.cil.oc2.common.bus.device.util.Devices;
import li.cil.oc2.common.bus.device.util.ItemDeviceInfo;
import li.cil.oc2.common.capabilities.Capabilities;
@@ -504,6 +505,12 @@ public final class ComputerTileEntity extends AbstractTileEntity implements ITic
busElement.initialize();
virtualMachine.rtcMinecraft.setWorld(getWorld());
// Always add devices provided for the computer itself, even if there's no
// adjacent cable. Because that would just be weird.
for (final LazyOptional<BlockDeviceInfo> optional : Devices.getDevices(this, (Direction) null)) {
optional.ifPresent(info -> busElement.addDevice(info.device));
}
}
@Override