From 814f9d37dd25b79a6ee1deaa011fbf9c24969a4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Sat, 5 Feb 2022 15:09:33 +0100 Subject: [PATCH] Split up vm and rpc device packages. --- .../renderer/ProjectorDepthRenderer.java | 12 +- .../blockentity/DiskDriveBlockEntity.java | 113 +++--------------- .../blockentity/KeyboardBlockEntity.java | 4 +- .../blockentity/ProjectorBlockEntity.java | 8 +- .../common/bus/device/provider/Providers.java | 7 +- .../BlockOperationsModuleDeviceProvider.java | 2 +- ...ileImportExportCardItemDeviceProvider.java | 2 +- .../item/FlashMemoryItemDeviceProvider.java | 4 +- ...oryWithExternalDataItemDeviceProvider.java | 4 +- .../item/HardDriveItemDeviceProvider.java | 6 +- ...iveWithExternalDataItemDeviceProvider.java | 6 +- ...ventoryOperationsModuleDeviceProvider.java | 2 +- .../item/MemoryItemDeviceProvider.java | 2 +- ...etworkInterfaceCardItemDeviceProvider.java | 4 +- .../NetworkTunnelCardItemDeviceProvider.java | 4 +- ...NetworkTunnelModuleItemDeviceProvider.java | 4 +- ...dstoneInterfaceCardItemDeviceProvider.java | 2 +- .../item/SoundCardItemDeviceProvider.java | 2 +- .../BlockEntityObjectDeviceProvider.java} | 4 +- .../BlockStateObjectDeviceProvider.java} | 4 +- .../EnergyStorageBlockDeviceProvider.java | 2 +- .../FluidHandlerBlockDeviceProvider.java | 2 +- .../block/ItemHandlerBlockDeviceProvider.java | 2 +- .../bus/device/rpc/block/package-info.java | 9 ++ .../{ => rpc}/item/AbstractItemRPCDevice.java | 2 +- .../item/BlockOperationsModuleDevice.java | 2 +- .../item/FileImportExportCardItemDevice.java | 2 +- .../item/InventoryOperationsModuleDevice.java | 2 +- .../item/RedstoneInterfaceCardItemDevice.java | 2 +- .../{ => rpc}/item/SoundCardItemDevice.java | 2 +- .../bus/device/rpc/item/package-info.java | 9 ++ .../device/vm/block/DiskDriveContainer.java | 11 ++ .../bus/device/vm/block/DiskDriveDevice.java | 110 +++++++++++++++++ .../KeyboardDevice.java} | 6 +- .../ProjectorDevice.java} | 6 +- .../bus/device/vm/block/package-info.java | 9 ++ .../item/AbstractBlockStorageDevice.java} | 6 +- .../item/AbstractNetworkInterfaceDevice.java} | 6 +- .../item/ByteBufferFlashStorageDevice.java} | 6 +- .../item/FirmwareFlashStorageDevice.java} | 6 +- .../item/HardDriveDevice.java} | 6 +- .../item/HardDriveDeviceWithInitialData.java} | 6 +- .../device/{ => vm}/item/MemoryDevice.java | 2 +- .../item/NetworkInterfaceCardDevice.java} | 6 +- .../item/NetworkTunnelDevice.java} | 6 +- .../device/{ => vm}/item/package-info.java | 2 +- .../cil/oc2/common/item/FlashMemoryItem.java | 4 +- .../ClientCanceledImportFileMessage.java | 2 +- .../network/message/ImportedFileMessage.java | 2 +- .../message/RequestImportedFileMessage.java | 2 +- .../ServerCanceledImportFileMessage.java | 2 +- 51 files changed, 251 insertions(+), 187 deletions(-) rename src/main/java/li/cil/oc2/common/bus/device/{provider/block/BlockEntityDeviceProvider.java => rpc/block/BlockEntityObjectDeviceProvider.java} (82%) rename src/main/java/li/cil/oc2/common/bus/device/{provider/block/BlockStateDeviceProvider.java => rpc/block/BlockStateObjectDeviceProvider.java} (89%) rename src/main/java/li/cil/oc2/common/bus/device/{provider => rpc}/block/EnergyStorageBlockDeviceProvider.java (95%) rename src/main/java/li/cil/oc2/common/bus/device/{provider => rpc}/block/FluidHandlerBlockDeviceProvider.java (95%) rename src/main/java/li/cil/oc2/common/bus/device/{provider => rpc}/block/ItemHandlerBlockDeviceProvider.java (95%) create mode 100644 src/main/java/li/cil/oc2/common/bus/device/rpc/block/package-info.java rename src/main/java/li/cil/oc2/common/bus/device/{ => rpc}/item/AbstractItemRPCDevice.java (96%) rename src/main/java/li/cil/oc2/common/bus/device/{ => rpc}/item/BlockOperationsModuleDevice.java (99%) rename src/main/java/li/cil/oc2/common/bus/device/{ => rpc}/item/FileImportExportCardItemDevice.java (99%) rename src/main/java/li/cil/oc2/common/bus/device/{ => rpc}/item/InventoryOperationsModuleDevice.java (99%) rename src/main/java/li/cil/oc2/common/bus/device/{ => rpc}/item/RedstoneInterfaceCardItemDevice.java (99%) rename src/main/java/li/cil/oc2/common/bus/device/{ => rpc}/item/SoundCardItemDevice.java (98%) create mode 100644 src/main/java/li/cil/oc2/common/bus/device/rpc/item/package-info.java create mode 100644 src/main/java/li/cil/oc2/common/bus/device/vm/block/DiskDriveContainer.java create mode 100644 src/main/java/li/cil/oc2/common/bus/device/vm/block/DiskDriveDevice.java rename src/main/java/li/cil/oc2/common/bus/device/vm/{KeyboardVMDevice.java => block/KeyboardDevice.java} (95%) rename src/main/java/li/cil/oc2/common/bus/device/vm/{ProjectorVMDevice.java => block/ProjectorDevice.java} (95%) create mode 100644 src/main/java/li/cil/oc2/common/bus/device/vm/block/package-info.java rename src/main/java/li/cil/oc2/common/bus/device/{item/AbstractBlockDeviceVMDevice.java => vm/item/AbstractBlockStorageDevice.java} (97%) rename src/main/java/li/cil/oc2/common/bus/device/{item/AbstractNetworkInterfaceItemDevice.java => vm/item/AbstractNetworkInterfaceDevice.java} (94%) rename src/main/java/li/cil/oc2/common/bus/device/{item/ByteBufferFlashMemoryVMDevice.java => vm/item/ByteBufferFlashStorageDevice.java} (93%) rename src/main/java/li/cil/oc2/common/bus/device/{item/FirmwareFlashMemoryVMDevice.java => vm/item/FirmwareFlashStorageDevice.java} (87%) rename src/main/java/li/cil/oc2/common/bus/device/{item/HardDriveVMDevice.java => vm/item/HardDriveDevice.java} (85%) rename src/main/java/li/cil/oc2/common/bus/device/{item/HardDriveVMDeviceWithInitialData.java => vm/item/HardDriveDeviceWithInitialData.java} (83%) rename src/main/java/li/cil/oc2/common/bus/device/{ => vm}/item/MemoryDevice.java (98%) rename src/main/java/li/cil/oc2/common/bus/device/{item/NetworkInterfaceCardItemDevice.java => vm/item/NetworkInterfaceCardDevice.java} (78%) rename src/main/java/li/cil/oc2/common/bus/device/{item/NetworkTunnelItemDevice.java => vm/item/NetworkTunnelDevice.java} (95%) rename src/main/java/li/cil/oc2/common/bus/device/{ => vm}/item/package-info.java (81%) diff --git a/src/main/java/li/cil/oc2/client/renderer/ProjectorDepthRenderer.java b/src/main/java/li/cil/oc2/client/renderer/ProjectorDepthRenderer.java index b01646d9..629d9c25 100644 --- a/src/main/java/li/cil/oc2/client/renderer/ProjectorDepthRenderer.java +++ b/src/main/java/li/cil/oc2/client/renderer/ProjectorDepthRenderer.java @@ -18,7 +18,7 @@ import com.mojang.math.Matrix4f; import com.mojang.math.Vector3f; import li.cil.oc2.common.block.ProjectorBlock; import li.cil.oc2.common.blockentity.ProjectorBlockEntity; -import li.cil.oc2.common.bus.device.vm.ProjectorVMDevice; +import li.cil.oc2.common.bus.device.vm.block.ProjectorDevice; import li.cil.oc2.common.ext.MinecraftExt; import li.cil.oc2.common.util.FakePlayerUtils; import li.cil.oc2.jcodec.common.model.Picture; @@ -427,7 +427,7 @@ public final class ProjectorDepthRenderer { private static RenderInfo getRenderInfo(final ProjectorBlockEntity projector) { try { return RENDER_INFO.get(projector, () -> { - final DynamicTexture texture = new DynamicTexture(ProjectorVMDevice.WIDTH, ProjectorVMDevice.HEIGHT, false); + final DynamicTexture texture = new DynamicTexture(ProjectorDevice.WIDTH, ProjectorDevice.HEIGHT, false); final RenderInfo renderInfo = new RenderInfo(texture); projector.setFrameConsumer(renderInfo); return renderInfo; @@ -465,17 +465,17 @@ public final class ProjectorDepthRenderer { // Convert in quads, based on the half resolution of UV. As such, skip every other row, since // we're setting the current and the next. int lumaIndex = 0, chromaIndex = 0; - for (int halfRow = 0; halfRow < ProjectorVMDevice.HEIGHT / 2; halfRow++, lumaIndex += ProjectorVMDevice.WIDTH * 2) { + for (int halfRow = 0; halfRow < ProjectorDevice.HEIGHT / 2; halfRow++, lumaIndex += ProjectorDevice.WIDTH * 2) { final int row = halfRow * 2; - for (int halfCol = 0; halfCol < ProjectorVMDevice.WIDTH / 2; halfCol++, chromaIndex++) { + for (int halfCol = 0; halfCol < ProjectorDevice.WIDTH / 2; halfCol++, chromaIndex++) { final int col = halfCol * 2; final int yIndex = lumaIndex + col; final byte cb = u[chromaIndex]; final byte cr = v[chromaIndex]; setFromYUV420(image, col, row, y[yIndex], cb, cr); setFromYUV420(image, col + 1, row, y[yIndex + 1], cb, cr); - setFromYUV420(image, col, row + 1, y[yIndex + ProjectorVMDevice.WIDTH], cb, cr); - setFromYUV420(image, col + 1, row + 1, y[yIndex + ProjectorVMDevice.WIDTH + 1], cb, cr); + setFromYUV420(image, col, row + 1, y[yIndex + ProjectorDevice.WIDTH], cb, cr); + setFromYUV420(image, col + 1, row + 1, y[yIndex + ProjectorDevice.WIDTH + 1], cb, cr); } } diff --git a/src/main/java/li/cil/oc2/common/blockentity/DiskDriveBlockEntity.java b/src/main/java/li/cil/oc2/common/blockentity/DiskDriveBlockEntity.java index 2fd252d9..237784cc 100644 --- a/src/main/java/li/cil/oc2/common/blockentity/DiskDriveBlockEntity.java +++ b/src/main/java/li/cil/oc2/common/blockentity/DiskDriveBlockEntity.java @@ -2,51 +2,39 @@ package li.cil.oc2.common.blockentity; -import li.cil.oc2.common.Config; import li.cil.oc2.common.Constants; import li.cil.oc2.common.block.DiskDriveBlock; -import li.cil.oc2.common.bus.device.item.AbstractBlockDeviceVMDevice; +import li.cil.oc2.common.bus.device.vm.block.DiskDriveContainer; +import li.cil.oc2.common.bus.device.vm.block.DiskDriveDevice; import li.cil.oc2.common.capabilities.Capabilities; import li.cil.oc2.common.container.TypedItemStackHandler; -import li.cil.oc2.common.item.FloppyItem; import li.cil.oc2.common.network.Network; import li.cil.oc2.common.network.message.DiskDriveFloppyMessage; -import li.cil.oc2.common.serialization.BlobStorage; import li.cil.oc2.common.tags.ItemTags; import li.cil.oc2.common.util.ItemStackUtils; import li.cil.oc2.common.util.LocationSupplierUtils; import li.cil.oc2.common.util.SoundEvents; import li.cil.oc2.common.util.ThrottledSoundEmitter; -import li.cil.sedna.api.device.BlockDevice; -import li.cil.sedna.device.block.ByteBufferBlockDevice; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; -import net.minecraft.util.Mth; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import javax.annotation.Nonnull; import javax.annotation.Nullable; -import java.io.IOException; -import java.nio.MappedByteBuffer; -import java.nio.channels.FileChannel; import java.time.Duration; -import java.util.concurrent.CompletableFuture; -public final class DiskDriveBlockEntity extends ModBlockEntity { +public final class DiskDriveBlockEntity extends ModBlockEntity implements DiskDriveContainer { private static final String DATA_TAG_NAME = "data"; - private static final ByteBufferBlockDevice EMPTY_BLOCK_DEVICE = ByteBufferBlockDevice.create(0, false); - /////////////////////////////////////////////////////////////////// private final DiskDriveItemStackHandler itemHandler = new DiskDriveItemStackHandler(); - private final DiskDriveVMDevice device = new DiskDriveVMDevice(); + private final DiskDriveDevice device = new DiskDriveDevice<>(this); private final ThrottledSoundEmitter accessSoundEmitter; private final ThrottledSoundEmitter insertSoundEmitter; private final ThrottledSoundEmitter ejectSoundEmitter; @@ -148,6 +136,16 @@ public final class DiskDriveBlockEntity extends ModBlockEntity { itemHandler.deserializeNBT(tag.getCompound(Constants.ITEMS_TAG_NAME)); } + @Override + public ItemStack getDiskItemStack() { + return itemHandler.getStackInSlotRaw(0); + } + + @Override + public void handleDataAccess() { + accessSoundEmitter.play(); + } + /////////////////////////////////////////////////////////////////// private final class DiskDriveItemStackHandler extends TypedItemStackHandler { @@ -223,87 +221,4 @@ public final class DiskDriveBlockEntity extends ModBlockEntity { ItemStackUtils.getOrCreateModDataTag(stack).put(DATA_TAG_NAME, tag); } } - - private final class DiskDriveVMDevice extends AbstractBlockDeviceVMDevice { - public DiskDriveVMDevice() { - super(DiskDriveBlockEntity.this, false); - } - - public void updateBlockDevice(final CompoundTag tag) { - joinOpenJob(); - - if (device == null) { - return; - } - - try { - device.setBlock(EMPTY_BLOCK_DEVICE); - } catch (final IOException e) { - LOGGER.error(e); - } - - if (blobHandle != null) { - BlobStorage.close(blobHandle); - blobHandle = null; - } - - importFromItemStack(tag); - - setOpenJob(createBlockDevice().thenAcceptAsync(blockDevice -> { - try { - device.setBlock(blockDevice); - } catch (final IOException e) { - throw new RuntimeException(e); - } - }, WORKERS)); - } - - public void removeBlockDevice() { - joinOpenJob(); - - if (device == null) { - return; - } - - try { - device.setBlock(EMPTY_BLOCK_DEVICE); - } catch (final IOException e) { - LOGGER.error(e); - } - - if (blobHandle != null) { - BlobStorage.close(blobHandle); - blobHandle = null; - } - } - - @Override - protected CompletableFuture createBlockDevice() { - final ItemStack stack = itemHandler.getStackInSlotRaw(0); - if (stack.isEmpty() || !(stack.getItem() instanceof final FloppyItem floppy)) { - return CompletableFuture.completedFuture(EMPTY_BLOCK_DEVICE); - } - - final int capacity = Mth.clamp(floppy.getCapacity(stack), 0, Config.maxFloppySize); - if (capacity <= 0) { - return CompletableFuture.completedFuture(EMPTY_BLOCK_DEVICE); - } - - blobHandle = BlobStorage.validateHandle(blobHandle); - return CompletableFuture.supplyAsync(() -> { - try { - final FileChannel channel = BlobStorage.getOrOpen(blobHandle); - final MappedByteBuffer buffer = channel.map(FileChannel.MapMode.READ_WRITE, 0, capacity); - return ByteBufferBlockDevice.wrap(buffer, false); - } catch (final IOException e) { - throw new RuntimeException(e); - } - }, WORKERS); - } - - @Override - protected void handleDataAccess() { - accessSoundEmitter.play(); - } - } } diff --git a/src/main/java/li/cil/oc2/common/blockentity/KeyboardBlockEntity.java b/src/main/java/li/cil/oc2/common/blockentity/KeyboardBlockEntity.java index a86364d8..e698ecab 100644 --- a/src/main/java/li/cil/oc2/common/blockentity/KeyboardBlockEntity.java +++ b/src/main/java/li/cil/oc2/common/blockentity/KeyboardBlockEntity.java @@ -2,7 +2,7 @@ package li.cil.oc2.common.blockentity; -import li.cil.oc2.common.bus.device.vm.KeyboardVMDevice; +import li.cil.oc2.common.bus.device.vm.block.KeyboardDevice; import li.cil.oc2.common.capabilities.Capabilities; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -11,7 +11,7 @@ import net.minecraft.world.level.block.state.BlockState; import org.jetbrains.annotations.Nullable; public final class KeyboardBlockEntity extends ModBlockEntity { - private final KeyboardVMDevice keyboardDevice = new KeyboardVMDevice<>(this); + private final KeyboardDevice keyboardDevice = new KeyboardDevice<>(this); /////////////////////////////////////////////////////////////////// diff --git a/src/main/java/li/cil/oc2/common/blockentity/ProjectorBlockEntity.java b/src/main/java/li/cil/oc2/common/blockentity/ProjectorBlockEntity.java index 3238856c..dfee1869 100644 --- a/src/main/java/li/cil/oc2/common/blockentity/ProjectorBlockEntity.java +++ b/src/main/java/li/cil/oc2/common/blockentity/ProjectorBlockEntity.java @@ -4,7 +4,7 @@ package li.cil.oc2.common.blockentity; import li.cil.oc2.common.Config; import li.cil.oc2.common.block.ProjectorBlock; -import li.cil.oc2.common.bus.device.vm.ProjectorVMDevice; +import li.cil.oc2.common.bus.device.vm.block.ProjectorDevice; import li.cil.oc2.common.capabilities.Capabilities; import li.cil.oc2.common.energy.FixedEnergyStorage; import li.cil.oc2.common.network.Network; @@ -47,7 +47,7 @@ public final class ProjectorBlockEntity extends ModBlockEntity implements Tickab public static final int MAX_RENDER_DISTANCE = 16; public static final int MAX_GOOD_RENDER_DISTANCE = 12; public static final int MAX_WIDTH = MAX_GOOD_RENDER_DISTANCE + 1; // +1 To make it odd, so we can center. - public static final int MAX_HEIGHT = (MAX_GOOD_RENDER_DISTANCE * ProjectorVMDevice.HEIGHT / ProjectorVMDevice.WIDTH) + 1; // + 1 To match horizontal margin. + public static final int MAX_HEIGHT = (MAX_GOOD_RENDER_DISTANCE * ProjectorDevice.HEIGHT / ProjectorDevice.WIDTH) + 1; // + 1 To match horizontal margin. private static final String ENERGY_TAG_NAME = "energy"; private static final String IS_PROJECTING_TAG_NAME = "projecting"; @@ -61,10 +61,10 @@ public final class ProjectorBlockEntity extends ModBlockEntity implements Tickab /////////////////////////////////////////////////////////////// - private final ProjectorVMDevice projectorDevice = new ProjectorVMDevice(this); + private final ProjectorDevice projectorDevice = new ProjectorDevice(this); private boolean isProjecting, hasEnergy; private final FixedEnergyStorage energy = new FixedEnergyStorage(Config.projectorEnergyStorage); - private final Picture picture = Picture.create(ProjectorVMDevice.WIDTH, ProjectorVMDevice.HEIGHT, ColorSpace.YUV420J); + private final Picture picture = Picture.create(ProjectorDevice.WIDTH, ProjectorDevice.HEIGHT, ColorSpace.YUV420J); // Video encoding. private final H264Encoder encoder = new H264Encoder(new CQPRateControl(12)); diff --git a/src/main/java/li/cil/oc2/common/bus/device/provider/Providers.java b/src/main/java/li/cil/oc2/common/bus/device/provider/Providers.java index 0aba4343..79907081 100644 --- a/src/main/java/li/cil/oc2/common/bus/device/provider/Providers.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/Providers.java @@ -4,8 +4,9 @@ package li.cil.oc2.common.bus.device.provider; import li.cil.oc2.api.bus.device.provider.BlockDeviceProvider; import li.cil.oc2.api.bus.device.provider.ItemDeviceProvider; -import li.cil.oc2.common.bus.device.provider.block.*; +import li.cil.oc2.common.bus.device.provider.block.BlockEntityCapabilityDeviceProvider; import li.cil.oc2.common.bus.device.provider.item.*; +import li.cil.oc2.common.bus.device.rpc.block.*; import li.cil.oc2.common.util.RegistryUtils; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.IForgeRegistry; @@ -25,8 +26,8 @@ public final class Providers { /////////////////////////////////////////////////////////////////// public static void initialize() { - BLOCK_DEVICE_PROVIDERS.register("block", BlockStateDeviceProvider::new); - BLOCK_DEVICE_PROVIDERS.register("block_entity", BlockEntityDeviceProvider::new); + BLOCK_DEVICE_PROVIDERS.register("block", BlockStateObjectDeviceProvider::new); + BLOCK_DEVICE_PROVIDERS.register("block_entity", BlockEntityObjectDeviceProvider::new); BLOCK_DEVICE_PROVIDERS.register("block_entity/capability", BlockEntityCapabilityDeviceProvider::new); BLOCK_DEVICE_PROVIDERS.register("energy_storage", EnergyStorageBlockDeviceProvider::new); diff --git a/src/main/java/li/cil/oc2/common/bus/device/provider/item/BlockOperationsModuleDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/provider/item/BlockOperationsModuleDeviceProvider.java index fe1656ae..0c73fa92 100644 --- a/src/main/java/li/cil/oc2/common/bus/device/provider/item/BlockOperationsModuleDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/item/BlockOperationsModuleDeviceProvider.java @@ -5,8 +5,8 @@ package li.cil.oc2.common.bus.device.provider.item; import li.cil.oc2.api.bus.device.ItemDevice; import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; import li.cil.oc2.common.Config; -import li.cil.oc2.common.bus.device.item.BlockOperationsModuleDevice; import li.cil.oc2.common.bus.device.provider.util.AbstractItemDeviceProvider; +import li.cil.oc2.common.bus.device.rpc.item.BlockOperationsModuleDevice; import li.cil.oc2.common.capabilities.Capabilities; import li.cil.oc2.common.item.Items; diff --git a/src/main/java/li/cil/oc2/common/bus/device/provider/item/FileImportExportCardItemDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/provider/item/FileImportExportCardItemDeviceProvider.java index f072b236..acce075a 100644 --- a/src/main/java/li/cil/oc2/common/bus/device/provider/item/FileImportExportCardItemDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/item/FileImportExportCardItemDeviceProvider.java @@ -6,8 +6,8 @@ import li.cil.oc2.api.bus.device.ItemDevice; import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; import li.cil.oc2.api.capabilities.TerminalUserProvider; import li.cil.oc2.common.Config; -import li.cil.oc2.common.bus.device.item.FileImportExportCardItemDevice; import li.cil.oc2.common.bus.device.provider.util.AbstractItemDeviceProvider; +import li.cil.oc2.common.bus.device.rpc.item.FileImportExportCardItemDevice; import li.cil.oc2.common.capabilities.Capabilities; import li.cil.oc2.common.item.Items; import net.minecraftforge.common.util.LazyOptional; diff --git a/src/main/java/li/cil/oc2/common/bus/device/provider/item/FlashMemoryItemDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/provider/item/FlashMemoryItemDeviceProvider.java index 6df30209..1d9b43bc 100644 --- a/src/main/java/li/cil/oc2/common/bus/device/provider/item/FlashMemoryItemDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/item/FlashMemoryItemDeviceProvider.java @@ -5,8 +5,8 @@ package li.cil.oc2.common.bus.device.provider.item; import li.cil.oc2.api.bus.device.ItemDevice; import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; import li.cil.oc2.common.Config; -import li.cil.oc2.common.bus.device.item.ByteBufferFlashMemoryVMDevice; import li.cil.oc2.common.bus.device.provider.util.AbstractItemDeviceProvider; +import li.cil.oc2.common.bus.device.vm.item.ByteBufferFlashStorageDevice; import li.cil.oc2.common.item.FlashMemoryItem; import net.minecraft.util.Mth; import net.minecraft.world.item.ItemStack; @@ -26,6 +26,6 @@ public final class FlashMemoryItemDeviceProvider extends AbstractItemDeviceProvi final FlashMemoryItem item = (FlashMemoryItem) stack.getItem(); final int capacity = Mth.clamp(item.getCapacity(stack), 0, Config.maxFlashMemorySize); - return Optional.of(new ByteBufferFlashMemoryVMDevice(stack, capacity)); + return Optional.of(new ByteBufferFlashStorageDevice(stack, capacity)); } } diff --git a/src/main/java/li/cil/oc2/common/bus/device/provider/item/FlashMemoryWithExternalDataItemDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/provider/item/FlashMemoryWithExternalDataItemDeviceProvider.java index 60a6fb80..583b6446 100644 --- a/src/main/java/li/cil/oc2/common/bus/device/provider/item/FlashMemoryWithExternalDataItemDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/item/FlashMemoryWithExternalDataItemDeviceProvider.java @@ -5,8 +5,8 @@ package li.cil.oc2.common.bus.device.provider.item; import li.cil.oc2.api.bus.device.ItemDevice; import li.cil.oc2.api.bus.device.data.Firmware; import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; -import li.cil.oc2.common.bus.device.item.FirmwareFlashMemoryVMDevice; import li.cil.oc2.common.bus.device.provider.util.AbstractItemDeviceProvider; +import li.cil.oc2.common.bus.device.vm.item.FirmwareFlashStorageDevice; import li.cil.oc2.common.item.FlashMemoryWithExternalDataItem; import net.minecraft.world.item.ItemStack; @@ -29,6 +29,6 @@ public final class FlashMemoryWithExternalDataItemDeviceProvider extends Abstrac return Optional.empty(); } - return Optional.of(new FirmwareFlashMemoryVMDevice(stack, firmware)); + return Optional.of(new FirmwareFlashStorageDevice(stack, firmware)); } } diff --git a/src/main/java/li/cil/oc2/common/bus/device/provider/item/HardDriveItemDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/provider/item/HardDriveItemDeviceProvider.java index f58414fd..3eb1f13c 100644 --- a/src/main/java/li/cil/oc2/common/bus/device/provider/item/HardDriveItemDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/item/HardDriveItemDeviceProvider.java @@ -6,8 +6,8 @@ import li.cil.oc2.api.bus.device.ItemDevice; import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; import li.cil.oc2.common.Config; import li.cil.oc2.common.Constants; -import li.cil.oc2.common.bus.device.item.HardDriveVMDevice; import li.cil.oc2.common.bus.device.provider.util.AbstractItemDeviceProvider; +import li.cil.oc2.common.bus.device.vm.item.HardDriveDevice; import li.cil.oc2.common.item.HardDriveItem; import li.cil.oc2.common.util.LocationSupplierUtils; import net.minecraft.nbt.CompoundTag; @@ -27,14 +27,14 @@ public final class HardDriveItemDeviceProvider extends AbstractItemDeviceProvide @Override public void unmount(@Nullable final ItemDeviceQuery query, final CompoundTag tag) { super.unmount(query, tag); - HardDriveVMDevice.unmount(tag); + HardDriveDevice.unmount(tag); } /////////////////////////////////////////////////////////////////// @Override protected Optional getItemDevice(final ItemDeviceQuery query) { - return Optional.of(new HardDriveVMDevice(query.getItemStack(), getCapacity(query), false, LocationSupplierUtils.of(query))); + return Optional.of(new HardDriveDevice(query.getItemStack(), getCapacity(query), false, LocationSupplierUtils.of(query))); } @Override diff --git a/src/main/java/li/cil/oc2/common/bus/device/provider/item/HardDriveWithExternalDataItemDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/provider/item/HardDriveWithExternalDataItemDeviceProvider.java index 28af0420..69540f39 100644 --- a/src/main/java/li/cil/oc2/common/bus/device/provider/item/HardDriveWithExternalDataItemDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/item/HardDriveWithExternalDataItemDeviceProvider.java @@ -7,8 +7,8 @@ import li.cil.oc2.api.bus.device.data.BlockDeviceData; import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; import li.cil.oc2.common.Config; import li.cil.oc2.common.Constants; -import li.cil.oc2.common.bus.device.item.HardDriveVMDeviceWithInitialData; import li.cil.oc2.common.bus.device.provider.util.AbstractItemDeviceProvider; +import li.cil.oc2.common.bus.device.vm.item.HardDriveDeviceWithInitialData; import li.cil.oc2.common.item.HardDriveWithExternalDataItem; import li.cil.oc2.common.util.LocationSupplierUtils; import net.minecraft.nbt.CompoundTag; @@ -27,7 +27,7 @@ public final class HardDriveWithExternalDataItemDeviceProvider extends AbstractI @Override public void unmount(@Nullable final ItemDeviceQuery query, final CompoundTag tag) { super.unmount(query, tag); - HardDriveVMDeviceWithInitialData.unmount(tag); + HardDriveDeviceWithInitialData.unmount(tag); } /////////////////////////////////////////////////////////////////// @@ -41,7 +41,7 @@ public final class HardDriveWithExternalDataItemDeviceProvider extends AbstractI return Optional.empty(); } - return Optional.of(new HardDriveVMDeviceWithInitialData(stack, data.getBlockDevice(), false, LocationSupplierUtils.of(query))); + return Optional.of(new HardDriveDeviceWithInitialData(stack, data.getBlockDevice(), false, LocationSupplierUtils.of(query))); } @Override diff --git a/src/main/java/li/cil/oc2/common/bus/device/provider/item/InventoryOperationsModuleDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/provider/item/InventoryOperationsModuleDeviceProvider.java index 1f0d413d..ef55469c 100644 --- a/src/main/java/li/cil/oc2/common/bus/device/provider/item/InventoryOperationsModuleDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/item/InventoryOperationsModuleDeviceProvider.java @@ -5,8 +5,8 @@ package li.cil.oc2.common.bus.device.provider.item; import li.cil.oc2.api.bus.device.ItemDevice; import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; import li.cil.oc2.common.Config; -import li.cil.oc2.common.bus.device.item.InventoryOperationsModuleDevice; import li.cil.oc2.common.bus.device.provider.util.AbstractItemDeviceProvider; +import li.cil.oc2.common.bus.device.rpc.item.InventoryOperationsModuleDevice; import li.cil.oc2.common.capabilities.Capabilities; import li.cil.oc2.common.item.Items; diff --git a/src/main/java/li/cil/oc2/common/bus/device/provider/item/MemoryItemDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/provider/item/MemoryItemDeviceProvider.java index 537b6652..9bc8f2d2 100644 --- a/src/main/java/li/cil/oc2/common/bus/device/provider/item/MemoryItemDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/item/MemoryItemDeviceProvider.java @@ -6,8 +6,8 @@ import li.cil.oc2.api.bus.device.ItemDevice; import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; import li.cil.oc2.common.Config; import li.cil.oc2.common.Constants; -import li.cil.oc2.common.bus.device.item.MemoryDevice; import li.cil.oc2.common.bus.device.provider.util.AbstractItemDeviceProvider; +import li.cil.oc2.common.bus.device.vm.item.MemoryDevice; import li.cil.oc2.common.item.MemoryItem; import net.minecraft.util.Mth; import net.minecraft.world.item.ItemStack; diff --git a/src/main/java/li/cil/oc2/common/bus/device/provider/item/NetworkInterfaceCardItemDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/provider/item/NetworkInterfaceCardItemDeviceProvider.java index 8354e1e9..f89ef106 100644 --- a/src/main/java/li/cil/oc2/common/bus/device/provider/item/NetworkInterfaceCardItemDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/item/NetworkInterfaceCardItemDeviceProvider.java @@ -5,8 +5,8 @@ package li.cil.oc2.common.bus.device.provider.item; import li.cil.oc2.api.bus.device.ItemDevice; import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; import li.cil.oc2.common.Config; -import li.cil.oc2.common.bus.device.item.NetworkInterfaceCardItemDevice; import li.cil.oc2.common.bus.device.provider.util.AbstractItemDeviceProvider; +import li.cil.oc2.common.bus.device.vm.item.NetworkInterfaceCardDevice; import li.cil.oc2.common.item.Items; import java.util.Optional; @@ -20,7 +20,7 @@ public final class NetworkInterfaceCardItemDeviceProvider extends AbstractItemDe @Override protected Optional getItemDevice(final ItemDeviceQuery query) { - return Optional.of(new NetworkInterfaceCardItemDevice(query.getItemStack())); + return Optional.of(new NetworkInterfaceCardDevice(query.getItemStack())); } @Override diff --git a/src/main/java/li/cil/oc2/common/bus/device/provider/item/NetworkTunnelCardItemDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/provider/item/NetworkTunnelCardItemDeviceProvider.java index 389ae85f..381c0a01 100644 --- a/src/main/java/li/cil/oc2/common/bus/device/provider/item/NetworkTunnelCardItemDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/item/NetworkTunnelCardItemDeviceProvider.java @@ -5,8 +5,8 @@ package li.cil.oc2.common.bus.device.provider.item; import li.cil.oc2.api.bus.device.ItemDevice; import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; import li.cil.oc2.common.Config; -import li.cil.oc2.common.bus.device.item.NetworkTunnelItemDevice; import li.cil.oc2.common.bus.device.provider.util.AbstractItemDeviceProvider; +import li.cil.oc2.common.bus.device.vm.item.NetworkTunnelDevice; import li.cil.oc2.common.item.Items; import java.util.Optional; @@ -20,7 +20,7 @@ public final class NetworkTunnelCardItemDeviceProvider extends AbstractItemDevic @Override protected Optional getItemDevice(final ItemDeviceQuery query) { - return Optional.of(new NetworkTunnelItemDevice(query.getItemStack())); + return Optional.of(new NetworkTunnelDevice(query.getItemStack())); } @Override diff --git a/src/main/java/li/cil/oc2/common/bus/device/provider/item/NetworkTunnelModuleItemDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/provider/item/NetworkTunnelModuleItemDeviceProvider.java index 30160a7a..49a770d6 100644 --- a/src/main/java/li/cil/oc2/common/bus/device/provider/item/NetworkTunnelModuleItemDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/item/NetworkTunnelModuleItemDeviceProvider.java @@ -5,8 +5,8 @@ package li.cil.oc2.common.bus.device.provider.item; import li.cil.oc2.api.bus.device.ItemDevice; import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; import li.cil.oc2.common.Config; -import li.cil.oc2.common.bus.device.item.NetworkTunnelItemDevice; import li.cil.oc2.common.bus.device.provider.util.AbstractItemDeviceProvider; +import li.cil.oc2.common.bus.device.vm.item.NetworkTunnelDevice; import li.cil.oc2.common.item.Items; import java.util.Optional; @@ -20,7 +20,7 @@ public final class NetworkTunnelModuleItemDeviceProvider extends AbstractItemDev @Override protected Optional getItemDevice(final ItemDeviceQuery query) { - return Optional.of(new NetworkTunnelItemDevice(query.getItemStack())); + return Optional.of(new NetworkTunnelDevice(query.getItemStack())); } @Override diff --git a/src/main/java/li/cil/oc2/common/bus/device/provider/item/RedstoneInterfaceCardItemDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/provider/item/RedstoneInterfaceCardItemDeviceProvider.java index 66b6ec98..c1d6811e 100644 --- a/src/main/java/li/cil/oc2/common/bus/device/provider/item/RedstoneInterfaceCardItemDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/item/RedstoneInterfaceCardItemDeviceProvider.java @@ -5,8 +5,8 @@ package li.cil.oc2.common.bus.device.provider.item; import li.cil.oc2.api.bus.device.ItemDevice; import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; import li.cil.oc2.common.Config; -import li.cil.oc2.common.bus.device.item.RedstoneInterfaceCardItemDevice; import li.cil.oc2.common.bus.device.provider.util.AbstractItemDeviceProvider; +import li.cil.oc2.common.bus.device.rpc.item.RedstoneInterfaceCardItemDevice; import li.cil.oc2.common.item.Items; import java.util.Optional; diff --git a/src/main/java/li/cil/oc2/common/bus/device/provider/item/SoundCardItemDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/provider/item/SoundCardItemDeviceProvider.java index 4f9ae617..aa079fed 100644 --- a/src/main/java/li/cil/oc2/common/bus/device/provider/item/SoundCardItemDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/provider/item/SoundCardItemDeviceProvider.java @@ -5,8 +5,8 @@ package li.cil.oc2.common.bus.device.provider.item; import li.cil.oc2.api.bus.device.ItemDevice; import li.cil.oc2.api.bus.device.provider.ItemDeviceQuery; import li.cil.oc2.common.Config; -import li.cil.oc2.common.bus.device.item.SoundCardItemDevice; import li.cil.oc2.common.bus.device.provider.util.AbstractItemDeviceProvider; +import li.cil.oc2.common.bus.device.rpc.item.SoundCardItemDevice; import li.cil.oc2.common.item.Items; import li.cil.oc2.common.util.LocationSupplierUtils; diff --git a/src/main/java/li/cil/oc2/common/bus/device/provider/block/BlockEntityDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/rpc/block/BlockEntityObjectDeviceProvider.java similarity index 82% rename from src/main/java/li/cil/oc2/common/bus/device/provider/block/BlockEntityDeviceProvider.java rename to src/main/java/li/cil/oc2/common/bus/device/rpc/block/BlockEntityObjectDeviceProvider.java index ed892778..599690b7 100644 --- a/src/main/java/li/cil/oc2/common/bus/device/provider/block/BlockEntityDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/rpc/block/BlockEntityObjectDeviceProvider.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2.common.bus.device.provider.block; +package li.cil.oc2.common.bus.device.rpc.block; import li.cil.oc2.api.bus.device.Device; import li.cil.oc2.api.bus.device.object.Callbacks; @@ -10,7 +10,7 @@ import li.cil.oc2.api.util.Invalidatable; import li.cil.oc2.common.bus.device.provider.util.AbstractBlockEntityDeviceProvider; import net.minecraft.world.level.block.entity.BlockEntity; -public final class BlockEntityDeviceProvider extends AbstractBlockEntityDeviceProvider { +public final class BlockEntityObjectDeviceProvider extends AbstractBlockEntityDeviceProvider { @Override public Invalidatable getBlockDevice(final BlockDeviceQuery query, final BlockEntity blockEntity) { if (Callbacks.hasMethods(blockEntity)) { diff --git a/src/main/java/li/cil/oc2/common/bus/device/provider/block/BlockStateDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/rpc/block/BlockStateObjectDeviceProvider.java similarity index 89% rename from src/main/java/li/cil/oc2/common/bus/device/provider/block/BlockStateDeviceProvider.java rename to src/main/java/li/cil/oc2/common/bus/device/rpc/block/BlockStateObjectDeviceProvider.java index 303e2c06..3ca8b061 100644 --- a/src/main/java/li/cil/oc2/common/bus/device/provider/block/BlockStateDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/rpc/block/BlockStateObjectDeviceProvider.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2.common.bus.device.provider.block; +package li.cil.oc2.common.bus.device.rpc.block; import li.cil.oc2.api.bus.device.Device; import li.cil.oc2.api.bus.device.object.Callbacks; @@ -13,7 +13,7 @@ import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; -public final class BlockStateDeviceProvider extends AbstractBlockDeviceProvider { +public final class BlockStateObjectDeviceProvider extends AbstractBlockDeviceProvider { @Override public Invalidatable getDevice(final BlockDeviceQuery query) { final Level level = query.getLevel(); diff --git a/src/main/java/li/cil/oc2/common/bus/device/provider/block/EnergyStorageBlockDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/rpc/block/EnergyStorageBlockDeviceProvider.java similarity index 95% rename from src/main/java/li/cil/oc2/common/bus/device/provider/block/EnergyStorageBlockDeviceProvider.java rename to src/main/java/li/cil/oc2/common/bus/device/rpc/block/EnergyStorageBlockDeviceProvider.java index 7cbca521..57aecd32 100644 --- a/src/main/java/li/cil/oc2/common/bus/device/provider/block/EnergyStorageBlockDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/rpc/block/EnergyStorageBlockDeviceProvider.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2.common.bus.device.provider.block; +package li.cil.oc2.common.bus.device.rpc.block; import li.cil.oc2.api.bus.device.Device; import li.cil.oc2.api.bus.device.object.ObjectDevice; diff --git a/src/main/java/li/cil/oc2/common/bus/device/provider/block/FluidHandlerBlockDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/rpc/block/FluidHandlerBlockDeviceProvider.java similarity index 95% rename from src/main/java/li/cil/oc2/common/bus/device/provider/block/FluidHandlerBlockDeviceProvider.java rename to src/main/java/li/cil/oc2/common/bus/device/rpc/block/FluidHandlerBlockDeviceProvider.java index 3ae4f92a..40d14a67 100644 --- a/src/main/java/li/cil/oc2/common/bus/device/provider/block/FluidHandlerBlockDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/rpc/block/FluidHandlerBlockDeviceProvider.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2.common.bus.device.provider.block; +package li.cil.oc2.common.bus.device.rpc.block; import li.cil.oc2.api.bus.device.Device; import li.cil.oc2.api.bus.device.object.ObjectDevice; diff --git a/src/main/java/li/cil/oc2/common/bus/device/provider/block/ItemHandlerBlockDeviceProvider.java b/src/main/java/li/cil/oc2/common/bus/device/rpc/block/ItemHandlerBlockDeviceProvider.java similarity index 95% rename from src/main/java/li/cil/oc2/common/bus/device/provider/block/ItemHandlerBlockDeviceProvider.java rename to src/main/java/li/cil/oc2/common/bus/device/rpc/block/ItemHandlerBlockDeviceProvider.java index da413a87..a315ce93 100644 --- a/src/main/java/li/cil/oc2/common/bus/device/provider/block/ItemHandlerBlockDeviceProvider.java +++ b/src/main/java/li/cil/oc2/common/bus/device/rpc/block/ItemHandlerBlockDeviceProvider.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2.common.bus.device.provider.block; +package li.cil.oc2.common.bus.device.rpc.block; import li.cil.oc2.api.bus.device.Device; import li.cil.oc2.api.bus.device.object.ObjectDevice; diff --git a/src/main/java/li/cil/oc2/common/bus/device/rpc/block/package-info.java b/src/main/java/li/cil/oc2/common/bus/device/rpc/block/package-info.java new file mode 100644 index 00000000..ab99897f --- /dev/null +++ b/src/main/java/li/cil/oc2/common/bus/device/rpc/block/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.bus.device.rpc.block; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2/common/bus/device/item/AbstractItemRPCDevice.java b/src/main/java/li/cil/oc2/common/bus/device/rpc/item/AbstractItemRPCDevice.java similarity index 96% rename from src/main/java/li/cil/oc2/common/bus/device/item/AbstractItemRPCDevice.java rename to src/main/java/li/cil/oc2/common/bus/device/rpc/item/AbstractItemRPCDevice.java index 748369c4..a7431f77 100644 --- a/src/main/java/li/cil/oc2/common/bus/device/item/AbstractItemRPCDevice.java +++ b/src/main/java/li/cil/oc2/common/bus/device/rpc/item/AbstractItemRPCDevice.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2.common.bus.device.item; +package li.cil.oc2.common.bus.device.rpc.item; import li.cil.oc2.api.bus.device.DeviceContainer; import li.cil.oc2.api.bus.device.ItemDevice; diff --git a/src/main/java/li/cil/oc2/common/bus/device/item/BlockOperationsModuleDevice.java b/src/main/java/li/cil/oc2/common/bus/device/rpc/item/BlockOperationsModuleDevice.java similarity index 99% rename from src/main/java/li/cil/oc2/common/bus/device/item/BlockOperationsModuleDevice.java rename to src/main/java/li/cil/oc2/common/bus/device/rpc/item/BlockOperationsModuleDevice.java index c79423f1..52e3d5e6 100644 --- a/src/main/java/li/cil/oc2/common/bus/device/item/BlockOperationsModuleDevice.java +++ b/src/main/java/li/cil/oc2/common/bus/device/rpc/item/BlockOperationsModuleDevice.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2.common.bus.device.item; +package li.cil.oc2.common.bus.device.rpc.item; import li.cil.oc2.api.bus.device.object.Callback; import li.cil.oc2.api.bus.device.object.Parameter; diff --git a/src/main/java/li/cil/oc2/common/bus/device/item/FileImportExportCardItemDevice.java b/src/main/java/li/cil/oc2/common/bus/device/rpc/item/FileImportExportCardItemDevice.java similarity index 99% rename from src/main/java/li/cil/oc2/common/bus/device/item/FileImportExportCardItemDevice.java rename to src/main/java/li/cil/oc2/common/bus/device/rpc/item/FileImportExportCardItemDevice.java index a5f4e1e7..4411d0a1 100644 --- a/src/main/java/li/cil/oc2/common/bus/device/item/FileImportExportCardItemDevice.java +++ b/src/main/java/li/cil/oc2/common/bus/device/rpc/item/FileImportExportCardItemDevice.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2.common.bus.device.item; +package li.cil.oc2.common.bus.device.rpc.item; import it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap; import li.cil.oc2.api.bus.device.object.Callback; diff --git a/src/main/java/li/cil/oc2/common/bus/device/item/InventoryOperationsModuleDevice.java b/src/main/java/li/cil/oc2/common/bus/device/rpc/item/InventoryOperationsModuleDevice.java similarity index 99% rename from src/main/java/li/cil/oc2/common/bus/device/item/InventoryOperationsModuleDevice.java rename to src/main/java/li/cil/oc2/common/bus/device/rpc/item/InventoryOperationsModuleDevice.java index bcaf56d8..cd93898d 100644 --- a/src/main/java/li/cil/oc2/common/bus/device/item/InventoryOperationsModuleDevice.java +++ b/src/main/java/li/cil/oc2/common/bus/device/rpc/item/InventoryOperationsModuleDevice.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2.common.bus.device.item; +package li.cil.oc2.common.bus.device.rpc.item; import li.cil.oc2.api.bus.device.object.Callback; import li.cil.oc2.api.bus.device.object.Parameter; diff --git a/src/main/java/li/cil/oc2/common/bus/device/item/RedstoneInterfaceCardItemDevice.java b/src/main/java/li/cil/oc2/common/bus/device/rpc/item/RedstoneInterfaceCardItemDevice.java similarity index 99% rename from src/main/java/li/cil/oc2/common/bus/device/item/RedstoneInterfaceCardItemDevice.java rename to src/main/java/li/cil/oc2/common/bus/device/rpc/item/RedstoneInterfaceCardItemDevice.java index fc9c4fb1..1524b023 100644 --- a/src/main/java/li/cil/oc2/common/bus/device/item/RedstoneInterfaceCardItemDevice.java +++ b/src/main/java/li/cil/oc2/common/bus/device/rpc/item/RedstoneInterfaceCardItemDevice.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2.common.bus.device.item; +package li.cil.oc2.common.bus.device.rpc.item; import li.cil.oc2.api.bus.device.object.Callback; import li.cil.oc2.api.bus.device.object.DocumentedDevice; diff --git a/src/main/java/li/cil/oc2/common/bus/device/item/SoundCardItemDevice.java b/src/main/java/li/cil/oc2/common/bus/device/rpc/item/SoundCardItemDevice.java similarity index 98% rename from src/main/java/li/cil/oc2/common/bus/device/item/SoundCardItemDevice.java rename to src/main/java/li/cil/oc2/common/bus/device/rpc/item/SoundCardItemDevice.java index 63c84fbb..0ac13fe6 100644 --- a/src/main/java/li/cil/oc2/common/bus/device/item/SoundCardItemDevice.java +++ b/src/main/java/li/cil/oc2/common/bus/device/rpc/item/SoundCardItemDevice.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2.common.bus.device.item; +package li.cil.oc2.common.bus.device.rpc.item; import li.cil.oc2.api.bus.device.object.Callback; import li.cil.oc2.api.bus.device.object.Parameter; diff --git a/src/main/java/li/cil/oc2/common/bus/device/rpc/item/package-info.java b/src/main/java/li/cil/oc2/common/bus/device/rpc/item/package-info.java new file mode 100644 index 00000000..48db9acd --- /dev/null +++ b/src/main/java/li/cil/oc2/common/bus/device/rpc/item/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.bus.device.rpc.item; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2/common/bus/device/vm/block/DiskDriveContainer.java b/src/main/java/li/cil/oc2/common/bus/device/vm/block/DiskDriveContainer.java new file mode 100644 index 00000000..924fbdc8 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/bus/device/vm/block/DiskDriveContainer.java @@ -0,0 +1,11 @@ +/* SPDX-License-Identifier: MIT */ + +package li.cil.oc2.common.bus.device.vm.block; + +import net.minecraft.world.item.ItemStack; + +public interface DiskDriveContainer { + ItemStack getDiskItemStack(); + + void handleDataAccess(); +} diff --git a/src/main/java/li/cil/oc2/common/bus/device/vm/block/DiskDriveDevice.java b/src/main/java/li/cil/oc2/common/bus/device/vm/block/DiskDriveDevice.java new file mode 100644 index 00000000..9e09cc4b --- /dev/null +++ b/src/main/java/li/cil/oc2/common/bus/device/vm/block/DiskDriveDevice.java @@ -0,0 +1,110 @@ +/* SPDX-License-Identifier: MIT */ + +package li.cil.oc2.common.bus.device.vm.block; + +import li.cil.oc2.common.Config; +import li.cil.oc2.common.bus.device.vm.item.AbstractBlockStorageDevice; +import li.cil.oc2.common.item.FloppyItem; +import li.cil.oc2.common.serialization.BlobStorage; +import li.cil.sedna.api.device.BlockDevice; +import li.cil.sedna.device.block.ByteBufferBlockDevice; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.util.Mth; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.entity.BlockEntity; + +import java.io.IOException; +import java.nio.MappedByteBuffer; +import java.nio.channels.FileChannel; +import java.util.concurrent.CompletableFuture; + +public final class DiskDriveDevice extends AbstractBlockStorageDevice { + private static final ByteBufferBlockDevice EMPTY_BLOCK_DEVICE = ByteBufferBlockDevice.create(0, false); + + /////////////////////////////////////////////////////////////// + + public DiskDriveDevice(final T container) { + super(container, false); + } + + /////////////////////////////////////////////////////////////// + + public void updateBlockDevice(final CompoundTag tag) { + joinOpenJob(); + + if (device == null) { + return; + } + + try { + device.setBlock(EMPTY_BLOCK_DEVICE); + } catch (final IOException e) { + LOGGER.error(e); + } + + if (blobHandle != null) { + BlobStorage.close(blobHandle); + blobHandle = null; + } + + importFromItemStack(tag); + + setOpenJob(createBlockDevice().thenAcceptAsync(blockDevice -> { + try { + device.setBlock(blockDevice); + } catch (final IOException e) { + throw new RuntimeException(e); + } + }, WORKERS)); + } + + public void removeBlockDevice() { + joinOpenJob(); + + if (device == null) { + return; + } + + try { + device.setBlock(EMPTY_BLOCK_DEVICE); + } catch (final IOException e) { + LOGGER.error(e); + } + + if (blobHandle != null) { + BlobStorage.close(blobHandle); + blobHandle = null; + } + } + + /////////////////////////////////////////////////////////////// + + @Override + protected CompletableFuture createBlockDevice() { + final ItemStack stack = identity.getDiskItemStack(); + if (stack.isEmpty() || !(stack.getItem() instanceof final FloppyItem floppy)) { + return CompletableFuture.completedFuture(EMPTY_BLOCK_DEVICE); + } + + final int capacity = Mth.clamp(floppy.getCapacity(stack), 0, Config.maxFloppySize); + if (capacity <= 0) { + return CompletableFuture.completedFuture(EMPTY_BLOCK_DEVICE); + } + + blobHandle = BlobStorage.validateHandle(blobHandle); + return CompletableFuture.supplyAsync(() -> { + try { + final FileChannel channel = BlobStorage.getOrOpen(blobHandle); + final MappedByteBuffer buffer = channel.map(FileChannel.MapMode.READ_WRITE, 0, capacity); + return ByteBufferBlockDevice.wrap(buffer, false); + } catch (final IOException e) { + throw new RuntimeException(e); + } + }, WORKERS); + } + + @Override + protected void handleDataAccess() { + identity.handleDataAccess(); + } +} diff --git a/src/main/java/li/cil/oc2/common/bus/device/vm/KeyboardVMDevice.java b/src/main/java/li/cil/oc2/common/bus/device/vm/block/KeyboardDevice.java similarity index 95% rename from src/main/java/li/cil/oc2/common/bus/device/vm/KeyboardVMDevice.java rename to src/main/java/li/cil/oc2/common/bus/device/vm/block/KeyboardDevice.java index 0521161a..416ab8a4 100644 --- a/src/main/java/li/cil/oc2/common/bus/device/vm/KeyboardVMDevice.java +++ b/src/main/java/li/cil/oc2/common/bus/device/vm/block/KeyboardDevice.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2.common.bus.device.vm; +package li.cil.oc2.common.bus.device.vm.block; import li.cil.oc2.api.bus.device.vm.VMDevice; import li.cil.oc2.api.bus.device.vm.VMDeviceLoadResult; @@ -16,7 +16,7 @@ import net.minecraft.nbt.CompoundTag; import javax.annotation.Nullable; -public final class KeyboardVMDevice extends IdentityProxy implements VMDevice { +public final class KeyboardDevice extends IdentityProxy implements VMDevice { private static final String DEVICE_TAG_NAME = "device"; private static final String ADDRESS_TAG_NAME = "address"; private static final String INTERRUPT_TAG_NAME = "interrupt"; @@ -33,7 +33,7 @@ public final class KeyboardVMDevice extends IdentityProxy implements VMDev /////////////////////////////////////////////////////////////// - public KeyboardVMDevice(final T identity) { + public KeyboardDevice(final T identity) { super(identity); } diff --git a/src/main/java/li/cil/oc2/common/bus/device/vm/ProjectorVMDevice.java b/src/main/java/li/cil/oc2/common/bus/device/vm/block/ProjectorDevice.java similarity index 95% rename from src/main/java/li/cil/oc2/common/bus/device/vm/ProjectorVMDevice.java rename to src/main/java/li/cil/oc2/common/bus/device/vm/block/ProjectorDevice.java index e8ef5c8f..336691df 100644 --- a/src/main/java/li/cil/oc2/common/bus/device/vm/ProjectorVMDevice.java +++ b/src/main/java/li/cil/oc2/common/bus/device/vm/block/ProjectorDevice.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2.common.bus.device.vm; +package li.cil.oc2.common.bus.device.vm.block; import li.cil.oc2.api.bus.device.vm.VMDevice; import li.cil.oc2.api.bus.device.vm.VMDeviceLoadResult; @@ -21,7 +21,7 @@ import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; import java.util.UUID; -public final class ProjectorVMDevice extends IdentityProxy implements VMDevice { +public final class ProjectorDevice extends IdentityProxy implements VMDevice { private static final String ADDRESS_TAG_NAME = "address"; private static final String BLOB_HANDLE_TAG_NAME = "blob"; @@ -40,7 +40,7 @@ public final class ProjectorVMDevice extends IdentityProxy /////////////////////////////////////////////////////////////// - public ProjectorVMDevice(final ProjectorBlockEntity identity) { + public ProjectorDevice(final ProjectorBlockEntity identity) { super(identity); } diff --git a/src/main/java/li/cil/oc2/common/bus/device/vm/block/package-info.java b/src/main/java/li/cil/oc2/common/bus/device/vm/block/package-info.java new file mode 100644 index 00000000..299a373f --- /dev/null +++ b/src/main/java/li/cil/oc2/common/bus/device/vm/block/package-info.java @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: MIT */ + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +package li.cil.oc2.common.bus.device.vm.block; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/li/cil/oc2/common/bus/device/item/AbstractBlockDeviceVMDevice.java b/src/main/java/li/cil/oc2/common/bus/device/vm/item/AbstractBlockStorageDevice.java similarity index 97% rename from src/main/java/li/cil/oc2/common/bus/device/item/AbstractBlockDeviceVMDevice.java rename to src/main/java/li/cil/oc2/common/bus/device/vm/item/AbstractBlockStorageDevice.java index 619742f3..3b0e8122 100644 --- a/src/main/java/li/cil/oc2/common/bus/device/item/AbstractBlockDeviceVMDevice.java +++ b/src/main/java/li/cil/oc2/common/bus/device/vm/item/AbstractBlockStorageDevice.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2.common.bus.device.item; +package li.cil.oc2.common.bus.device.vm.item; import com.google.common.eventbus.Subscribe; import li.cil.oc2.api.bus.device.ItemDevice; @@ -32,7 +32,7 @@ import java.util.concurrent.CompletionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; -public abstract class AbstractBlockDeviceVMDevice extends IdentityProxy implements VMDevice, ItemDevice { +public abstract class AbstractBlockStorageDevice extends IdentityProxy implements VMDevice, ItemDevice { protected static final Logger LOGGER = LogManager.getLogger(); private static final String DEVICE_TAG_NAME = "device"; @@ -64,7 +64,7 @@ public abstract class AbstractBlockDeviceVMDevice implements VMDevice, ItemDevice, ICapabilityProvider { +public abstract class AbstractNetworkInterfaceDevice extends IdentityProxy implements VMDevice, ItemDevice, ICapabilityProvider { private static final String DEVICE_TAG_NAME = "device"; private static final String ADDRESS_TAG_NAME = "address"; private static final String INTERRUPT_TAG_NAME = "interrupt"; @@ -41,7 +41,7 @@ public abstract class AbstractNetworkInterfaceItemDevice extends IdentityProxy implements VMDevice, ItemDevice, FirmwareLoader { +public final class ByteBufferFlashStorageDevice extends IdentityProxy implements VMDevice, ItemDevice, FirmwareLoader { public static final String DATA_TAG_NAME = "data"; /////////////////////////////////////////////////////////////// @@ -41,7 +41,7 @@ public final class ByteBufferFlashMemoryVMDevice extends IdentityProxy implements VMDevice, ItemDevice, FirmwareLoader { +public final class FirmwareFlashStorageDevice extends IdentityProxy implements VMDevice, ItemDevice, FirmwareLoader { private final Firmware firmware; private MemoryMap memoryMap; /////////////////////////////////////////////////////////////// - public FirmwareFlashMemoryVMDevice(final ItemStack identity, final Firmware firmware) { + public FirmwareFlashStorageDevice(final ItemStack identity, final Firmware firmware) { super(identity); this.firmware = firmware; } diff --git a/src/main/java/li/cil/oc2/common/bus/device/item/HardDriveVMDevice.java b/src/main/java/li/cil/oc2/common/bus/device/vm/item/HardDriveDevice.java similarity index 85% rename from src/main/java/li/cil/oc2/common/bus/device/item/HardDriveVMDevice.java rename to src/main/java/li/cil/oc2/common/bus/device/vm/item/HardDriveDevice.java index 60ccf8c9..7ab2d570 100644 --- a/src/main/java/li/cil/oc2/common/bus/device/item/HardDriveVMDevice.java +++ b/src/main/java/li/cil/oc2/common/bus/device/vm/item/HardDriveDevice.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2.common.bus.device.item; +package li.cil.oc2.common.bus.device.vm.item; import li.cil.oc2.common.serialization.BlobStorage; import li.cil.oc2.common.util.Location; @@ -17,13 +17,13 @@ import java.util.Optional; import java.util.concurrent.CompletableFuture; import java.util.function.Supplier; -public class HardDriveVMDevice extends AbstractBlockDeviceVMDevice { +public class HardDriveDevice extends AbstractBlockStorageDevice { private final int size; private final ThrottledSoundEmitter soundEmitter; /////////////////////////////////////////////////////////////////// - public HardDriveVMDevice(final ItemStack identity, final int size, final boolean readonly, final Supplier> location) { + public HardDriveDevice(final ItemStack identity, final int size, final boolean readonly, final Supplier> location) { super(identity, readonly); this.size = size; this.soundEmitter = new ThrottledSoundEmitter(location, SoundEvents.HDD_ACCESS.get()) diff --git a/src/main/java/li/cil/oc2/common/bus/device/item/HardDriveVMDeviceWithInitialData.java b/src/main/java/li/cil/oc2/common/bus/device/vm/item/HardDriveDeviceWithInitialData.java similarity index 83% rename from src/main/java/li/cil/oc2/common/bus/device/item/HardDriveVMDeviceWithInitialData.java rename to src/main/java/li/cil/oc2/common/bus/device/vm/item/HardDriveDeviceWithInitialData.java index 1abd9037..204de23b 100644 --- a/src/main/java/li/cil/oc2/common/bus/device/item/HardDriveVMDeviceWithInitialData.java +++ b/src/main/java/li/cil/oc2/common/bus/device/vm/item/HardDriveDeviceWithInitialData.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2.common.bus.device.item; +package li.cil.oc2.common.bus.device.vm.item; import com.google.common.io.ByteStreams; import li.cil.oc2.common.util.Location; @@ -15,12 +15,12 @@ import java.util.Optional; import java.util.concurrent.CompletableFuture; import java.util.function.Supplier; -public final class HardDriveVMDeviceWithInitialData extends HardDriveVMDevice { +public final class HardDriveDeviceWithInitialData extends HardDriveDevice { private final BlockDevice base; /////////////////////////////////////////////////////////////////// - public HardDriveVMDeviceWithInitialData(final ItemStack identity, final BlockDevice base, final boolean readonly, final Supplier> location) { + public HardDriveDeviceWithInitialData(final ItemStack identity, final BlockDevice base, final boolean readonly, final Supplier> location) { super(identity, (int) base.getCapacity(), readonly, location); this.base = base; } diff --git a/src/main/java/li/cil/oc2/common/bus/device/item/MemoryDevice.java b/src/main/java/li/cil/oc2/common/bus/device/vm/item/MemoryDevice.java similarity index 98% rename from src/main/java/li/cil/oc2/common/bus/device/item/MemoryDevice.java rename to src/main/java/li/cil/oc2/common/bus/device/vm/item/MemoryDevice.java index e8ee6f09..5ed766ef 100644 --- a/src/main/java/li/cil/oc2/common/bus/device/item/MemoryDevice.java +++ b/src/main/java/li/cil/oc2/common/bus/device/vm/item/MemoryDevice.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2.common.bus.device.item; +package li.cil.oc2.common.bus.device.vm.item; import li.cil.oc2.api.bus.device.ItemDevice; import li.cil.oc2.api.bus.device.vm.VMDevice; diff --git a/src/main/java/li/cil/oc2/common/bus/device/item/NetworkInterfaceCardItemDevice.java b/src/main/java/li/cil/oc2/common/bus/device/vm/item/NetworkInterfaceCardDevice.java similarity index 78% rename from src/main/java/li/cil/oc2/common/bus/device/item/NetworkInterfaceCardItemDevice.java rename to src/main/java/li/cil/oc2/common/bus/device/vm/item/NetworkInterfaceCardDevice.java index 7c5df265..30d80ba6 100644 --- a/src/main/java/li/cil/oc2/common/bus/device/item/NetworkInterfaceCardItemDevice.java +++ b/src/main/java/li/cil/oc2/common/bus/device/vm/item/NetworkInterfaceCardDevice.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2.common.bus.device.item; +package li.cil.oc2.common.bus.device.vm.item; import li.cil.oc2.common.item.NetworkInterfaceCardItem; import net.minecraft.core.Direction; @@ -11,8 +11,8 @@ import net.minecraftforge.common.util.LazyOptional; import javax.annotation.Nonnull; import javax.annotation.Nullable; -public final class NetworkInterfaceCardItemDevice extends AbstractNetworkInterfaceItemDevice { - public NetworkInterfaceCardItemDevice(final ItemStack identity) { +public final class NetworkInterfaceCardDevice extends AbstractNetworkInterfaceDevice { + public NetworkInterfaceCardDevice(final ItemStack identity) { super(identity); } diff --git a/src/main/java/li/cil/oc2/common/bus/device/item/NetworkTunnelItemDevice.java b/src/main/java/li/cil/oc2/common/bus/device/vm/item/NetworkTunnelDevice.java similarity index 95% rename from src/main/java/li/cil/oc2/common/bus/device/item/NetworkTunnelItemDevice.java rename to src/main/java/li/cil/oc2/common/bus/device/vm/item/NetworkTunnelDevice.java index fccad247..d75af425 100644 --- a/src/main/java/li/cil/oc2/common/bus/device/item/NetworkTunnelItemDevice.java +++ b/src/main/java/li/cil/oc2/common/bus/device/vm/item/NetworkTunnelDevice.java @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: MIT */ -package li.cil.oc2.common.bus.device.item; +package li.cil.oc2.common.bus.device.vm.item; import com.google.common.collect.BiMap; import com.google.common.collect.HashBiMap; @@ -23,8 +23,8 @@ import org.jetbrains.annotations.Nullable; import java.time.Duration; import java.util.*; -public final class NetworkTunnelItemDevice extends AbstractNetworkInterfaceItemDevice { - public NetworkTunnelItemDevice(final ItemStack identity) { +public final class NetworkTunnelDevice extends AbstractNetworkInterfaceDevice { + public NetworkTunnelDevice(final ItemStack identity) { super(identity); } diff --git a/src/main/java/li/cil/oc2/common/bus/device/item/package-info.java b/src/main/java/li/cil/oc2/common/bus/device/vm/item/package-info.java similarity index 81% rename from src/main/java/li/cil/oc2/common/bus/device/item/package-info.java rename to src/main/java/li/cil/oc2/common/bus/device/vm/item/package-info.java index f01e2ee6..802bfe1e 100644 --- a/src/main/java/li/cil/oc2/common/bus/device/item/package-info.java +++ b/src/main/java/li/cil/oc2/common/bus/device/vm/item/package-info.java @@ -2,7 +2,7 @@ @ParametersAreNonnullByDefault @MethodsReturnNonnullByDefault -package li.cil.oc2.common.bus.device.item; +package li.cil.oc2.common.bus.device.vm.item; import net.minecraft.MethodsReturnNonnullByDefault; diff --git a/src/main/java/li/cil/oc2/common/item/FlashMemoryItem.java b/src/main/java/li/cil/oc2/common/item/FlashMemoryItem.java index fe3dcd1a..54992ae2 100644 --- a/src/main/java/li/cil/oc2/common/item/FlashMemoryItem.java +++ b/src/main/java/li/cil/oc2/common/item/FlashMemoryItem.java @@ -3,7 +3,7 @@ package li.cil.oc2.common.item; import li.cil.oc2.api.API; -import li.cil.oc2.common.bus.device.item.ByteBufferFlashMemoryVMDevice; +import li.cil.oc2.common.bus.device.vm.item.ByteBufferFlashStorageDevice; import li.cil.oc2.common.util.NBTTagIds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -25,7 +25,7 @@ public final class FlashMemoryItem extends AbstractStorageItem { public CompoundTag getShareTag(final ItemStack stack) { final CompoundTag tag = super.getShareTag(stack); if (tag != null && tag.contains(API.MOD_ID, NBTTagIds.TAG_COMPOUND)) { - tag.getCompound(API.MOD_ID).remove(ByteBufferFlashMemoryVMDevice.DATA_TAG_NAME); + tag.getCompound(API.MOD_ID).remove(ByteBufferFlashStorageDevice.DATA_TAG_NAME); } return tag; } diff --git a/src/main/java/li/cil/oc2/common/network/message/ClientCanceledImportFileMessage.java b/src/main/java/li/cil/oc2/common/network/message/ClientCanceledImportFileMessage.java index 396b9689..5f662e9d 100644 --- a/src/main/java/li/cil/oc2/common/network/message/ClientCanceledImportFileMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/ClientCanceledImportFileMessage.java @@ -2,7 +2,7 @@ package li.cil.oc2.common.network.message; -import li.cil.oc2.common.bus.device.item.FileImportExportCardItemDevice; +import li.cil.oc2.common.bus.device.rpc.item.FileImportExportCardItemDevice; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.server.level.ServerPlayer; import net.minecraftforge.network.NetworkEvent; diff --git a/src/main/java/li/cil/oc2/common/network/message/ImportedFileMessage.java b/src/main/java/li/cil/oc2/common/network/message/ImportedFileMessage.java index 4b641166..6c463250 100644 --- a/src/main/java/li/cil/oc2/common/network/message/ImportedFileMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/ImportedFileMessage.java @@ -2,7 +2,7 @@ package li.cil.oc2.common.network.message; -import li.cil.oc2.common.bus.device.item.FileImportExportCardItemDevice; +import li.cil.oc2.common.bus.device.rpc.item.FileImportExportCardItemDevice; import net.minecraft.network.FriendlyByteBuf; import net.minecraftforge.network.NetworkEvent; diff --git a/src/main/java/li/cil/oc2/common/network/message/RequestImportedFileMessage.java b/src/main/java/li/cil/oc2/common/network/message/RequestImportedFileMessage.java index d3c6b9a8..def4a733 100644 --- a/src/main/java/li/cil/oc2/common/network/message/RequestImportedFileMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/RequestImportedFileMessage.java @@ -3,7 +3,7 @@ package li.cil.oc2.common.network.message; import li.cil.oc2.client.gui.FileChooserScreen; -import li.cil.oc2.common.bus.device.item.FileImportExportCardItemDevice; +import li.cil.oc2.common.bus.device.rpc.item.FileImportExportCardItemDevice; import li.cil.oc2.common.network.Network; import net.minecraft.client.Minecraft; import net.minecraft.network.FriendlyByteBuf; diff --git a/src/main/java/li/cil/oc2/common/network/message/ServerCanceledImportFileMessage.java b/src/main/java/li/cil/oc2/common/network/message/ServerCanceledImportFileMessage.java index dcb6db02..6b8b19ca 100644 --- a/src/main/java/li/cil/oc2/common/network/message/ServerCanceledImportFileMessage.java +++ b/src/main/java/li/cil/oc2/common/network/message/ServerCanceledImportFileMessage.java @@ -2,7 +2,7 @@ package li.cil.oc2.common.network.message; -import li.cil.oc2.common.bus.device.item.FileImportExportCardItemDevice; +import li.cil.oc2.common.bus.device.rpc.item.FileImportExportCardItemDevice; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.server.level.ServerPlayer; import net.minecraftforge.network.NetworkEvent;