Unify storage exportert/importer menus, profile their energy and add energy config
This commit is contained in:
parent
d3ea51928f
commit
6c7f2226a6
@ -11,14 +11,15 @@ import net.minecraft.world.level.Level
|
||||
import net.minecraft.world.level.block.Block
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType
|
||||
import net.minecraft.world.level.block.state.BlockState
|
||||
import net.minecraftforge.common.capabilities.Capability
|
||||
import net.minecraftforge.common.capabilities.ForgeCapabilities
|
||||
import net.minecraftforge.items.IItemHandler
|
||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||
import ru.dbotthepony.mc.otm.SERVER_IS_LIVE
|
||||
import ru.dbotthepony.mc.otm.block.CableBlock
|
||||
import ru.dbotthepony.mc.otm.block.entity.MatteryPoweredBlockEntity
|
||||
import ru.dbotthepony.mc.otm.capability.FlowDirection
|
||||
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.EnergyBalanceValues
|
||||
import ru.dbotthepony.mc.otm.config.MachinesConfig
|
||||
@ -28,8 +29,7 @@ import ru.dbotthepony.mc.otm.core.isNotEmpty
|
||||
import ru.dbotthepony.mc.otm.core.math.RelativeSide
|
||||
import ru.dbotthepony.mc.otm.core.orNull
|
||||
import ru.dbotthepony.mc.otm.graph.storage.StorageNode
|
||||
import ru.dbotthepony.mc.otm.menu.storage.StorageExporterMenu
|
||||
import ru.dbotthepony.mc.otm.menu.storage.StorageImporterMenu
|
||||
import ru.dbotthepony.mc.otm.menu.storage.StorageImporterExporterMenu
|
||||
import ru.dbotthepony.mc.otm.once
|
||||
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
||||
import ru.dbotthepony.mc.otm.registry.MNames
|
||||
@ -41,13 +41,15 @@ import java.math.BigInteger
|
||||
import java.util.*
|
||||
import kotlin.collections.ArrayList
|
||||
|
||||
abstract class AbstractStorageImportExport<T>(
|
||||
abstract class AbstractStorageImportExport(
|
||||
blockType: BlockEntityType<*>,
|
||||
blockPos: BlockPos,
|
||||
blockState: BlockState,
|
||||
energyValues: EnergyBalanceValues = MachinesConfig.STORAGE_INTERFACES
|
||||
) : MatteryPoweredBlockEntity(blockType, blockPos, blockState) {
|
||||
val energy = WorkerEnergyStorage(::setChangedLight, energyValues)
|
||||
val energy = ProfiledEnergyStorage(WorkerEnergyStorage(::setChangedLight, energyValues))
|
||||
val energyConfig = ConfigurableEnergy(energy, modesFront = FlowDirection.NONE)
|
||||
|
||||
val cell: StorageNode = object : StorageNode(energy) {
|
||||
override fun onNeighbour(link: Link) {
|
||||
if (link is DirectionLink) {
|
||||
@ -76,8 +78,11 @@ abstract class AbstractStorageImportExport<T>(
|
||||
}
|
||||
}
|
||||
|
||||
override fun createMenu(containerID: Int, inventory: Inventory, ply: Player): AbstractContainerMenu {
|
||||
return StorageImporterExporterMenu(containerID, inventory, this)
|
||||
}
|
||||
|
||||
init {
|
||||
exposeEnergyGlobally(energy)
|
||||
savetable(::energy, ENERGY_KEY)
|
||||
exposeGlobally(MatteryCapability.STORAGE_NODE, cell) { it != RelativeSide.FRONT }
|
||||
}
|
||||
@ -92,11 +97,7 @@ abstract class AbstractStorageImportExport<T>(
|
||||
cell.discover(this)
|
||||
}
|
||||
|
||||
protected abstract val targetCapability: Capability<T>
|
||||
|
||||
protected val target by lazy {
|
||||
front.track(targetCapability)
|
||||
}
|
||||
protected val target = front.track(ForgeCapabilities.ITEM_HANDLER)
|
||||
|
||||
abstract val filter: ItemFilter
|
||||
|
||||
@ -106,26 +107,20 @@ abstract class AbstractStorageImportExport<T>(
|
||||
|
||||
companion object {
|
||||
const val FILTER_KEY = "filter"
|
||||
const val MAX_FILTERS = 6 * 3
|
||||
}
|
||||
}
|
||||
|
||||
class StorageImporterBlockEntity(
|
||||
blockPos: BlockPos, blockState: BlockState
|
||||
) : AbstractStorageImportExport<IItemHandler>(MBlockEntities.STORAGE_IMPORTER, blockPos, blockState), IItemHandler {
|
||||
) : AbstractStorageImportExport(MBlockEntities.STORAGE_IMPORTER, blockPos, blockState), IItemHandler {
|
||||
override val filter = ItemFilter(MAX_FILTERS) {
|
||||
setChangedLight()
|
||||
}
|
||||
|
||||
override fun createMenu(containerID: Int, inventory: Inventory, ply: Player): AbstractContainerMenu {
|
||||
return StorageImporterMenu(containerID, inventory, this)
|
||||
}
|
||||
|
||||
private var lastSlot = 0
|
||||
private var nextTick = INTERVAL
|
||||
|
||||
override val targetCapability: Capability<IItemHandler>
|
||||
get() = ForgeCapabilities.ITEM_HANDLER
|
||||
|
||||
init {
|
||||
front.Cap(ForgeCapabilities.ITEM_HANDLER, this)
|
||||
}
|
||||
@ -212,7 +207,6 @@ class StorageImporterBlockEntity(
|
||||
if (leftover.count != extracted.count) {
|
||||
val extracted2 = target.extractItem(lastSlot, extracted.count - leftover.count, false)
|
||||
acceptItem(extracted2, false)
|
||||
nextTick += INTERVAL * 4
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -225,20 +219,15 @@ class StorageImporterBlockEntity(
|
||||
companion object {
|
||||
const val MAX_MOVE_PER_OPERATION = 4
|
||||
private const val INTERVAL = 5
|
||||
const val MAX_FILTERS = 6 * 3
|
||||
}
|
||||
}
|
||||
|
||||
class StorageExporterBlockEntity(blockPos: BlockPos, blockState: BlockState) :
|
||||
AbstractStorageImportExport<IItemHandler>(MBlockEntities.STORAGE_EXPORTER, blockPos, blockState),
|
||||
AbstractStorageImportExport(MBlockEntities.STORAGE_EXPORTER, blockPos, blockState),
|
||||
IStorageEventConsumer<ItemStorageStack> {
|
||||
override val defaultDisplayName: Component
|
||||
get() = MACHINE_NAME
|
||||
|
||||
override fun createMenu(containerID: Int, inventory: Inventory, ply: Player): AbstractContainerMenu {
|
||||
return StorageExporterMenu(containerID, inventory, this)
|
||||
}
|
||||
|
||||
private val relevantTuples = ObjectOpenHashSet<UUID>()
|
||||
|
||||
override val storageType: StorageStack.Type<ItemStorageStack>
|
||||
@ -281,9 +270,6 @@ class StorageExporterBlockEntity(blockPos: BlockPos, blockState: BlockState) :
|
||||
private var lastSlot = 0
|
||||
private var nextTick = INTERVAL
|
||||
|
||||
override val targetCapability: Capability<IItemHandler>
|
||||
get() = ForgeCapabilities.ITEM_HANDLER
|
||||
|
||||
override fun tick() {
|
||||
super.tick()
|
||||
|
||||
@ -346,6 +332,5 @@ class StorageExporterBlockEntity(blockPos: BlockPos, blockState: BlockState) :
|
||||
val MAX_MOVE_PER_OPERATION: BigInteger = BigInteger.valueOf(4L)
|
||||
private val MACHINE_NAME = TranslatableComponent("block.${OverdriveThatMatters.MOD_ID}.${MNames.STORAGE_EXPORTER}")
|
||||
private const val INTERVAL = 5
|
||||
const val MAX_FILTERS = 6 * 3
|
||||
}
|
||||
}
|
||||
|
@ -51,7 +51,7 @@ class StorageBusScreen(menu: StorageBusMenu, inventory: Inventory, title: Compon
|
||||
it.childrenOrder = -3
|
||||
}
|
||||
|
||||
val controls = DeviceControls(this, frame, redstoneConfig = menu.redstoneConfig)
|
||||
val controls = DeviceControls(this, frame, redstoneConfig = menu.redstoneConfig, energyConfig = menu.energyConfig)
|
||||
val mode = LargeEnumRectangleButtonPanel(this, frame, prop = menu.mode, defaultValue = FlowDirection.BI_DIRECTIONAL, enum = FlowDirection::class.java)
|
||||
|
||||
mode.add(FlowDirection.INPUT, Widgets18.ONLY_STORE, FlowDirection.INPUT.title)
|
||||
|
@ -1,36 +0,0 @@
|
||||
package ru.dbotthepony.mc.otm.client.screen.storage
|
||||
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.world.entity.player.Inventory
|
||||
import ru.dbotthepony.mc.otm.client.screen.MatteryScreen
|
||||
import ru.dbotthepony.mc.otm.core.TranslatableComponent
|
||||
import ru.dbotthepony.mc.otm.client.screen.panels.*
|
||||
import ru.dbotthepony.mc.otm.client.screen.panels.button.CheckBoxLabelInputPanel
|
||||
import ru.dbotthepony.mc.otm.client.screen.panels.button.makeDeviceControls
|
||||
import ru.dbotthepony.mc.otm.client.screen.panels.slot.BatterySlotPanel
|
||||
import ru.dbotthepony.mc.otm.client.screen.panels.slot.FilterSlotPanel
|
||||
import ru.dbotthepony.mc.otm.client.screen.widget.WidePowerGaugePanel
|
||||
|
||||
import ru.dbotthepony.mc.otm.menu.storage.StorageExporterMenu
|
||||
|
||||
class StorageExporterScreen(menu: StorageExporterMenu, inventory: Inventory, title: Component) :
|
||||
MatteryScreen<StorageExporterMenu>(menu, inventory, title) {
|
||||
override fun makeMainFrame(): FramePanel<MatteryScreen<*>> {
|
||||
val frame = super.makeMainFrame()!!
|
||||
|
||||
WidePowerGaugePanel(this, frame, menu.energyWidget, LEFT_MARGIN, GAUGE_TOP_WITH_SLOT)
|
||||
BatterySlotPanel(this, frame, menu.batterySlot, LEFT_MARGIN, SLOT_TOP_UNDER_GAUGE)
|
||||
|
||||
for (row in 0 .. 2) {
|
||||
for (column in 0 .. 5) {
|
||||
FilterSlotPanel(this, frame, menu.busFilterSlots[row + column * 3], 55f + 18f * column, 17f + 18f * row)
|
||||
}
|
||||
}
|
||||
|
||||
CheckBoxLabelInputPanel(this, frame, menu.busFilterState, TranslatableComponent("otm.gui.filter.is_whitelist"), 59f, 78f, width = 170f)
|
||||
|
||||
makeDeviceControls(this, frame, redstoneConfig = menu.redstoneConfig)
|
||||
|
||||
return frame
|
||||
}
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
package ru.dbotthepony.mc.otm.client.screen.storage
|
||||
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.world.entity.player.Inventory
|
||||
import ru.dbotthepony.mc.otm.client.screen.MatteryScreen
|
||||
import ru.dbotthepony.mc.otm.core.TranslatableComponent
|
||||
import ru.dbotthepony.mc.otm.client.screen.panels.*
|
||||
import ru.dbotthepony.mc.otm.client.screen.panels.button.CheckBoxLabelInputPanel
|
||||
import ru.dbotthepony.mc.otm.client.screen.panels.button.makeDeviceControls
|
||||
import ru.dbotthepony.mc.otm.client.screen.panels.slot.AbstractSlotPanel
|
||||
import ru.dbotthepony.mc.otm.client.screen.panels.slot.BatterySlotPanel
|
||||
import ru.dbotthepony.mc.otm.client.screen.panels.slot.FilterSlotPanel
|
||||
import ru.dbotthepony.mc.otm.client.screen.panels.util.GridPanel
|
||||
import ru.dbotthepony.mc.otm.client.screen.widget.WidePowerGaugePanel
|
||||
|
||||
import ru.dbotthepony.mc.otm.menu.storage.StorageImporterExporterMenu
|
||||
|
||||
class StorageImporterExporterScreen(menu: StorageImporterExporterMenu, inventory: Inventory, title: Component) : MatteryScreen<StorageImporterExporterMenu>(menu, inventory, title) {
|
||||
override fun makeMainFrame(): FramePanel<MatteryScreen<*>> {
|
||||
val frame = FramePanel(this, 148f, 130f, title)
|
||||
|
||||
makeBars(frame, profiledEnergy = menu.profiledEnergy, batterySlot = menu.batterySlot)
|
||||
|
||||
val right = EditablePanel(this, frame, width = AbstractSlotPanel.SIZE * 6f)
|
||||
right.dock = Dock.RIGHT
|
||||
val grid = GridPanel(this, right, columns = 6, rows = 3, height = AbstractSlotPanel.SIZE * 3f)
|
||||
grid.dock = Dock.TOP
|
||||
|
||||
for (slot in menu.filterSlots) {
|
||||
FilterSlotPanel(this, grid, slot)
|
||||
}
|
||||
|
||||
CheckBoxLabelInputPanel(this, right, menu.isWhitelist, TranslatableComponent("otm.gui.filter.is_whitelist")).also {
|
||||
it.dock = Dock.BOTTOM
|
||||
it.dockTop = 2f
|
||||
it.childrenOrder = -1
|
||||
}
|
||||
|
||||
CheckBoxLabelInputPanel(this, right, menu.matchNBT, TranslatableComponent("otm.gui.filter.match_nbt")).also {
|
||||
it.dock = Dock.BOTTOM
|
||||
it.dockTop = 2f
|
||||
it.childrenOrder = -2
|
||||
}
|
||||
|
||||
CheckBoxLabelInputPanel(this, right, menu.matchTag, TranslatableComponent("otm.gui.filter.match_tag")).also {
|
||||
it.dock = Dock.BOTTOM
|
||||
it.dockTop = 2f
|
||||
it.childrenOrder = -3
|
||||
}
|
||||
|
||||
makeDeviceControls(this, frame, redstoneConfig = menu.redstoneConfig, energyConfig = menu.energyConfig)
|
||||
|
||||
return frame
|
||||
}
|
||||
}
|
@ -1,36 +0,0 @@
|
||||
package ru.dbotthepony.mc.otm.client.screen.storage
|
||||
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.world.entity.player.Inventory
|
||||
import ru.dbotthepony.mc.otm.client.screen.MatteryScreen
|
||||
import ru.dbotthepony.mc.otm.core.TranslatableComponent
|
||||
import ru.dbotthepony.mc.otm.client.screen.panels.*
|
||||
import ru.dbotthepony.mc.otm.client.screen.panels.button.CheckBoxLabelInputPanel
|
||||
import ru.dbotthepony.mc.otm.client.screen.panels.button.makeDeviceControls
|
||||
import ru.dbotthepony.mc.otm.client.screen.panels.slot.BatterySlotPanel
|
||||
import ru.dbotthepony.mc.otm.client.screen.panels.slot.FilterSlotPanel
|
||||
import ru.dbotthepony.mc.otm.client.screen.widget.WidePowerGaugePanel
|
||||
|
||||
import ru.dbotthepony.mc.otm.menu.storage.StorageImporterMenu
|
||||
|
||||
class StorageImporterScreen(menu: StorageImporterMenu, inventory: Inventory, title: Component) :
|
||||
MatteryScreen<StorageImporterMenu>(menu, inventory, title) {
|
||||
override fun makeMainFrame(): FramePanel<MatteryScreen<*>> {
|
||||
val frame = super.makeMainFrame()!!
|
||||
|
||||
WidePowerGaugePanel(this, frame, menu.energyWidget, LEFT_MARGIN, GAUGE_TOP_WITH_SLOT)
|
||||
BatterySlotPanel(this, frame, menu.batterySlot, LEFT_MARGIN, SLOT_TOP_UNDER_GAUGE)
|
||||
|
||||
for (row in 0 .. 2) {
|
||||
for (column in 0 .. 5) {
|
||||
FilterSlotPanel(this, frame, menu.busFilterSlots[row + column * 3], 55f + 18f * column, 17f + 18f * row)
|
||||
}
|
||||
}
|
||||
|
||||
CheckBoxLabelInputPanel(this, frame, menu.busFilterState, TranslatableComponent("otm.gui.filter.is_whitelist"), 59f, 78f, width = 170f)
|
||||
|
||||
makeDeviceControls(this, frame, redstoneConfig = menu.redstoneConfig)
|
||||
|
||||
return frame
|
||||
}
|
||||
}
|
@ -5,6 +5,7 @@ import ru.dbotthepony.mc.otm.block.entity.storage.StorageBusBlockEntity
|
||||
import ru.dbotthepony.mc.otm.capability.FlowDirection
|
||||
import ru.dbotthepony.mc.otm.menu.MatteryPoweredMenu
|
||||
import ru.dbotthepony.mc.otm.menu.input.BooleanInputWithFeedback
|
||||
import ru.dbotthepony.mc.otm.menu.input.EnergyConfigPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.input.EnumInputWithFeedback
|
||||
import ru.dbotthepony.mc.otm.menu.input.IntInputWithFeedback
|
||||
import ru.dbotthepony.mc.otm.menu.widget.ProfiledLevelGaugeWidget
|
||||
@ -20,6 +21,7 @@ class StorageBusMenu(
|
||||
val insertPriority = IntInputWithFeedback(this, tile?.let { it::insertPriority })
|
||||
val extractPriority = IntInputWithFeedback(this, tile?.let { it::extractPriority })
|
||||
val profiledEnergy = ProfiledLevelGaugeWidget(this, tile?.energy, energyWidget)
|
||||
val energyConfig = EnergyConfigPlayerInput(this, tile?.energyConfig)
|
||||
val mode = EnumInputWithFeedback(this, tile?.let { it::mode }, FlowDirection.WITHOUT_NONE)
|
||||
|
||||
init {
|
||||
|
@ -1,22 +0,0 @@
|
||||
package ru.dbotthepony.mc.otm.menu.storage
|
||||
|
||||
import net.minecraft.world.entity.player.Inventory
|
||||
import ru.dbotthepony.mc.otm.block.entity.storage.StorageExporterBlockEntity
|
||||
import ru.dbotthepony.mc.otm.menu.MatteryPoweredMenu
|
||||
import ru.dbotthepony.mc.otm.menu.input.BooleanInputWithFeedback
|
||||
import ru.dbotthepony.mc.otm.registry.MMenus
|
||||
|
||||
class StorageExporterMenu(
|
||||
p_38852_: Int,
|
||||
inventory: Inventory,
|
||||
tile: StorageExporterBlockEntity? = null
|
||||
) : MatteryPoweredMenu(
|
||||
MMenus.STORAGE_EXPORTER, p_38852_, inventory, tile
|
||||
) {
|
||||
val busFilterSlots = addFilterSlots(tile?.filter, StorageExporterBlockEntity.MAX_FILTERS)
|
||||
val busFilterState = BooleanInputWithFeedback(this, tile?.let { it.filter::isWhitelist })
|
||||
|
||||
init {
|
||||
addInventorySlots()
|
||||
}
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
package ru.dbotthepony.mc.otm.menu.storage
|
||||
|
||||
import net.minecraft.world.entity.player.Inventory
|
||||
import ru.dbotthepony.mc.otm.block.entity.storage.AbstractStorageImportExport
|
||||
import ru.dbotthepony.mc.otm.menu.MatteryPoweredMenu
|
||||
import ru.dbotthepony.mc.otm.menu.input.BooleanInputWithFeedback
|
||||
import ru.dbotthepony.mc.otm.menu.input.EnergyConfigPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.widget.ProfiledLevelGaugeWidget
|
||||
import ru.dbotthepony.mc.otm.registry.MMenus
|
||||
|
||||
class StorageImporterExporterMenu(
|
||||
containerId: Int, inventory: Inventory, tile: AbstractStorageImportExport? = null
|
||||
) : MatteryPoweredMenu(MMenus.STORAGE_IMPORTER_EXPORTER, containerId, inventory, tile) {
|
||||
val filterSlots = addFilterSlots(tile?.filter, AbstractStorageImportExport.MAX_FILTERS)
|
||||
val isWhitelist = BooleanInputWithFeedback(this, tile?.let { it.filter::isWhitelist })
|
||||
val matchNBT = BooleanInputWithFeedback(this, tile?.let { it.filter::matchNBT })
|
||||
val matchTag = BooleanInputWithFeedback(this, tile?.let { it.filter::matchTag })
|
||||
val profiledEnergy = ProfiledLevelGaugeWidget(this, tile?.energy, energyWidget)
|
||||
val energyConfig = EnergyConfigPlayerInput(this, tile?.energyConfig)
|
||||
|
||||
init {
|
||||
addInventorySlots()
|
||||
}
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
package ru.dbotthepony.mc.otm.menu.storage
|
||||
|
||||
import net.minecraft.world.entity.player.Inventory
|
||||
import ru.dbotthepony.mc.otm.block.entity.storage.StorageImporterBlockEntity
|
||||
import ru.dbotthepony.mc.otm.menu.MatteryPoweredMenu
|
||||
import ru.dbotthepony.mc.otm.menu.input.BooleanInputWithFeedback
|
||||
import ru.dbotthepony.mc.otm.registry.MMenus
|
||||
|
||||
class StorageImporterMenu(
|
||||
containerId: Int, inventory: Inventory, tile: StorageImporterBlockEntity? = null
|
||||
) : MatteryPoweredMenu(MMenus.STORAGE_IMPORTER, containerId, inventory, tile) {
|
||||
val busFilterSlots = addFilterSlots(tile?.filter, StorageImporterBlockEntity.MAX_FILTERS)
|
||||
val busFilterState = BooleanInputWithFeedback(this, tile?.let { it.filter::isWhitelist })
|
||||
|
||||
init {
|
||||
addInventorySlots()
|
||||
}
|
||||
}
|
@ -26,8 +26,7 @@ import ru.dbotthepony.mc.otm.client.screen.storage.DriveRackScreen
|
||||
import ru.dbotthepony.mc.otm.client.screen.storage.DriveViewerScreen
|
||||
import ru.dbotthepony.mc.otm.client.screen.storage.ItemMonitorScreen
|
||||
import ru.dbotthepony.mc.otm.client.screen.storage.StorageBusScreen
|
||||
import ru.dbotthepony.mc.otm.client.screen.storage.StorageExporterScreen
|
||||
import ru.dbotthepony.mc.otm.client.screen.storage.StorageImporterScreen
|
||||
import ru.dbotthepony.mc.otm.client.screen.storage.StorageImporterExporterScreen
|
||||
import ru.dbotthepony.mc.otm.client.screen.storage.StoragePowerSupplierScreen
|
||||
import ru.dbotthepony.mc.otm.client.screen.tech.AndroidChargerScreen
|
||||
import ru.dbotthepony.mc.otm.client.screen.tech.AndroidStationScreen
|
||||
@ -57,8 +56,7 @@ import ru.dbotthepony.mc.otm.menu.storage.DriveRackMenu
|
||||
import ru.dbotthepony.mc.otm.menu.storage.DriveViewerMenu
|
||||
import ru.dbotthepony.mc.otm.menu.storage.ItemMonitorMenu
|
||||
import ru.dbotthepony.mc.otm.menu.storage.StorageBusMenu
|
||||
import ru.dbotthepony.mc.otm.menu.storage.StorageExporterMenu
|
||||
import ru.dbotthepony.mc.otm.menu.storage.StorageImporterMenu
|
||||
import ru.dbotthepony.mc.otm.menu.storage.StorageImporterExporterMenu
|
||||
import ru.dbotthepony.mc.otm.menu.storage.StoragePowerSupplierMenu
|
||||
import ru.dbotthepony.mc.otm.menu.tech.AndroidChargerMenu
|
||||
import ru.dbotthepony.mc.otm.menu.tech.AndroidStationMenu
|
||||
@ -104,8 +102,7 @@ object MMenus {
|
||||
val FLUID_TANK: MenuType<FluidTankMenu> by registry.register(MNames.FLUID_TANK) { MenuType(::FluidTankMenu, FeatureFlags.VANILLA_SET) }
|
||||
|
||||
val STORAGE_BUS: MenuType<StorageBusMenu> by registry.register(MNames.STORAGE_BUS) { MenuType(::StorageBusMenu, FeatureFlags.VANILLA_SET) }
|
||||
val STORAGE_EXPORTER: MenuType<StorageExporterMenu> by registry.register(MNames.STORAGE_EXPORTER) { MenuType(::StorageExporterMenu, FeatureFlags.VANILLA_SET) }
|
||||
val STORAGE_IMPORTER: MenuType<StorageImporterMenu> by registry.register(MNames.STORAGE_IMPORTER) { MenuType(::StorageImporterMenu, FeatureFlags.VANILLA_SET) }
|
||||
val STORAGE_IMPORTER_EXPORTER: MenuType<StorageImporterExporterMenu> by registry.register(MNames.STORAGE_IMPORTER) { MenuType(::StorageImporterExporterMenu, FeatureFlags.VANILLA_SET) }
|
||||
val STORAGE_POWER_SUPPLIER: MenuType<StoragePowerSupplierMenu> by registry.register(MNames.STORAGE_POWER_SUPPLIER) { MenuType(::StoragePowerSupplierMenu, FeatureFlags.VANILLA_SET) }
|
||||
|
||||
internal fun register(bus: IEventBus) {
|
||||
@ -113,7 +110,6 @@ object MMenus {
|
||||
bus.addListener(this::registerClient)
|
||||
}
|
||||
|
||||
@Suppress("unchecked_cast")
|
||||
private fun registerClient(event: FMLClientSetupEvent) {
|
||||
event.enqueueWork {
|
||||
MenuScreens.register(ANDROID_STATION, ::AndroidStationScreen)
|
||||
@ -137,8 +133,7 @@ object MMenus {
|
||||
MenuScreens.register(TWIN_PLATE_PRESS, ::TwinPlatePressScreen)
|
||||
MenuScreens.register(MATTER_RECYCLER, ::MatterRecyclerScreen)
|
||||
MenuScreens.register(STORAGE_BUS, ::StorageBusScreen)
|
||||
MenuScreens.register(STORAGE_EXPORTER, ::StorageExporterScreen)
|
||||
MenuScreens.register(STORAGE_IMPORTER, ::StorageImporterScreen)
|
||||
MenuScreens.register(STORAGE_IMPORTER_EXPORTER, ::StorageImporterExporterScreen)
|
||||
MenuScreens.register(STORAGE_POWER_SUPPLIER, ::StoragePowerSupplierScreen)
|
||||
MenuScreens.register(ENERGY_SERVO, ::EnergyServoScreen)
|
||||
MenuScreens.register(HOLO_SIGN, ::HoloSignScreen)
|
||||
|
Loading…
Reference in New Issue
Block a user