Rename item handler/energy config classes
This commit is contained in:
parent
ed04506507
commit
37400a2d5d
@ -12,9 +12,9 @@ import ru.dbotthepony.mc.otm.client.screen.panels.FramePanel
|
||||
import ru.dbotthepony.mc.otm.core.TranslatableComponent
|
||||
import ru.dbotthepony.mc.otm.core.math.RelativeSide
|
||||
import ru.dbotthepony.mc.otm.menu.input.BooleanInputWithFeedback
|
||||
import ru.dbotthepony.mc.otm.menu.input.EnergyPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.input.EnergyConfigPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.input.IPlayerInputWithFeedback
|
||||
import ru.dbotthepony.mc.otm.menu.input.ItemHandlerPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.input.ItemConfigPlayerInput
|
||||
import java.util.function.Predicate
|
||||
|
||||
private fun <S : MatteryScreen<*>> makeRedstoneSettingButton(
|
||||
@ -41,7 +41,7 @@ private fun <S : MatteryScreen<*>> makeRedstoneSettingButton(
|
||||
}
|
||||
}
|
||||
|
||||
private fun <S : MatteryScreen<*>> makeItemModeButton(screen: S, parent: FramePanel<S>, input: ItemHandlerPlayerInput.Piece, side: RelativeSide): LargeEnumRectangleButtonPanel<S, MatteryDeviceBlockEntity.ItemHandlerMode> {
|
||||
private fun <S : MatteryScreen<*>> makeItemModeButton(screen: S, parent: FramePanel<S>, input: ItemConfigPlayerInput.Piece, side: RelativeSide): LargeEnumRectangleButtonPanel<S, MatteryDeviceBlockEntity.ItemHandlerMode> {
|
||||
val button = LargeEnumRectangleButtonPanel(screen, parent, enum = MatteryDeviceBlockEntity.ItemHandlerMode::class.java, prop = input.input, defaultValue = input.default)
|
||||
|
||||
for (v in MatteryDeviceBlockEntity.ItemHandlerMode.values()) {
|
||||
@ -54,7 +54,7 @@ private fun <S : MatteryScreen<*>> makeItemModeButton(screen: S, parent: FramePa
|
||||
return button
|
||||
}
|
||||
|
||||
private fun <S : MatteryScreen<*>> makeEnergyModeButton(screen: S, parent: FramePanel<S>, input: EnergyPlayerInput.Piece, side: RelativeSide): LargeEnumRectangleButtonPanel<S, FlowDirection> {
|
||||
private fun <S : MatteryScreen<*>> makeEnergyModeButton(screen: S, parent: FramePanel<S>, input: EnergyConfigPlayerInput.Piece, side: RelativeSide): LargeEnumRectangleButtonPanel<S, FlowDirection> {
|
||||
val button = LargeEnumRectangleButtonPanel(screen, parent, enum = FlowDirection::class.java, prop = input.input, defaultValue = input.default)
|
||||
|
||||
for (v in FlowDirection.values()) {
|
||||
@ -135,7 +135,7 @@ private fun pullPush(frame: FramePanel<*>, pull: BooleanInputWithFeedback, push:
|
||||
|
||||
private fun <S : MatteryScreen<*>> makeItemHandlerControlPanel(
|
||||
screen: S,
|
||||
inputs: ItemHandlerPlayerInput
|
||||
inputs: ItemConfigPlayerInput
|
||||
): FramePanel<S> {
|
||||
val frame = object : FramePanel<S>(screen, 78f, 80f, TranslatableComponent("otm.gui.sides.item_config")) {
|
||||
override fun tickInner() {
|
||||
@ -164,7 +164,7 @@ private fun <S : MatteryScreen<*>> makeItemHandlerControlPanel(
|
||||
|
||||
private fun <S : MatteryScreen<*>> makeEnergyConfigPanel(
|
||||
screen: S,
|
||||
inputs: EnergyPlayerInput
|
||||
inputs: EnergyConfigPlayerInput
|
||||
): FramePanel<S> {
|
||||
val frame = object : FramePanel<S>(screen, 78f, 80f, TranslatableComponent("otm.gui.sides.energy_config")) {
|
||||
override fun tickInner() {
|
||||
@ -196,8 +196,8 @@ class DeviceControls<out S : MatteryScreen<*>>(
|
||||
parent: FramePanel<S>,
|
||||
extra: Iterable<EditablePanel<S>> = listOf(),
|
||||
val redstoneConfig: IPlayerInputWithFeedback<RedstoneSetting>? = null,
|
||||
val itemConfig: ItemHandlerPlayerInput? = null,
|
||||
val energyConfig: EnergyPlayerInput? = null,
|
||||
val itemConfig: ItemConfigPlayerInput? = null,
|
||||
val energyConfig: EnergyConfigPlayerInput? = null,
|
||||
) : EditablePanel<S>(screen, parent, x = parent.width + 3f, height = 0f, width = 0f) {
|
||||
val itemConfigButton: LargeRectangleButtonPanel<S>?
|
||||
val energyConfigButton: LargeRectangleButtonPanel<S>?
|
||||
@ -276,8 +276,8 @@ fun <S : MatteryScreen<*>> makeDeviceControls(
|
||||
parent: FramePanel<S>,
|
||||
extra: Iterable<EditablePanel<S>> = listOf(),
|
||||
redstoneConfig: IPlayerInputWithFeedback<RedstoneSetting>? = null,
|
||||
itemConfig: ItemHandlerPlayerInput? = null,
|
||||
energyConfig: EnergyPlayerInput? = null,
|
||||
itemConfig: ItemConfigPlayerInput? = null,
|
||||
energyConfig: EnergyConfigPlayerInput? = null,
|
||||
): DeviceControls<S> {
|
||||
return DeviceControls(screen, parent, extra = extra, redstoneConfig = redstoneConfig, itemConfig = itemConfig, energyConfig = energyConfig)
|
||||
}
|
||||
|
@ -9,7 +9,7 @@ import ru.dbotthepony.mc.otm.menu.MatteryMenu
|
||||
/**
|
||||
* [allowPull] and [allowPush] controls whenever player is allowed to change these options
|
||||
*/
|
||||
class EnergyPlayerInput(val menu: MatteryMenu, config: MatteryDeviceBlockEntity.ConfigurableEnergy<*>? = null, val allowPull: Boolean = false, val allowPush: Boolean = false) {
|
||||
class EnergyConfigPlayerInput(val menu: MatteryMenu, config: MatteryDeviceBlockEntity.ConfigurableEnergy<*>? = null, val allowPull: Boolean = false, val allowPush: Boolean = false) {
|
||||
var possibleModes by menu.mSynchronizer.enum(FlowDirection::class.java)
|
||||
private set
|
||||
|
||||
@ -25,7 +25,7 @@ class EnergyPlayerInput(val menu: MatteryMenu, config: MatteryDeviceBlockEntity.
|
||||
push.filter { allowPush }
|
||||
}
|
||||
|
||||
fun configure(config: MatteryDeviceBlockEntity.ConfigurableEnergy<*>.Piece, parent: MatteryDeviceBlockEntity.ConfigurableEnergy<*>) {
|
||||
fun with(config: MatteryDeviceBlockEntity.ConfigurableEnergy<*>.Piece, parent: MatteryDeviceBlockEntity.ConfigurableEnergy<*>) {
|
||||
pull.with(config::automatePull)
|
||||
push.with(config::automatePush)
|
||||
input.withSupplier { config.energyFlow }.withConsumer { if (parent.possibleModes.isSupertype(it)) config.energyFlow = it }
|
||||
@ -45,11 +45,11 @@ class EnergyPlayerInput(val menu: MatteryMenu, config: MatteryDeviceBlockEntity.
|
||||
push.filter { allowPush }
|
||||
}
|
||||
|
||||
fun configure(config: MatteryDeviceBlockEntity.ConfigurableEnergy<*>) {
|
||||
fun with(config: MatteryDeviceBlockEntity.ConfigurableEnergy<*>) {
|
||||
possibleModes = config.possibleModes
|
||||
|
||||
for ((side, v) in config.pieces) {
|
||||
pieces[side]!!.configure(v, config)
|
||||
pieces[side]!!.with(v, config)
|
||||
pieces[side]!!.default = config.defaults[side]!!
|
||||
}
|
||||
|
||||
@ -62,7 +62,7 @@ class EnergyPlayerInput(val menu: MatteryMenu, config: MatteryDeviceBlockEntity.
|
||||
|
||||
init {
|
||||
if (config != null) {
|
||||
configure(config)
|
||||
with(config)
|
||||
}
|
||||
}
|
||||
}
|
@ -8,12 +8,12 @@ import ru.dbotthepony.mc.otm.menu.MatteryMenu
|
||||
/**
|
||||
* [allowPull] and [allowPush] controls whenever player is allowed to change these options
|
||||
*/
|
||||
class ItemHandlerPlayerInput(val menu: MatteryMenu, config: MatteryDeviceBlockEntity.ConfigurableItemHandler? = null, val allowPull: Boolean = false, val allowPush: Boolean = false) {
|
||||
class ItemConfigPlayerInput(val menu: MatteryMenu, config: MatteryDeviceBlockEntity.ConfigurableItemHandler? = null, val allowPull: Boolean = false, val allowPush: Boolean = false) {
|
||||
private val allowedFlags = MatteryDeviceBlockEntity.ItemHandlerMode.values().map { menu.mSynchronizer.bool() to it }
|
||||
fun isAllowed(value: MatteryDeviceBlockEntity.ItemHandlerMode) = allowedFlags[value.ordinal].first.boolean
|
||||
|
||||
inner class Piece(val side: RelativeSide) {
|
||||
fun isAllowed(value: MatteryDeviceBlockEntity.ItemHandlerMode) = this@ItemHandlerPlayerInput.isAllowed(value)
|
||||
fun isAllowed(value: MatteryDeviceBlockEntity.ItemHandlerMode) = this@ItemConfigPlayerInput.isAllowed(value)
|
||||
|
||||
val pull = BooleanInputWithFeedback(menu)
|
||||
val push = BooleanInputWithFeedback(menu)
|
||||
@ -26,7 +26,7 @@ class ItemHandlerPlayerInput(val menu: MatteryMenu, config: MatteryDeviceBlockEn
|
||||
push.filter { allowPush }
|
||||
}
|
||||
|
||||
fun configure(config: MatteryDeviceBlockEntity.ConfigurableItemHandler.Piece) {
|
||||
fun with(config: MatteryDeviceBlockEntity.ConfigurableItemHandler.Piece) {
|
||||
pull.with(config::automatePull)
|
||||
push.with(config::automatePush)
|
||||
input.withSupplier { config.mode }.withConsumer { if (isAllowed(it)) config.mode = it }
|
||||
@ -46,13 +46,13 @@ class ItemHandlerPlayerInput(val menu: MatteryMenu, config: MatteryDeviceBlockEn
|
||||
push.filter { allowPush }
|
||||
}
|
||||
|
||||
fun configure(config: MatteryDeviceBlockEntity.ConfigurableItemHandler) {
|
||||
fun with(config: MatteryDeviceBlockEntity.ConfigurableItemHandler) {
|
||||
for ((f, v) in allowedFlags) {
|
||||
f.boolean = v in config.possibleViews
|
||||
}
|
||||
|
||||
for ((side, v) in config.pieces) {
|
||||
pieces[side]!!.configure(v)
|
||||
pieces[side]!!.with(v)
|
||||
pieces[side]!!.default = config.defaults[side]!!
|
||||
}
|
||||
|
||||
@ -65,7 +65,7 @@ class ItemHandlerPlayerInput(val menu: MatteryMenu, config: MatteryDeviceBlockEn
|
||||
|
||||
init {
|
||||
if (config != null) {
|
||||
configure(config)
|
||||
with(config)
|
||||
}
|
||||
}
|
||||
}
|
@ -1,24 +1,20 @@
|
||||
package ru.dbotthepony.mc.otm.menu.matter
|
||||
|
||||
import com.google.common.collect.ImmutableList
|
||||
import kotlin.jvm.JvmOverloads
|
||||
import net.minecraft.world.entity.player.Inventory
|
||||
import ru.dbotthepony.mc.otm.block.entity.matter.MatterDecomposerBlockEntity
|
||||
import ru.dbotthepony.mc.otm.menu.widget.ProgressGaugeWidget
|
||||
import ru.dbotthepony.mc.otm.menu.widget.LevelGaugeWidget
|
||||
import net.minecraft.world.SimpleContainer
|
||||
import net.minecraft.world.inventory.Slot
|
||||
import net.minecraft.world.item.ItemStack
|
||||
import ru.dbotthepony.mc.otm.block.entity.RedstoneSetting
|
||||
import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
||||
import ru.dbotthepony.mc.otm.core.orNull
|
||||
import ru.dbotthepony.mc.otm.matter.MatterManager
|
||||
import ru.dbotthepony.mc.otm.menu.MachineOutputSlot
|
||||
import ru.dbotthepony.mc.otm.menu.MatteryPoweredMenu
|
||||
import ru.dbotthepony.mc.otm.menu.MatterySlot
|
||||
import ru.dbotthepony.mc.otm.menu.input.EnergyPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.input.EnumInputWithFeedback
|
||||
import ru.dbotthepony.mc.otm.menu.input.ItemHandlerPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.input.EnergyConfigPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.input.ItemConfigPlayerInput
|
||||
import ru.dbotthepony.mc.otm.registry.MMenus
|
||||
|
||||
class MatterDecomposerMenu @JvmOverloads constructor(
|
||||
@ -34,8 +30,8 @@ class MatterDecomposerMenu @JvmOverloads constructor(
|
||||
val outputStacking: MachineOutputSlot
|
||||
val progressWidget = ProgressGaugeWidget(this, tile)
|
||||
val matterWidget = LevelGaugeWidget(this, tile?.getCapability(MatteryCapability.MATTER)?.orNull())
|
||||
val itemConfig = ItemHandlerPlayerInput(this, tile?.itemConfig)
|
||||
val energyConfig = EnergyPlayerInput(this, tile?.energyConfig)
|
||||
val itemConfig = ItemConfigPlayerInput(this, tile?.itemConfig)
|
||||
val energyConfig = EnergyConfigPlayerInput(this, tile?.energyConfig)
|
||||
|
||||
init {
|
||||
val container = tile?.outputContainer ?: SimpleContainer(2)
|
||||
|
@ -3,13 +3,11 @@ package ru.dbotthepony.mc.otm.menu.matter
|
||||
import net.minecraft.world.SimpleContainer
|
||||
import net.minecraft.world.entity.player.Inventory
|
||||
import net.minecraft.world.item.ItemStack
|
||||
import ru.dbotthepony.mc.otm.block.entity.RedstoneSetting
|
||||
import ru.dbotthepony.mc.otm.block.entity.matter.MatterReconstructorBlockEntity
|
||||
import ru.dbotthepony.mc.otm.menu.MatteryPoweredMenu
|
||||
import ru.dbotthepony.mc.otm.menu.MatterySlot
|
||||
import ru.dbotthepony.mc.otm.menu.input.EnergyPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.input.EnumInputWithFeedback
|
||||
import ru.dbotthepony.mc.otm.menu.input.ItemHandlerPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.input.EnergyConfigPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.input.ItemConfigPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.widget.LevelGaugeWidget
|
||||
import ru.dbotthepony.mc.otm.menu.widget.ProgressGaugeWidget
|
||||
import ru.dbotthepony.mc.otm.registry.MMenus
|
||||
@ -29,8 +27,8 @@ class MatterReconstructorMenu(
|
||||
val equipment = makeEquipmentSlots(mapMoveToExternal = true)
|
||||
val progress = ProgressGaugeWidget(this)
|
||||
|
||||
val energyConfig = EnergyPlayerInput(this, tile?.energyConfig)
|
||||
val itemConfig = ItemHandlerPlayerInput(this, tile?.itemConfig)
|
||||
val energyConfig = EnergyConfigPlayerInput(this, tile?.energyConfig)
|
||||
val itemConfig = ItemConfigPlayerInput(this, tile?.itemConfig)
|
||||
|
||||
init {
|
||||
addStorageSlot(slot)
|
||||
|
@ -3,14 +3,12 @@ package ru.dbotthepony.mc.otm.menu.matter
|
||||
import net.minecraft.world.SimpleContainer
|
||||
import net.minecraft.world.entity.player.Inventory
|
||||
import net.minecraft.world.item.ItemStack
|
||||
import ru.dbotthepony.mc.otm.block.entity.RedstoneSetting
|
||||
import ru.dbotthepony.mc.otm.block.entity.matter.MatterRecyclerBlockEntity
|
||||
import ru.dbotthepony.mc.otm.item.MatterDustItem
|
||||
import ru.dbotthepony.mc.otm.menu.MatteryPoweredMenu
|
||||
import ru.dbotthepony.mc.otm.menu.MatterySlot
|
||||
import ru.dbotthepony.mc.otm.menu.input.EnergyPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.input.EnumInputWithFeedback
|
||||
import ru.dbotthepony.mc.otm.menu.input.ItemHandlerPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.input.EnergyConfigPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.input.ItemConfigPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.widget.LevelGaugeWidget
|
||||
import ru.dbotthepony.mc.otm.menu.widget.ProgressGaugeWidget
|
||||
import ru.dbotthepony.mc.otm.registry.MMenus
|
||||
@ -28,8 +26,8 @@ class MatterRecyclerMenu @JvmOverloads constructor(
|
||||
|
||||
val progress = ProgressGaugeWidget(this, tile)
|
||||
val matter = LevelGaugeWidget(this, tile?.matter)
|
||||
val itemConfig = ItemHandlerPlayerInput(this, tile?.itemConfig)
|
||||
val energyConfig = EnergyPlayerInput(this, tile?.energyConfig)
|
||||
val itemConfig = ItemConfigPlayerInput(this, tile?.itemConfig)
|
||||
val energyConfig = EnergyConfigPlayerInput(this, tile?.energyConfig)
|
||||
|
||||
init {
|
||||
addStorageSlot(input)
|
||||
|
@ -6,13 +6,11 @@ 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 net.minecraft.world.SimpleContainer
|
||||
import ru.dbotthepony.mc.otm.block.entity.RedstoneSetting
|
||||
import ru.dbotthepony.mc.otm.core.immutableList
|
||||
import ru.dbotthepony.mc.otm.menu.MachineOutputSlot
|
||||
import ru.dbotthepony.mc.otm.menu.MatteryPoweredMenu
|
||||
import ru.dbotthepony.mc.otm.menu.input.EnergyPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.input.EnumInputWithFeedback
|
||||
import ru.dbotthepony.mc.otm.menu.input.ItemHandlerPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.input.EnergyConfigPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.input.ItemConfigPlayerInput
|
||||
import ru.dbotthepony.mc.otm.registry.MMenus
|
||||
|
||||
class MatterReplicatorMenu @JvmOverloads constructor(
|
||||
@ -23,8 +21,8 @@ class MatterReplicatorMenu @JvmOverloads constructor(
|
||||
val matter = LevelGaugeWidget(this, tile?.matter)
|
||||
val progress = ProgressGaugeWidget(this, tile)
|
||||
val storageSlots: List<MachineOutputSlot>
|
||||
val itemConfig = ItemHandlerPlayerInput(this, tile?.itemConfig)
|
||||
val energyConfig = EnergyPlayerInput(this, tile?.energyConfig)
|
||||
val itemConfig = ItemConfigPlayerInput(this, tile?.itemConfig)
|
||||
val energyConfig = EnergyConfigPlayerInput(this, tile?.energyConfig)
|
||||
|
||||
init {
|
||||
val container = tile?.container ?: SimpleContainer(5)
|
||||
|
@ -11,8 +11,8 @@ import ru.dbotthepony.mc.otm.core.math.Decimal
|
||||
import ru.dbotthepony.mc.otm.matter.MatterManager
|
||||
import ru.dbotthepony.mc.otm.menu.MatteryPoweredMenu
|
||||
import ru.dbotthepony.mc.otm.menu.MatterySlot
|
||||
import ru.dbotthepony.mc.otm.menu.input.EnergyPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.input.ItemHandlerPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.input.EnergyConfigPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.input.ItemConfigPlayerInput
|
||||
import ru.dbotthepony.mc.otm.registry.MMenus
|
||||
|
||||
class MatterScannerMenu @JvmOverloads constructor(
|
||||
@ -23,8 +23,8 @@ class MatterScannerMenu @JvmOverloads constructor(
|
||||
val input: MatterySlot
|
||||
val progress = ProgressGaugeWidget(this, tile)
|
||||
val patterns = LevelGaugeWidget(this)
|
||||
val itemConfig = ItemHandlerPlayerInput(this, tile?.itemConfig)
|
||||
val energyConfig = EnergyPlayerInput(this, tile?.energyConfig)
|
||||
val itemConfig = ItemConfigPlayerInput(this, tile?.itemConfig)
|
||||
val energyConfig = EnergyConfigPlayerInput(this, tile?.energyConfig)
|
||||
|
||||
init {
|
||||
val container = tile?.container ?: SimpleContainer(1)
|
||||
|
@ -7,7 +7,7 @@ import ru.dbotthepony.mc.otm.block.entity.matter.PatternStorageBlockEntity
|
||||
import ru.dbotthepony.mc.otm.core.math.Decimal
|
||||
import ru.dbotthepony.mc.otm.menu.MatteryMenu
|
||||
import ru.dbotthepony.mc.otm.menu.PatternSlot
|
||||
import ru.dbotthepony.mc.otm.menu.input.ItemHandlerPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.input.ItemConfigPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.widget.LevelGaugeWidget
|
||||
import ru.dbotthepony.mc.otm.registry.MMenus
|
||||
|
||||
@ -18,7 +18,7 @@ class PatternStorageMenu @JvmOverloads constructor(
|
||||
) : MatteryMenu(MMenus.PATTERN_STORAGE, p_38852_, inventory, tile) {
|
||||
val storedThis = LevelGaugeWidget(this, tile)
|
||||
val storedGrid = LevelGaugeWidget(this)
|
||||
val itemConfig = ItemHandlerPlayerInput(this, tile?.itemConfig)
|
||||
val itemConfig = ItemConfigPlayerInput(this, tile?.itemConfig)
|
||||
|
||||
val storageSlots: List<PatternSlot>
|
||||
|
||||
|
@ -1,21 +1,18 @@
|
||||
package ru.dbotthepony.mc.otm.menu.tech
|
||||
|
||||
import com.google.common.collect.ImmutableList
|
||||
import net.minecraft.server.level.ServerPlayer
|
||||
import net.minecraft.world.Container
|
||||
import net.minecraft.world.SimpleContainer
|
||||
import net.minecraft.world.entity.player.Inventory
|
||||
import net.minecraft.world.entity.player.Player
|
||||
import net.minecraft.world.inventory.Slot
|
||||
import net.minecraft.world.item.ItemStack
|
||||
import net.minecraftforge.common.capabilities.ForgeCapabilities
|
||||
import ru.dbotthepony.mc.otm.block.entity.tech.AndroidStationBlockEntity
|
||||
import ru.dbotthepony.mc.otm.capability.MatteryPlayerCapability
|
||||
import ru.dbotthepony.mc.otm.capability.matteryPlayer
|
||||
import ru.dbotthepony.mc.otm.core.immutableList
|
||||
import ru.dbotthepony.mc.otm.menu.MatteryPoweredMenu
|
||||
import ru.dbotthepony.mc.otm.menu.MatterySlot
|
||||
import ru.dbotthepony.mc.otm.menu.input.EnergyPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.input.EnergyConfigPlayerInput
|
||||
import ru.dbotthepony.mc.otm.registry.MMenus
|
||||
import kotlin.reflect.KMutableProperty0
|
||||
|
||||
@ -114,7 +111,7 @@ class AndroidStationMenu @JvmOverloads constructor(
|
||||
}
|
||||
|
||||
val equipment = makeEquipmentSlots()
|
||||
val energyConfig = EnergyPlayerInput(this, tile?.energyConfig)
|
||||
val energyConfig = EnergyConfigPlayerInput(this, tile?.energyConfig)
|
||||
|
||||
init {
|
||||
addInventorySlots()
|
||||
|
@ -13,9 +13,9 @@ import ru.dbotthepony.mc.otm.core.orNull
|
||||
import ru.dbotthepony.mc.otm.menu.BatterySlot
|
||||
import ru.dbotthepony.mc.otm.menu.MatteryMenu
|
||||
import ru.dbotthepony.mc.otm.menu.MatterySlot
|
||||
import ru.dbotthepony.mc.otm.menu.input.EnergyPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.input.EnergyConfigPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.input.EnumInputWithFeedback
|
||||
import ru.dbotthepony.mc.otm.menu.input.ItemHandlerPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.input.ItemConfigPlayerInput
|
||||
import ru.dbotthepony.mc.otm.registry.MMenus
|
||||
|
||||
class BatteryBankMenu @JvmOverloads constructor(
|
||||
@ -26,14 +26,14 @@ class BatteryBankMenu @JvmOverloads constructor(
|
||||
val powerLevel: LevelGaugeWidget
|
||||
val storageSlots: List<MatterySlot>
|
||||
val redstone = EnumInputWithFeedback(this, RedstoneSetting::class.java)
|
||||
val energyConfig = EnergyPlayerInput(this, allowPull = false, allowPush = true)
|
||||
val itemConfig = ItemHandlerPlayerInput(this, allowPull = false, allowPush = false)
|
||||
val energyConfig = EnergyConfigPlayerInput(this, allowPull = false, allowPush = true)
|
||||
val itemConfig = ItemConfigPlayerInput(this, allowPull = false, allowPush = false)
|
||||
|
||||
init {
|
||||
if (tile != null) {
|
||||
redstone.with(tile.redstoneControl::redstoneSetting)
|
||||
energyConfig.configure(tile.energyConfig)
|
||||
itemConfig.configure(tile.itemConfig)
|
||||
energyConfig.with(tile.energyConfig)
|
||||
itemConfig.with(tile.itemConfig)
|
||||
}
|
||||
|
||||
val container: Container = tile?.container ?: SimpleContainer(BatteryBankBlockEntity.CAPACITY)
|
||||
|
@ -10,9 +10,9 @@ import ru.dbotthepony.mc.otm.block.entity.tech.ChemicalGeneratorBlockEntity
|
||||
import ru.dbotthepony.mc.otm.core.ifPresentK
|
||||
import ru.dbotthepony.mc.otm.menu.MatteryMenu
|
||||
import ru.dbotthepony.mc.otm.menu.MatterySlot
|
||||
import ru.dbotthepony.mc.otm.menu.input.EnergyPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.input.EnergyConfigPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.input.EnumInputWithFeedback
|
||||
import ru.dbotthepony.mc.otm.menu.input.ItemHandlerPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.input.ItemConfigPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.widget.LevelGaugeWidget
|
||||
import ru.dbotthepony.mc.otm.menu.widget.ProgressGaugeWidget
|
||||
import ru.dbotthepony.mc.otm.registry.MMenus
|
||||
@ -21,8 +21,8 @@ class ChemicalGeneratorMenu @JvmOverloads constructor(id: Int, inv: Inventory, t
|
||||
: MatteryMenu(MMenus.CHEMICAL_GENERATOR, id, inv, tile) {
|
||||
|
||||
val redstoneConfig = EnumInputWithFeedback<RedstoneSetting>(this)
|
||||
val itemConfig = ItemHandlerPlayerInput(this, tile?.itemConfig, allowPush = true)
|
||||
val energyConfig = EnergyPlayerInput(this, tile?.energyConfig, allowPush = true)
|
||||
val itemConfig = ItemConfigPlayerInput(this, tile?.itemConfig, allowPush = true)
|
||||
val energyConfig = EnergyConfigPlayerInput(this, tile?.energyConfig, allowPush = true)
|
||||
|
||||
init {
|
||||
if (tile != null) {
|
||||
|
@ -8,7 +8,7 @@ import ru.dbotthepony.mc.otm.core.immutableList
|
||||
import ru.dbotthepony.mc.otm.menu.MachineOutputSlot
|
||||
import ru.dbotthepony.mc.otm.menu.MatteryMenu
|
||||
import ru.dbotthepony.mc.otm.menu.input.EnumInputWithFeedback
|
||||
import ru.dbotthepony.mc.otm.menu.input.ItemHandlerPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.input.ItemConfigPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.widget.ProgressGaugeWidget
|
||||
import ru.dbotthepony.mc.otm.registry.MMenus
|
||||
|
||||
@ -19,7 +19,7 @@ class CobblerMenu @JvmOverloads constructor(
|
||||
) : MatteryMenu(MMenus.COBBLESTONE_GENERATOR, p_38852_, inventory, tile) {
|
||||
val storageSlots = (tile?.container ?: SimpleContainer(CobblerBlockEntity.CONTAINER_SIZE)).let { c -> immutableList(c.containerSize) { addStorageSlot(MachineOutputSlot(c, it)) } }
|
||||
val redstone = EnumInputWithFeedback<RedstoneSetting>(this)
|
||||
val itemConfig = ItemHandlerPlayerInput(this)
|
||||
val itemConfig = ItemConfigPlayerInput(this)
|
||||
|
||||
val progress = ProgressGaugeWidget(this)
|
||||
|
||||
@ -27,7 +27,7 @@ class CobblerMenu @JvmOverloads constructor(
|
||||
if (tile != null) {
|
||||
progress.with(tile::workProgress, tile::isUnableToProcess)
|
||||
redstone.with(tile.redstoneControl::redstoneSetting)
|
||||
itemConfig.configure(tile.itemConfig)
|
||||
itemConfig.with(tile.itemConfig)
|
||||
}
|
||||
|
||||
addInventorySlots()
|
||||
|
@ -8,9 +8,9 @@ import ru.dbotthepony.mc.otm.block.entity.tech.EnergyServoBlockEntity
|
||||
import ru.dbotthepony.mc.otm.capability.energy
|
||||
import ru.dbotthepony.mc.otm.menu.MatteryMenu
|
||||
import ru.dbotthepony.mc.otm.menu.MatterySlot
|
||||
import ru.dbotthepony.mc.otm.menu.input.EnergyPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.input.EnergyConfigPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.input.EnumInputWithFeedback
|
||||
import ru.dbotthepony.mc.otm.menu.input.ItemHandlerPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.input.ItemConfigPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.widget.LevelGaugeWidget
|
||||
import ru.dbotthepony.mc.otm.registry.MMenus
|
||||
|
||||
@ -34,8 +34,8 @@ class EnergyServoMenu @JvmOverloads constructor(
|
||||
val equipment = makeEquipmentSlots(mapMoveToExternal = true)
|
||||
|
||||
val powerGauge = LevelGaugeWidget(this, tile?.energy)
|
||||
val itemConfig = ItemHandlerPlayerInput(this, tile?.itemConfig)
|
||||
val energyConfig = EnergyPlayerInput(this, tile?.energyConfig, allowPull = true, allowPush = true)
|
||||
val itemConfig = ItemConfigPlayerInput(this, tile?.itemConfig)
|
||||
val energyConfig = EnergyConfigPlayerInput(this, tile?.energyConfig, allowPull = true, allowPush = true)
|
||||
val redstoneConfig = EnumInputWithFeedback<RedstoneSetting>(this)
|
||||
|
||||
init {
|
||||
|
@ -6,16 +6,14 @@ import net.minecraft.world.entity.player.Inventory
|
||||
import net.minecraft.world.item.ItemStack
|
||||
import ru.dbotthepony.mc.otm.block.entity.RedstoneSetting
|
||||
import ru.dbotthepony.mc.otm.block.entity.tech.EssenceStorageBlockEntity
|
||||
import ru.dbotthepony.mc.otm.capability.itemsStream
|
||||
import ru.dbotthepony.mc.otm.capability.matteryPlayer
|
||||
import ru.dbotthepony.mc.otm.core.util.LongValueCodec
|
||||
import ru.dbotthepony.mc.otm.core.util.getTotalXpRequiredForLevel
|
||||
import ru.dbotthepony.mc.otm.item.EssenceCapsuleItem
|
||||
import ru.dbotthepony.mc.otm.item.EssenceServoItem
|
||||
import ru.dbotthepony.mc.otm.menu.MatteryMenu
|
||||
import ru.dbotthepony.mc.otm.menu.MatterySlot
|
||||
import ru.dbotthepony.mc.otm.menu.input.EnumInputWithFeedback
|
||||
import ru.dbotthepony.mc.otm.menu.input.ItemHandlerPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.input.ItemConfigPlayerInput
|
||||
import ru.dbotthepony.mc.otm.registry.MItems
|
||||
import ru.dbotthepony.mc.otm.registry.MMenus
|
||||
|
||||
@ -26,7 +24,7 @@ class EssenceStorageMenu @JvmOverloads constructor(
|
||||
) : MatteryMenu(MMenus.ESSENCE_STORAGE, containerID, inventory, tile) {
|
||||
val experienceStored by mSynchronizer.ComputedLongField(getter = { tile?.experienceStored ?: 0L }).property
|
||||
val redstoneConfig = EnumInputWithFeedback<RedstoneSetting>(this)
|
||||
val itemConfig = ItemHandlerPlayerInput(this, tile?.itemConfig)
|
||||
val itemConfig = ItemConfigPlayerInput(this, tile?.itemConfig)
|
||||
|
||||
val capsuleSlot = object : MatterySlot(tile?.capsuleContainer ?: SimpleContainer(1), 0) {
|
||||
override fun mayPlace(itemStack: ItemStack): Boolean {
|
||||
|
@ -7,8 +7,8 @@ import ru.dbotthepony.mc.otm.block.entity.tech.PlatePressBlockEntity
|
||||
import ru.dbotthepony.mc.otm.menu.MachineOutputSlot
|
||||
import ru.dbotthepony.mc.otm.menu.MatteryPoweredMenu
|
||||
import ru.dbotthepony.mc.otm.menu.MatterySlot
|
||||
import ru.dbotthepony.mc.otm.menu.input.EnergyPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.input.ItemHandlerPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.input.EnergyConfigPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.input.ItemConfigPlayerInput
|
||||
import ru.dbotthepony.mc.otm.menu.widget.ProgressGaugeWidget
|
||||
import ru.dbotthepony.mc.otm.registry.MMenus
|
||||
|
||||
@ -21,8 +21,8 @@ class PlatePressMenu @JvmOverloads constructor(
|
||||
val outputSlot = MachineOutputSlot(tile?.outputContainer ?: SimpleContainer(1), 0) { tile?.popExperience(ply as ServerPlayer) }
|
||||
|
||||
val progressGauge = ProgressGaugeWidget(this, tile)
|
||||
val itemConfig = ItemHandlerPlayerInput(this, tile?.itemConfig, allowPush = true)
|
||||
val energyConfig = EnergyPlayerInput(this, tile?.energyConfig, allowPull = true)
|
||||
val itemConfig = ItemConfigPlayerInput(this, tile?.itemConfig, allowPush = true)
|
||||
val energyConfig = EnergyConfigPlayerInput(this, tile?.energyConfig, allowPull = true)
|
||||
|
||||
init {
|
||||
addStorageSlot(inputSlot)
|
||||
|
Loading…
Reference in New Issue
Block a user