Update Drive Viewer to use EnhancedContainer

This commit is contained in:
DBotThePony 2025-03-11 20:59:11 +07:00
parent c08ea8a43d
commit 566538f8a7
Signed by: DBot
GPG Key ID: DCC23B5715498507
2 changed files with 8 additions and 5 deletions

View File

@ -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) {

View File

@ -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
}