Update Matter replicator to use Slotted Container
This commit is contained in:
parent
e8ba5916b1
commit
e0e1ba864d
@ -27,6 +27,8 @@ import ru.dbotthepony.mc.otm.capability.matter.*
|
||||
import ru.dbotthepony.mc.otm.config.MachinesConfig
|
||||
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.otmRandom
|
||||
import ru.dbotthepony.mc.otm.data.codec.DecimalCodec
|
||||
@ -71,11 +73,11 @@ class MatterReplicatorBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) :
|
||||
override val upgrades = makeUpgrades(3, UpgradeType.REPLICATOR)
|
||||
override val energy = ProfiledEnergyStorage(WorkerEnergyStorage(::energyLevelUpdated, upgrades.transform(MachinesConfig.MATTER_REPLICATOR)))
|
||||
val matter = ProfiledMatterStorage(MatterStorageImpl(::matterLevelUpdated, FlowDirection.INPUT, upgrades.matterCapacity(MachinesConfig.MATTER_REPLICATOR::matterCapacity)))
|
||||
val outputContainer = MatteryContainer(::itemContainerUpdated, 3).also(::addDroppableContainer)
|
||||
val dustContainer = MatteryContainer(::itemContainerUpdated, 2).also(::addDroppableContainer)
|
||||
val outputContainer = SlottedContainer.simple(3, AutomationFilters.ONLY_OUT.simpleProvider, ::itemContainerUpdated).also(::addDroppableContainer)
|
||||
val dustContainer = SlottedContainer.simple(2, AutomationFilters.ONLY_OUT.simpleProvider, ::itemContainerUpdated).also(::addDroppableContainer)
|
||||
|
||||
val energyConfig = ConfigurableEnergy(energy)
|
||||
val itemConfig = ConfigurableItemHandler(output = CombinedItemHandler(outputContainer.handler(HandlerFilter.OnlyOut), dustContainer.handler(HandlerFilter.OnlyOut)))
|
||||
val itemConfig = ConfigurableItemHandler(output = CombinedItemHandler(outputContainer, dustContainer))
|
||||
|
||||
val matterNode = object : MatterNode() {
|
||||
override fun getMatterHandler(): IMatterStorage {
|
||||
|
@ -7,6 +7,7 @@ import ru.dbotthepony.mc.otm.block.entity.matter.MatterReplicatorBlockEntity
|
||||
import ru.dbotthepony.mc.otm.menu.widget.LevelGaugeWidget
|
||||
import ru.dbotthepony.mc.otm.menu.widget.ProgressGaugeWidget
|
||||
import ru.dbotthepony.mc.otm.container.CombinedContainer
|
||||
import ru.dbotthepony.mc.otm.container.EnhancedContainer
|
||||
import ru.dbotthepony.mc.otm.container.slotted.SlottedContainer
|
||||
import ru.dbotthepony.mc.otm.core.immutableList
|
||||
import ru.dbotthepony.mc.otm.core.isNotEmpty
|
||||
@ -34,7 +35,7 @@ class MatterReplicatorMenu @JvmOverloads constructor(
|
||||
val upgrades = makeUpgradeSlots(3, tile?.upgrades)
|
||||
|
||||
init {
|
||||
val container = CombinedContainer(tile?.outputContainer ?: SlottedContainer.simple(3), tile?.dustContainer ?: SlottedContainer.simple(2))
|
||||
val container = CombinedContainer(tile?.outputContainer ?: EnhancedContainer(3), tile?.dustContainer ?: EnhancedContainer(2))
|
||||
|
||||
storageSlots = immutableList(5) {
|
||||
addStorageSlot(OutputMenuSlot(container, it, onTake = {
|
||||
|
Loading…
Reference in New Issue
Block a user