Update MatteryPoweredBlockEntity battery container to use SlottedContainer

This commit is contained in:
DBotThePony 2025-03-03 19:55:52 +07:00
parent d76f2fe015
commit 7f9af78734
Signed by: DBot
GPG Key ID: DCC23B5715498507
4 changed files with 7 additions and 6 deletions

View File

@ -7,12 +7,12 @@ import ru.dbotthepony.mc.otm.capability.energy
import ru.dbotthepony.mc.otm.capability.energy.IMatteryEnergyStorage import ru.dbotthepony.mc.otm.capability.energy.IMatteryEnergyStorage
import ru.dbotthepony.mc.otm.capability.extractEnergy import ru.dbotthepony.mc.otm.capability.extractEnergy
import ru.dbotthepony.mc.otm.container.HandlerFilter import ru.dbotthepony.mc.otm.container.HandlerFilter
import ru.dbotthepony.mc.otm.container.MatteryContainer import ru.dbotthepony.mc.otm.container.slotted.AutomationFilters
import ru.dbotthepony.mc.otm.container.slotted.SlottedContainer
import ru.dbotthepony.mc.otm.core.math.Decimal import ru.dbotthepony.mc.otm.core.math.Decimal
abstract class MatteryPoweredBlockEntity(p_155228_: BlockEntityType<*>, p_155229_: BlockPos, p_155230_: BlockState) : MatteryDeviceBlockEntity(p_155228_, p_155229_, p_155230_) { abstract class MatteryPoweredBlockEntity(p_155228_: BlockEntityType<*>, p_155229_: BlockPos, p_155230_: BlockState) : MatteryDeviceBlockEntity(p_155228_, p_155229_, p_155230_) {
val batteryContainer = MatteryContainer(::markDirtyFast, 1).also(::addDroppableContainer) val batteryContainer = SlottedContainer.simple(1, AutomationFilters.DISCHARGABLE.simpleProvider, ::markDirtyFast).also(::addDroppableContainer)
val batteryItemHandler = batteryContainer.handler(HandlerFilter.Dischargeable)
open val energy: IMatteryEnergyStorage? open val energy: IMatteryEnergyStorage?
get() = null get() = null

View File

@ -85,7 +85,7 @@ class MatterBottlerBlockEntity(blockPos: BlockPos, blockState: BlockState) :
val itemConfig = ConfigurableItemHandler( val itemConfig = ConfigurableItemHandler(
input = inputHandler, input = inputHandler,
output = outputHandler, output = outputHandler,
battery = batteryItemHandler battery = batteryContainer
) )
val matter: ProfiledMatterStorage<MatterStorageImpl> = ProfiledMatterStorage(object : MatterStorageImpl(this@MatterBottlerBlockEntity::markDirtyFast, FlowDirection.BI_DIRECTIONAL, upgrades.matterCapacity(MachinesConfig.MatterBottler.VALUES::matterCapacity)) { val matter: ProfiledMatterStorage<MatterStorageImpl> = ProfiledMatterStorage(object : MatterStorageImpl(this@MatterBottlerBlockEntity::markDirtyFast, FlowDirection.BI_DIRECTIONAL, upgrades.matterCapacity(MachinesConfig.MatterBottler.VALUES::matterCapacity)) {

View File

@ -78,7 +78,7 @@ sealed class AbstractPoweredFurnaceBlockEntity<P : AbstractCookingRecipe, S : Ma
val itemConfig = ConfigurableItemHandler( val itemConfig = ConfigurableItemHandler(
input = inputs.handler(HandlerFilter.OnlyIn), input = inputs.handler(HandlerFilter.OnlyIn),
output = outputs.handler(HandlerFilter.OnlyOut), output = outputs.handler(HandlerFilter.OnlyOut),
battery = batteryItemHandler battery = batteryContainer
) )
init { init {

View File

@ -6,6 +6,7 @@ import ru.dbotthepony.mc.otm.block.entity.MatteryPoweredBlockEntity
import ru.dbotthepony.mc.otm.menu.widget.LevelGaugeWidget import ru.dbotthepony.mc.otm.menu.widget.LevelGaugeWidget
import net.minecraft.world.SimpleContainer import net.minecraft.world.SimpleContainer
import ru.dbotthepony.mc.otm.block.entity.RedstoneSetting import ru.dbotthepony.mc.otm.block.entity.RedstoneSetting
import ru.dbotthepony.mc.otm.container.slotted.SlottedContainer
import ru.dbotthepony.mc.otm.menu.input.EnumInputWithFeedback import ru.dbotthepony.mc.otm.menu.input.EnumInputWithFeedback
abstract class MatteryPoweredMenu protected constructor( abstract class MatteryPoweredMenu protected constructor(
@ -15,7 +16,7 @@ abstract class MatteryPoweredMenu protected constructor(
tile: MatteryPoweredBlockEntity? = null tile: MatteryPoweredBlockEntity? = null
) : MatteryMenu(menuType, containerID, inventory, tile) { ) : MatteryMenu(menuType, containerID, inventory, tile) {
val energyWidget = LevelGaugeWidget(this, tile?.energy) val energyWidget = LevelGaugeWidget(this, tile?.energy)
val batterySlot = BatteryMenuSlot(tile?.batteryContainer ?: SimpleContainer(1), 0) val batterySlot = BatteryMenuSlot(tile?.batteryContainer ?: SlottedContainer.simple(1), 0)
val redstoneConfig = EnumInputWithFeedback<RedstoneSetting>(this) val redstoneConfig = EnumInputWithFeedback<RedstoneSetting>(this)
init { init {