From 566538f8a70f7f895b3a40a635b7769b1390ab58 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Tue, 11 Mar 2025 20:59:11 +0700 Subject: [PATCH] Update Drive Viewer to use EnhancedContainer --- .../otm/block/entity/storage/DriveViewerBlockEntity.kt | 10 ++++++---- .../dbotthepony/mc/otm/menu/storage/DriveViewerMenu.kt | 3 ++- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/storage/DriveViewerBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/storage/DriveViewerBlockEntity.kt index 91b4f661b..c1c23799e 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/storage/DriveViewerBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/storage/DriveViewerBlockEntity.kt @@ -17,6 +17,7 @@ import ru.dbotthepony.mc.otm.capability.MatteryCapability import ru.dbotthepony.mc.otm.capability.energy.ProfiledEnergyStorage import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage import ru.dbotthepony.mc.otm.config.MachinesConfig +import ru.dbotthepony.mc.otm.container.EnhancedContainer import ru.dbotthepony.mc.otm.container.MatteryContainer import ru.dbotthepony.mc.otm.core.get import ru.dbotthepony.mc.otm.core.math.Decimal @@ -29,15 +30,16 @@ class DriveViewerBlockEntity(blockPos: BlockPos, blockState: BlockState) : Matte override val energy = ProfiledEnergyStorage(WorkerEnergyStorage(this::energyUpdated, MachinesConfig.DRIVE_VIEWER)) val energyConfig = ConfigurableEnergy(energy) - val container: MatteryContainer = object : MatteryContainer(::markDirtyFast, 1) { - override fun setChanged(slot: Int, new: ItemStack, old: ItemStack) { - super.setChanged(slot, new, old) + val container: EnhancedContainer = object : EnhancedContainer(1) { + override fun notifySlotChanged(slot: Int, old: ItemStack) { + super.notifySlotChanged(slot, old) + markDirtyFast() val level = level if (level is ServerLevel) { tickList.once { - val isPresent = new.getCapability(MatteryCapability.CONDENSATION_DRIVE) != null + val isPresent = get(slot).getCapability(MatteryCapability.CONDENSATION_DRIVE) != null var state = this@DriveViewerBlockEntity.blockState.setValue(DriveViewerBlock.DRIVE_PRESENT, isPresent) if (!isPresent) { diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/storage/DriveViewerMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/storage/DriveViewerMenu.kt index 8d9121892..d7390009d 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/storage/DriveViewerMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/storage/DriveViewerMenu.kt @@ -12,6 +12,7 @@ import ru.dbotthepony.mc.otm.block.entity.storage.DriveViewerBlockEntity import ru.dbotthepony.mc.otm.capability.MatteryCapability import ru.dbotthepony.mc.otm.capability.drive.IMatteryDrive import ru.dbotthepony.mc.otm.capability.energy.ProfiledEnergyStorage +import ru.dbotthepony.mc.otm.container.EnhancedContainer import ru.dbotthepony.mc.otm.container.ItemFilter import ru.dbotthepony.mc.otm.core.immutableList import ru.dbotthepony.mc.otm.core.util.ItemStorageStackSorter @@ -36,7 +37,7 @@ class DriveViewerMenu( ) : MatteryPoweredMenu(MMenus.DRIVE_VIEWER, containerID, inventory, tile), INetworkedItemViewProvider { override val networkedItemView = NetworkedItemView(inventory.player, this, tile == null) - val driveSlot = object : MatteryMenuSlot(tile?.container ?: SimpleContainer(1), 0) { + val driveSlot = object : MatteryMenuSlot(tile?.container ?: EnhancedContainer(1), 0) { override fun mayPlace(itemStack: ItemStack): Boolean { return itemStack.getCapability(MatteryCapability.CONDENSATION_DRIVE) != null }