diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatteryScreen.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatteryScreen.kt index b0fed5874..34b9ea23a 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatteryScreen.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatteryScreen.kt @@ -10,13 +10,10 @@ import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen import net.minecraft.network.chat.Component import net.minecraft.world.entity.player.Inventory import net.minecraft.world.inventory.Slot -import net.minecraft.world.item.Item import net.minecraft.world.item.ItemStack import net.neoforged.neoforge.client.event.ContainerScreenEvent import net.neoforged.neoforge.common.NeoForge import org.lwjgl.opengl.GL11 -import ru.dbotthepony.kommons.util.getValue -import ru.dbotthepony.kommons.util.setValue import ru.dbotthepony.mc.otm.capability.matteryPlayer import ru.dbotthepony.mc.otm.client.render.MGUIGraphics import ru.dbotthepony.mc.otm.client.moveMousePosScaled @@ -49,7 +46,7 @@ import ru.dbotthepony.mc.otm.core.math.component1 import ru.dbotthepony.mc.otm.core.math.component2 import ru.dbotthepony.mc.otm.core.math.integerDivisionDown import ru.dbotthepony.mc.otm.menu.MatteryMenu -import ru.dbotthepony.mc.otm.menu.MatterySlot +import ru.dbotthepony.mc.otm.menu.MatteryMenuSlot import ru.dbotthepony.mc.otm.menu.widget.LevelGaugeWidget import ru.dbotthepony.mc.otm.menu.widget.ProfiledLevelGaugeWidget import java.util.* @@ -407,7 +404,7 @@ abstract class MatteryScreen(menu: T, inventory: Inventory, tit matter: LevelGaugeWidget? = null, profiledMatter: ProfiledLevelGaugeWidget<*>? = null, patterns: LevelGaugeWidget? = null, - batterySlot: MatterySlot? = null, + batterySlot: MatteryMenuSlot? = null, ) { var bars = 0 if (energy != null) bars++ diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/PlayerEquipmentPanel.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/PlayerEquipmentPanel.kt index b28d2350d..bbb511306 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/PlayerEquipmentPanel.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/PlayerEquipmentPanel.kt @@ -60,7 +60,7 @@ open class PlayerEquipmentPanel>( parent: EditablePanel<*>?, x: Float = 0f, y: Float = 0f, - val armorSlots: List> + val armorSlots: List> ) : EditablePanel(screen, parent, x, y, height = HEIGHT, width = WIDTH) { val armorSlotsStrip = EditablePanel(screen, this, width = AbstractSlotPanel.SIZE) val entityPanel = EntityRendererPanel(screen, this, minecraft.player!!) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/button/Buttons.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/button/Buttons.kt index 71295e837..8f1d6daa9 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/button/Buttons.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/button/Buttons.kt @@ -2,11 +2,9 @@ package ru.dbotthepony.mc.otm.client.screen.panels.button import com.mojang.blaze3d.platform.InputConstants import net.minecraft.ChatFormatting -import net.minecraft.client.gui.screens.Screen import net.minecraft.network.chat.Component import net.minecraft.world.item.ItemStack import net.minecraft.world.item.Items -import ru.dbotthepony.kommons.math.RGBAColor import ru.dbotthepony.kommons.util.Delegate import ru.dbotthepony.kommons.util.value import ru.dbotthepony.mc.otm.block.entity.MatteryDeviceBlockEntity @@ -21,7 +19,6 @@ import ru.dbotthepony.mc.otm.client.minecraft import ru.dbotthepony.mc.otm.client.render.IGUIRenderable import ru.dbotthepony.mc.otm.client.render.sprites.AbstractMatterySprite import ru.dbotthepony.mc.otm.client.render.ItemStackIcon -import ru.dbotthepony.mc.otm.client.render.UVWindingOrder import ru.dbotthepony.mc.otm.client.render.Widgets18 import ru.dbotthepony.mc.otm.client.screen.MatteryScreen import ru.dbotthepony.mc.otm.client.screen.panels.Dock @@ -39,7 +36,7 @@ import ru.dbotthepony.mc.otm.core.math.RelativeSide import ru.dbotthepony.mc.otm.core.util.ItemStackSorter import ru.dbotthepony.mc.otm.core.util.getLevelFromXp import ru.dbotthepony.mc.otm.menu.MatteryMenu -import ru.dbotthepony.mc.otm.menu.MatterySlot +import ru.dbotthepony.mc.otm.menu.MatteryMenuSlot import ru.dbotthepony.mc.otm.menu.UpgradeSlots import ru.dbotthepony.mc.otm.menu.input.BooleanInputWithFeedback import ru.dbotthepony.mc.otm.menu.input.EnergyConfigPlayerInput @@ -570,7 +567,7 @@ class DeviceControls>( val grid = GridPanel(screen, frame, columns = columns, rows = rows) for (slot in upgrades.slots) { - object : SlotPanel(screen, grid, slot) { + object : SlotPanel(screen, grid, slot) { override val cursorType: CursorType get() = if (upgrades.areLocked.get()) CursorType.NOT_ALLOWED else super.cursorType } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/slot/UserFilteredSlotPanel.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/slot/UserFilteredSlotPanel.kt index 8fdb61822..2d6a269a7 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/slot/UserFilteredSlotPanel.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/slot/UserFilteredSlotPanel.kt @@ -8,9 +8,9 @@ import ru.dbotthepony.mc.otm.client.screen.MatteryScreen import ru.dbotthepony.mc.otm.client.screen.panels.EditablePanel import ru.dbotthepony.mc.otm.container.IFilteredContainerSlot import ru.dbotthepony.mc.otm.container.util.containerSlot -import ru.dbotthepony.mc.otm.menu.UserFilteredSlot +import ru.dbotthepony.mc.otm.menu.UserFilteredMenuSlot -open class UserFilteredSlotPanel, out T : UserFilteredSlot>( +open class UserFilteredSlotPanel, out T : UserFilteredMenuSlot>( screen: S, parent: EditablePanel<*>?, slot: T, diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/compat/cos/CosmeticArmorCompat.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/compat/cos/CosmeticArmorCompat.kt index 8f2f3b46b..f4539471c 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/compat/cos/CosmeticArmorCompat.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/compat/cos/CosmeticArmorCompat.kt @@ -6,7 +6,6 @@ import lain.mods.cos.impl.client.PlayerRenderHandler import lain.mods.cos.impl.client.gui.GuiCosArmorInventory import lain.mods.cos.impl.network.payload.PayloadSetSkinArmor import net.minecraft.client.gui.screens.Screen -import net.minecraft.network.chat.Component import net.minecraft.resources.ResourceLocation import net.minecraft.server.level.ServerPlayer import net.minecraft.world.Container @@ -20,9 +19,6 @@ import net.neoforged.neoforge.network.PacketDistributor import ru.dbotthepony.kommons.math.RGBAColor import ru.dbotthepony.mc.otm.client.render.MGUIGraphics import ru.dbotthepony.mc.otm.client.minecraft -import ru.dbotthepony.mc.otm.client.render.IGUIRenderable -import ru.dbotthepony.mc.otm.client.render.UVWindingOrder -import ru.dbotthepony.mc.otm.client.render.sprites.MatterySprite import ru.dbotthepony.mc.otm.client.render.sprites.sprite import ru.dbotthepony.mc.otm.client.screen.panels.EditablePanel import ru.dbotthepony.mc.otm.client.screen.panels.button.ButtonPanel @@ -32,7 +28,7 @@ import ru.dbotthepony.mc.otm.container.util.awareStream import ru.dbotthepony.mc.otm.container.util.iterator import ru.dbotthepony.mc.otm.core.collect.AwareItemStack import ru.dbotthepony.mc.otm.core.collect.emptyIterator -import ru.dbotthepony.mc.otm.menu.MatterySlot +import ru.dbotthepony.mc.otm.menu.MatteryMenuSlot import java.util.stream.Stream val isCosmeticArmorLoaded by lazy { @@ -47,7 +43,7 @@ val Player.cosmeticArmorSlots: Map? get() { return cosmeticArmorSlotsImpl } -private class CosmeticSlot(container: Container, private val slot: EquipmentSlot, private val player: Player) : MatterySlot(container, when (slot) { +private class CosmeticMenuSlot(container: Container, private val slot: EquipmentSlot, private val player: Player) : MatteryMenuSlot(container, when (slot) { EquipmentSlot.FEET -> 0 EquipmentSlot.LEGS -> 1 EquipmentSlot.CHEST -> 2 @@ -127,10 +123,10 @@ private val Player.cosmeticArmorSlotsImpl: Map? get() { } return mapOf( - EquipmentSlot.HEAD to CosmeticSlot(container, EquipmentSlot.HEAD, this), - EquipmentSlot.CHEST to CosmeticSlot(container, EquipmentSlot.CHEST, this), - EquipmentSlot.LEGS to CosmeticSlot(container, EquipmentSlot.LEGS, this), - EquipmentSlot.FEET to CosmeticSlot(container, EquipmentSlot.FEET, this), + EquipmentSlot.HEAD to CosmeticMenuSlot(container, EquipmentSlot.HEAD, this), + EquipmentSlot.CHEST to CosmeticMenuSlot(container, EquipmentSlot.CHEST, this), + EquipmentSlot.LEGS to CosmeticMenuSlot(container, EquipmentSlot.LEGS, this), + EquipmentSlot.FEET to CosmeticMenuSlot(container, EquipmentSlot.FEET, this), ) } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/compat/vanilla/ExtendedInventoryHandler.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/compat/vanilla/ExtendedInventoryHandler.kt index e5bb727c2..247a116cd 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/compat/vanilla/ExtendedInventoryHandler.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/compat/vanilla/ExtendedInventoryHandler.kt @@ -22,7 +22,7 @@ import ru.dbotthepony.mc.otm.capability.MatteryPlayer import ru.dbotthepony.mc.otm.capability.matteryPlayer import ru.dbotthepony.mc.otm.core.ResourceLocation import ru.dbotthepony.mc.otm.menu.MatteryMenu -import ru.dbotthepony.mc.otm.menu.MatterySlot +import ru.dbotthepony.mc.otm.menu.MatteryMenuSlot import java.util.* private val menuConfigurations = WeakHashMap() @@ -47,9 +47,9 @@ private class MenuConfiguration( for (i in 0 .. 8) { if (matteryPlayer.exopackContainer.containerSize > i + offset) { - row.add(MatterySlot(matteryPlayer.exopackContainer, i + offset)) + row.add(MatteryMenuSlot(matteryPlayer.exopackContainer, i + offset)) } else { - row.add(FakeSlot()) + row.add(FakeMenuSlot()) } } @@ -150,7 +150,7 @@ private class MenuConfiguration( } } -private class FakeSlot : MatterySlot(SimpleContainer(1), 0, 0, 0) { +private class FakeMenuSlot : MatteryMenuSlot(SimpleContainer(1), 0, 0, 0) { override fun mayPickup(player: Player): Boolean { return false } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/compat/vanilla/MatteryChestMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/compat/vanilla/MatteryChestMenu.kt index d5ef52363..231ef450d 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/compat/vanilla/MatteryChestMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/compat/vanilla/MatteryChestMenu.kt @@ -11,7 +11,7 @@ import net.neoforged.bus.api.IEventBus import net.neoforged.neoforge.client.event.RegisterMenuScreensEvent import ru.dbotthepony.mc.otm.OverdriveThatMatters import ru.dbotthepony.mc.otm.menu.MatteryMenu -import ru.dbotthepony.mc.otm.menu.MatterySlot +import ru.dbotthepony.mc.otm.menu.MatteryMenuSlot import ru.dbotthepony.mc.otm.menu.makeSlots import ru.dbotthepony.mc.otm.registry.MDeferredRegister @@ -20,7 +20,7 @@ class MatteryChestMenu( inventory: Inventory, val rows: Int, val columns: Int, val container: Container = SimpleContainer(rows * columns) ) : MatteryMenu(type, containerId, inventory) { - val chestSlots = makeSlots(container, ::MatterySlot) + val chestSlots = makeSlots(container, ::MatteryMenuSlot) val sort = SortInput(container, playerSortSettings) init { diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/ExopackInventoryMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/ExopackInventoryMenu.kt index 6d27c6177..9d9135e4e 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/ExopackInventoryMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/ExopackInventoryMenu.kt @@ -21,7 +21,7 @@ import ru.dbotthepony.mc.otm.network.ExopackSlotPacket class ExopackInventoryMenu(val capability: MatteryPlayer) : MatteryMenu(null, CONTAINER_ID, capability.ply.inventory) { val craftingGrid: CraftingContainer - val craftingSlots: List + val craftingSlots: List init { if (capability.isExopackCraftingUpgraded) { @@ -30,10 +30,10 @@ class ExopackInventoryMenu(val capability: MatteryPlayer) : MatteryMenu(null, CO craftingGrid = TransientCraftingContainer(this, 2, 2) } - val builder = ImmutableList.builder() + val builder = ImmutableList.builder() for (i in 0 until craftingGrid.containerSize) { - builder.add(MatterySlot(craftingGrid, i)) + builder.add(MatteryMenuSlot(craftingGrid, i)) } craftingSlots = builder.build() @@ -91,16 +91,16 @@ class ExopackInventoryMenu(val capability: MatteryPlayer) : MatteryMenu(null, CO } } - val furnaceInputs: List = capability.smelters.map { - object : MatterySlot(it.input, 0) { + val furnaceInputs: List = capability.smelters.map { + object : MatteryMenuSlot(it.input, 0) { override fun mayPlace(itemStack: ItemStack): Boolean { return super.mayPlace(itemStack) && capability.isExopackSmeltingInstalled } } } - val furnaceOutputs: List = capability.smelters.map { - object : OutputSlot(it.output, 0, onTake = { popFurnaceExp() }) { + val furnaceOutputs: List = capability.smelters.map { + object : OutputMenuSlot(it.output, 0, onTake = { popFurnaceExp() }) { override fun mayPickup(player: Player): Boolean { return super.mayPickup(player) && capability.isExopackSmeltingInstalled } @@ -115,7 +115,7 @@ class ExopackInventoryMenu(val capability: MatteryPlayer) : MatteryMenu(null, CO addStorageSlot(furnaceOutputs, condition = furnaceMenuOpenState) } - val enderChestSlots: List + val enderChestSlots: List val enderChestOpenState = InstantBooleanInput(this) val playerEnderSortSettings = IItemStackSortingSettings.inputs(this, capability.enderSortingSettings) val sortEnderChest: SortInput? @@ -123,7 +123,7 @@ class ExopackInventoryMenu(val capability: MatteryPlayer) : MatteryMenu(null, CO init { if (capability.isExopackEnderAccessInstalled) { enderChestSlots = makeSlots(player.enderChestInventory) { a, b -> - MatterySlot(a, b).also { + MatteryMenuSlot(a, b).also { addStorageSlot(it, condition = enderChestOpenState) } } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/MatteryMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/MatteryMenu.kt index 9bff7873a..4c4488d00 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/MatteryMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/MatteryMenu.kt @@ -39,7 +39,6 @@ import ru.dbotthepony.mc.otm.compat.cos.cosmeticArmorSlots import ru.dbotthepony.mc.otm.compat.curios.curiosSlots import ru.dbotthepony.mc.otm.compat.curios.isCurioSlot import ru.dbotthepony.mc.otm.container.IFilteredContainerSlot -import ru.dbotthepony.mc.otm.container.IMatteryContainer import ru.dbotthepony.mc.otm.container.computeSortedIndices import ru.dbotthepony.mc.otm.container.sortWithIndices import ru.dbotthepony.mc.otm.container.util.containerSlotOrNull @@ -66,7 +65,7 @@ import java.util.function.Predicate data class PlayerSlot(val functional: A, val cosmetic: B? = null) data class EquipmentSlots( - val armorSlots: List>, + val armorSlots: List>, val curiosSlots: List> ) @@ -87,7 +86,7 @@ abstract class MatteryMenu( private val _playerInventorySlots = ArrayList() private val _playerHotbarSlots = ArrayList() private val _playerCombinedInventorySlots = ArrayList() - private val _exopackChargeSlots = ArrayList() + private val _exopackChargeSlots = ArrayList() private val playerInputs = ArrayList>() @@ -202,7 +201,7 @@ abstract class MatteryMenu( */ val playerCombinedInventorySlots: List = Collections.unmodifiableList(_playerCombinedInventorySlots) - val exopackChargeSlots: List = Collections.unmodifiableList(_exopackChargeSlots) + val exopackChargeSlots: List = Collections.unmodifiableList(_exopackChargeSlots) val exopackPowerLevel = ProfiledLevelGaugeWidget>(mSynchronizer, player.matteryPlayer.exopackEnergy) @@ -223,7 +222,7 @@ abstract class MatteryMenu( protected var inventorySlotIndexStart = 0 protected var inventorySlotIndexEnd = 0 - open inner class InventorySlot(container: Container, index: Int) : UserFilteredSlot(container, index, 0, 0) { + open inner class InventorySlot(container: Container, index: Int) : UserFilteredMenuSlot(container, index, 0, 0) { override fun mayPlace(itemStack: ItemStack): Boolean { return !isInventorySlotLocked(index) && super.mayPlace(itemStack) } @@ -247,7 +246,7 @@ abstract class MatteryMenu( } } - open inner class EquipmentSlot(container: Container, index: Int, val type: net.minecraft.world.entity.EquipmentSlot) : InventorySlot(container, index) { + open inner class EquipmentMenuSlot(container: Container, index: Int, val type: net.minecraft.world.entity.EquipmentSlot) : InventorySlot(container, index) { constructor(type: net.minecraft.world.entity.EquipmentSlot) : this(inventory, 34 + type.ordinal, type) override fun setByPlayer(newItem: ItemStack, oldItem: ItemStack) { @@ -310,10 +309,10 @@ abstract class MatteryMenu( } if (mattery.hasExopack) { - _exopackChargeSlots.add(BatterySlot(mattery.exopackEnergy.parent, 0).also { mapQuickMoveToExternal(it); mapQuickMoveToInventory(it); addSlot(it) }) + _exopackChargeSlots.add(BatteryMenuSlot(mattery.exopackEnergy.parent, 0).also { mapQuickMoveToExternal(it); mapQuickMoveToInventory(it); addSlot(it) }) for (i in 0 until mattery.exopackChargeSlots.containerSize) - _exopackChargeSlots.add(ChargeSlot(mattery.exopackChargeSlots, i).also { mapQuickMoveToExternal(it); mapQuickMoveToInventory(it); addSlot(it) }) + _exopackChargeSlots.add(ChargeMenuSlot(mattery.exopackChargeSlots, i).also { mapQuickMoveToExternal(it); mapQuickMoveToInventory(it); addSlot(it) }) } sortInventoryInput = SortInput(mattery.inventoryAndExopackNoHotbar, playerSortSettings) @@ -385,7 +384,7 @@ abstract class MatteryMenu( if (!seenSlots.add(pSlot)) return pSlot - if (pSlot is MatterySlot) { + if (pSlot is MatteryMenuSlot) { pSlot.setupNetworkControls(this) } @@ -505,10 +504,10 @@ abstract class MatteryMenu( } override fun canTakeItemForPickAll(itemStack: ItemStack, slot: Slot): Boolean { - if (slot is EquipmentSlot) + if (slot is EquipmentMenuSlot) return false - return super.canTakeItemForPickAll(itemStack, slot) && (slot !is MatterySlot || slot.canTakeItemForPickAll()) && !slot.isCurioSlot + return super.canTakeItemForPickAll(itemStack, slot) && (slot !is MatteryMenuSlot || slot.canTakeItemForPickAll()) && !slot.isCurioSlot } override fun moveItemStackTo( @@ -643,11 +642,11 @@ abstract class MatteryMenu( return moveItemStackToSlots(item, slots, simulate) } - private var armorSlots: ImmutableList>? = null + private var armorSlots: ImmutableList>? = null private var curiosSlots: ImmutableList>? = null private val equipmentSlots = ArrayList() - fun makeArmorSlots(mapMoveToExternal: Boolean = false): List> { + fun makeArmorSlots(mapMoveToExternal: Boolean = false): List> { if (armorSlots != null) { return armorSlots!! } @@ -655,10 +654,10 @@ abstract class MatteryMenu( val cosmetic = player.cosmeticArmorSlots return ImmutableList.of( - PlayerSlot(EquipmentSlot(net.minecraft.world.entity.EquipmentSlot.HEAD), cosmetic?.get(net.minecraft.world.entity.EquipmentSlot.HEAD)), - PlayerSlot(EquipmentSlot(net.minecraft.world.entity.EquipmentSlot.CHEST), cosmetic?.get(net.minecraft.world.entity.EquipmentSlot.CHEST)), - PlayerSlot(EquipmentSlot(net.minecraft.world.entity.EquipmentSlot.LEGS), cosmetic?.get(net.minecraft.world.entity.EquipmentSlot.LEGS)), - PlayerSlot(EquipmentSlot(net.minecraft.world.entity.EquipmentSlot.FEET), cosmetic?.get(net.minecraft.world.entity.EquipmentSlot.FEET)), + PlayerSlot(EquipmentMenuSlot(net.minecraft.world.entity.EquipmentSlot.HEAD), cosmetic?.get(net.minecraft.world.entity.EquipmentSlot.HEAD)), + PlayerSlot(EquipmentMenuSlot(net.minecraft.world.entity.EquipmentSlot.CHEST), cosmetic?.get(net.minecraft.world.entity.EquipmentSlot.CHEST)), + PlayerSlot(EquipmentMenuSlot(net.minecraft.world.entity.EquipmentSlot.LEGS), cosmetic?.get(net.minecraft.world.entity.EquipmentSlot.LEGS)), + PlayerSlot(EquipmentMenuSlot(net.minecraft.world.entity.EquipmentSlot.FEET), cosmetic?.get(net.minecraft.world.entity.EquipmentSlot.FEET)), ).also { armorSlots = it diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/MatteryPoweredMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/MatteryPoweredMenu.kt index 8f0e8ca81..5168f7456 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/MatteryPoweredMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/MatteryPoweredMenu.kt @@ -15,7 +15,7 @@ abstract class MatteryPoweredMenu protected constructor( tile: MatteryPoweredBlockEntity? = null ) : MatteryMenu(menuType, containerID, inventory, tile) { val energyWidget = LevelGaugeWidget(this, tile?.energy) - val batterySlot = BatterySlot(tile?.batteryContainer ?: SimpleContainer(1), 0) + val batterySlot = BatteryMenuSlot(tile?.batteryContainer ?: SimpleContainer(1), 0) val redstoneConfig = EnumInputWithFeedback(this) init { diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/Slots.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/Slots.kt index e436740f1..82ba35225 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/Slots.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/Slots.kt @@ -50,7 +50,7 @@ inline fun makeSlots(containers: List?, size: Int, initial return immutableList(size) { initializer(containers?.get(it) ?: SimpleContainer(1), 0) } } -open class MatterySlot(container: Container, index: Int, x: Int = 0, y: Int = 0) : Slot(container, index, x, y) { +open class MatteryMenuSlot(container: Container, index: Int, x: Int = 0, y: Int = 0) : Slot(container, index, x, y) { var ignoreSpectators = true open fun setupNetworkControls(menu: MatteryMenu) { @@ -112,7 +112,7 @@ open class MatterySlot(container: Container, index: Int, x: Int = 0, y: Int = 0) } } -open class UserFilteredSlot(container: Container, index: Int, x: Int = 0, y: Int = 0) : MatterySlot(container, index, x, y) { +open class UserFilteredMenuSlot(container: Container, index: Int, x: Int = 0, y: Int = 0) : MatteryMenuSlot(container, index, x, y) { var filterInput: MatteryMenu.PlayerInput? = null private set @@ -126,7 +126,7 @@ open class UserFilteredSlot(container: Container, index: Int, x: Int = 0, y: Int } } -open class OutputSlot(container: Container, index: Int, x: Int = 0, y: Int = 0, val onTake: (ItemStack) -> Unit = {}) : MatterySlot(container, index, x, y) { +open class OutputMenuSlot(container: Container, index: Int, x: Int = 0, y: Int = 0, val onTake: (ItemStack) -> Unit = {}) : MatteryMenuSlot(container, index, x, y) { override fun mayPlace(itemStack: ItemStack): Boolean { return false } @@ -142,50 +142,50 @@ open class OutputSlot(container: Container, index: Int, x: Int = 0, y: Int = 0, } } -open class BatterySlot(container: Container, index: Int, x: Int = 0, y: Int = 0) : MatterySlot(container, index, x, y) { +open class BatteryMenuSlot(container: Container, index: Int, x: Int = 0, y: Int = 0) : MatteryMenuSlot(container, index, x, y) { override fun mayPlace(itemStack: ItemStack): Boolean { return super.mayPlace(itemStack) && (itemStack.energy?.canExtract() ?: false) } } -open class ChemicalFuelSlot(container: Container, index: Int, x: Int = 0, y: Int = 0) : MatterySlot(container, index, x, y) { +open class ChemicalFuelMenuSlot(container: Container, index: Int, x: Int = 0, y: Int = 0) : MatteryMenuSlot(container, index, x, y) { override fun mayPlace(itemStack: ItemStack): Boolean { return super.mayPlace(itemStack) && itemStack.getBurnTime(null) > 0 } } -open class ChargeSlot(container: Container, index: Int, x: Int = 0, y: Int = 0) : MatterySlot(container, index, x, y) { +open class ChargeMenuSlot(container: Container, index: Int, x: Int = 0, y: Int = 0) : MatteryMenuSlot(container, index, x, y) { override fun mayPlace(itemStack: ItemStack): Boolean { return super.mayPlace(itemStack) && (itemStack.energy?.canReceive() ?: false) } } -open class EnergyContainerInputSlot(container: Container, index: Int, x: Int = 0, y: Int = 0, val direction: FlowDirection = FlowDirection.BI_DIRECTIONAL) : MatterySlot(container, index, x, y) { +open class EnergyContainerInputMenuSlot(container: Container, index: Int, x: Int = 0, y: Int = 0, val direction: FlowDirection = FlowDirection.BI_DIRECTIONAL) : MatteryMenuSlot(container, index, x, y) { override fun mayPlace(itemStack: ItemStack): Boolean { return super.mayPlace(itemStack) && (itemStack.getCapability(Capabilities.EnergyStorage.ITEM)?.let { direction.test(FlowDirection.of(it.canReceive(), it.canExtract())) } ?: false) } } -open class MatterContainerInputSlot( +open class MatterContainerInputMenuSlot( container: Container, index: Int, x: Int = 0, y: Int = 0, val direction: FlowDirection = FlowDirection.BI_DIRECTIONAL -) : MatterySlot(container, index, x, y) { +) : MatteryMenuSlot(container, index, x, y) { override fun mayPlace(itemStack: ItemStack): Boolean { val handler = itemStack.getCapability(MatteryCapability.MATTER_ITEM) return handler != null && super.mayPlace(itemStack) && this.direction.test(handler.matterFlow) } } -open class PatternSlot(container: Container, index: Int, x: Int = 0, y: Int = 0) : MatterySlot(container, index, x, y) { +open class PatternMenuSlot(container: Container, index: Int, x: Int = 0, y: Int = 0) : MatteryMenuSlot(container, index, x, y) { override fun mayPlace(itemStack: ItemStack): Boolean { return super.mayPlace(itemStack) && itemStack.getCapability(MatteryCapability.PATTERN_ITEM) != null } } -open class DriveSlot(container: Container, index: Int, x: Int = 0, y: Int = 0) : MatterySlot(container, index, x, y) { +open class DriveMenuSlot(container: Container, index: Int, x: Int = 0, y: Int = 0) : MatteryMenuSlot(container, index, x, y) { override fun mayPlace(itemStack: ItemStack): Boolean { return super.mayPlace(itemStack) && itemStack.getCapability(MatteryCapability.CONDENSATION_DRIVE) != null } @@ -255,7 +255,7 @@ fun MatteryMenu.addFilterControls(slots: KMutableProperty0?, amount: * in classloading exceptions. */ data class UpgradeSlots( - val slots: List, + val slots: List, val allowedTypes: Set, val openState: Delegate, val currentStats: IMatteryUpgrade, @@ -291,7 +291,7 @@ fun MatteryMenu.makeUpgradeSlots(count: Int, container: UpgradeContainer?): Upgr return UpgradeSlots( slots = immutableList(count) { - object : MatterySlot(syncContainer, it) { + object : MatteryMenuSlot(syncContainer, it) { init { mapQuickMoveToInventory(this) } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/decorative/CargoCrateMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/decorative/CargoCrateMenu.kt index 4d997dcf9..723250b6c 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/decorative/CargoCrateMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/decorative/CargoCrateMenu.kt @@ -1,13 +1,11 @@ package ru.dbotthepony.mc.otm.menu.decorative -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 ru.dbotthepony.mc.otm.block.entity.decorative.CargoCrateBlockEntity import ru.dbotthepony.mc.otm.container.slotted.SlottedContainer import ru.dbotthepony.mc.otm.menu.MatteryMenu -import ru.dbotthepony.mc.otm.menu.UserFilteredSlot +import ru.dbotthepony.mc.otm.menu.UserFilteredMenuSlot import ru.dbotthepony.mc.otm.menu.makeSlots import ru.dbotthepony.mc.otm.registry.game.MMenus @@ -17,7 +15,7 @@ class CargoCrateMenu( tile: CargoCrateBlockEntity? = null ) : MatteryMenu(MMenus.CARGO_CRATE, containerId, inventory, tile) { val actualContainer = tile?.container ?: SlottedContainer.filtered(CargoCrateBlockEntity.CAPACITY) - val storageSlots = makeSlots(actualContainer, ::UserFilteredSlot) + val storageSlots = makeSlots(actualContainer, ::UserFilteredMenuSlot) private val trackedPlayerOpen = !inventory.player.isSpectator val sort = SortInput(actualContainer, playerSortSettings) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/decorative/FluidTankMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/decorative/FluidTankMenu.kt index acebffafb..abc66ec71 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/decorative/FluidTankMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/decorative/FluidTankMenu.kt @@ -8,9 +8,9 @@ import net.neoforged.neoforge.fluids.capability.IFluidHandler import ru.dbotthepony.mc.otm.block.entity.RedstoneSetting import ru.dbotthepony.mc.otm.block.entity.decorative.FluidTankBlockEntity import ru.dbotthepony.mc.otm.capability.isNotEmpty -import ru.dbotthepony.mc.otm.menu.OutputSlot +import ru.dbotthepony.mc.otm.menu.OutputMenuSlot import ru.dbotthepony.mc.otm.menu.MatteryMenu -import ru.dbotthepony.mc.otm.menu.MatterySlot +import ru.dbotthepony.mc.otm.menu.MatteryMenuSlot import ru.dbotthepony.mc.otm.menu.input.EnumInputWithFeedback import ru.dbotthepony.mc.otm.menu.input.FluidConfigPlayerInput import ru.dbotthepony.mc.otm.menu.input.ItemConfigPlayerInput @@ -24,14 +24,14 @@ class FluidTankMenu(containerId: Int, inventory: Inventory, tile: FluidTankBlock val redstoneConfig = EnumInputWithFeedback(this) val fluidConfig = FluidConfigPlayerInput(this, tile?.fluidConfig) - val drainInput = object : MatterySlot(tile?.drainInput ?: SimpleContainer(1), 0) { + val drainInput = object : MatteryMenuSlot(tile?.drainInput ?: SimpleContainer(1), 0) { override fun mayPlace(itemStack: ItemStack): Boolean { return super.mayPlace(itemStack) && (itemStack.getCapability(Capabilities.FluidHandler.ITEM)?.isNotEmpty ?: false) } } - val fillInput = object : MatterySlot(tile?.fillInput ?: SimpleContainer(1), 0) { + val fillInput = object : MatteryMenuSlot(tile?.fillInput ?: SimpleContainer(1), 0) { override fun mayPlace(itemStack: ItemStack): Boolean { return super.mayPlace(itemStack) && (if (itemStack.count <= 1) itemStack @@ -46,7 +46,7 @@ class FluidTankMenu(containerId: Int, inventory: Inventory, tile: FluidTankBlock } } - val output = OutputSlot(tile?.output ?: SimpleContainer(1), 0) + val output = OutputMenuSlot(tile?.output ?: SimpleContainer(1), 0) init { // сначала слот на заполнение из бака diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/decorative/GrillMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/decorative/GrillMenu.kt index c883ad281..58914fa00 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/decorative/GrillMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/decorative/GrillMenu.kt @@ -12,9 +12,9 @@ import ru.dbotthepony.kommons.util.getValue import ru.dbotthepony.mc.otm.block.entity.decorative.GrillBlockEntity import ru.dbotthepony.mc.otm.container.MatteryContainer import ru.dbotthepony.mc.otm.core.immutableList -import ru.dbotthepony.mc.otm.menu.ChemicalFuelSlot +import ru.dbotthepony.mc.otm.menu.ChemicalFuelMenuSlot import ru.dbotthepony.mc.otm.menu.MatteryMenu -import ru.dbotthepony.mc.otm.menu.MatterySlot +import ru.dbotthepony.mc.otm.menu.MatteryMenuSlot import ru.dbotthepony.mc.otm.menu.makeSlots import ru.dbotthepony.mc.otm.menu.widget.IProgressGaugeWidget import ru.dbotthepony.mc.otm.menu.widget.TakeExperienceWidget @@ -30,14 +30,14 @@ class GrillMenu( override fun getMaxStackSize(): Int { return 4 } - }, ::ChemicalFuelSlot) + }, ::ChemicalFuelMenuSlot) - val inputSlots = makeSlots(tile?.inputSlots ?: object : MatteryContainer(GrillBlockEntity.SLOTS) { + val inputSlots = makeSlots(tile?.inputSlots ?: object : MatteryContainer(GrillBlockEntity.SLOTS) { override fun getMaxStackSize(): Int { return 1 } }) { c, i -> - object : MatterySlot(c, i) { + object : MatteryMenuSlot(c, i) { override fun onTake(p_150645_: Player, p_150646_: ItemStack) { super.onTake(p_150645_, p_150646_) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/decorative/MinecartCargoCrateMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/decorative/MinecartCargoCrateMenu.kt index 29a3b889b..c7869e695 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/decorative/MinecartCargoCrateMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/decorative/MinecartCargoCrateMenu.kt @@ -7,7 +7,7 @@ import net.minecraft.world.entity.player.Player import ru.dbotthepony.mc.otm.block.entity.decorative.CargoCrateBlockEntity import ru.dbotthepony.mc.otm.entity.MinecartCargoCrate import ru.dbotthepony.mc.otm.menu.MatteryMenu -import ru.dbotthepony.mc.otm.menu.MatterySlot +import ru.dbotthepony.mc.otm.menu.MatteryMenuSlot import ru.dbotthepony.mc.otm.menu.makeSlots import ru.dbotthepony.mc.otm.registry.game.MMenus @@ -17,7 +17,7 @@ class MinecartCargoCrateMenu( val cart: MinecartCargoCrate? = null ) : MatteryMenu(MMenus.CARGO_CRATE, containerId, inventory) { val actualContainer: Container = cart ?: SimpleContainer(CargoCrateBlockEntity.CAPACITY) - val storageSlots = makeSlots(actualContainer, ::MatterySlot) + val storageSlots = makeSlots(actualContainer, ::MatteryMenuSlot) private val trackedPlayerOpen = !inventory.player.isSpectator diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/decorative/PainterMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/decorative/PainterMenu.kt index 99f364506..924e73fdd 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/decorative/PainterMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/decorative/PainterMenu.kt @@ -23,7 +23,7 @@ import ru.dbotthepony.mc.otm.core.collect.filter import ru.dbotthepony.mc.otm.core.collect.maybe import ru.dbotthepony.mc.otm.core.isNotEmpty import ru.dbotthepony.mc.otm.menu.MatteryMenu -import ru.dbotthepony.mc.otm.menu.MatterySlot +import ru.dbotthepony.mc.otm.menu.MatteryMenuSlot import ru.dbotthepony.mc.otm.menu.input.BooleanInputWithFeedback import ru.dbotthepony.mc.otm.menu.input.ItemConfigPlayerInput import ru.dbotthepony.mc.otm.network.StreamCodecs @@ -56,7 +56,7 @@ class PainterMenu( selectedRecipe = it } - val inputSlot = object : MatterySlot(inputContainer, 0) { + val inputSlot = object : MatteryMenuSlot(inputContainer, 0) { override fun mayPlace(itemStack: ItemStack): Boolean { if (!itemStack.isEmpty && itemStack.`is`(ItemTags.DYEABLE)) { return super.mayPlace(itemStack) @@ -66,7 +66,7 @@ class PainterMenu( } } - val outputSlot = object : MatterySlot(outputContainer, 0) { + val outputSlot = object : MatteryMenuSlot(outputContainer, 0) { override fun tryRemove(p_150642_: Int, p_150643_: Int, p_150644_: Player): Optional { rescan() return super.tryRemove(p_150642_, p_150643_, p_150644_) @@ -102,7 +102,7 @@ class PainterMenu( } } - val dyeSlot = object : MatterySlot(tile?.dyeInput ?: SimpleContainer(1), 0) { + val dyeSlot = object : MatteryMenuSlot(tile?.dyeInput ?: SimpleContainer(1), 0) { override fun mayPlace(itemStack: ItemStack): Boolean { return super.mayPlace(itemStack) && (( itemStack.getCapability(Capabilities.FluidHandler.ITEM)?.let { diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterBottlerMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterBottlerMenu.kt index b3817461c..a460eec64 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterBottlerMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterBottlerMenu.kt @@ -1,7 +1,6 @@ package ru.dbotthepony.mc.otm.menu.matter import com.google.common.collect.ImmutableList -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.matter.MatterBottlerBlockEntity @@ -14,7 +13,7 @@ import ru.dbotthepony.mc.otm.menu.input.BooleanInputWithFeedback import ru.dbotthepony.mc.otm.menu.widget.LevelGaugeWidget import ru.dbotthepony.mc.otm.menu.widget.ProgressGaugeWidget import ru.dbotthepony.mc.otm.menu.MatteryPoweredMenu -import ru.dbotthepony.mc.otm.menu.MatterySlot +import ru.dbotthepony.mc.otm.menu.MatteryMenuSlot import ru.dbotthepony.mc.otm.menu.makeSlots import ru.dbotthepony.mc.otm.menu.makeUpgradeSlots import ru.dbotthepony.mc.otm.menu.widget.ProfiledLevelGaugeWidget @@ -29,8 +28,8 @@ class MatterBottlerMenu( val progressWidget = ProgressGaugeWidget(this) val matterWidget = ProfiledLevelGaugeWidget(this, tile?.matter, LevelGaugeWidget(this, tile?.matter)) - val storageSlots: ImmutableList = makeSlots(CombinedContainer(tile?.bottling ?: SlottedContainer.simple(3), tile?.unbottling ?: SlottedContainer.simple(3))) { it, index -> - object : MatterySlot(it, index) { + val storageSlots: ImmutableList = makeSlots(CombinedContainer(tile?.bottling ?: SlottedContainer.simple(3), tile?.unbottling ?: SlottedContainer.simple(3))) { it, index -> + object : MatteryMenuSlot(it, index) { override fun mayPlace(itemStack: ItemStack): Boolean { val cap = itemStack.getCapability(MatteryCapability.MATTER_ITEM) ?: return false diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterCapacitorBankMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterCapacitorBankMenu.kt index d117c9a07..424e32bda 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterCapacitorBankMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterCapacitorBankMenu.kt @@ -4,7 +4,7 @@ import net.minecraft.world.SimpleContainer import net.minecraft.world.entity.player.Inventory import ru.dbotthepony.mc.otm.core.immutableList import ru.dbotthepony.mc.otm.block.entity.matter.MatterCapacitorBankBlockEntity -import ru.dbotthepony.mc.otm.menu.MatterContainerInputSlot +import ru.dbotthepony.mc.otm.menu.MatterContainerInputMenuSlot import ru.dbotthepony.mc.otm.menu.MatteryMenu import ru.dbotthepony.mc.otm.menu.input.ItemConfigPlayerInput import ru.dbotthepony.mc.otm.menu.widget.LevelGaugeWidget @@ -20,7 +20,7 @@ class MatterCapacitorBankMenu @JvmOverloads constructor( val totalMatterGauge = LevelGaugeWidget(this) val itemConfig = ItemConfigPlayerInput(this, tile?.itemConfig) - val storageSlots: List + val storageSlots: List init { if (tile != null) { @@ -34,7 +34,7 @@ class MatterCapacitorBankMenu @JvmOverloads constructor( val container = tile?.container ?: SimpleContainer(2 * 6) storageSlots = immutableList(2 * 6) { - addStorageSlot(MatterContainerInputSlot(container, it)) + addStorageSlot(MatterContainerInputMenuSlot(container, it)) } addInventorySlots() diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterDecomposerMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterDecomposerMenu.kt index 07b5ef42f..ac81f806b 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterDecomposerMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterDecomposerMenu.kt @@ -8,9 +8,9 @@ import ru.dbotthepony.mc.otm.menu.widget.LevelGaugeWidget import net.minecraft.world.SimpleContainer import net.minecraft.world.item.ItemStack import ru.dbotthepony.mc.otm.matter.MatterManager -import ru.dbotthepony.mc.otm.menu.OutputSlot +import ru.dbotthepony.mc.otm.menu.OutputMenuSlot import ru.dbotthepony.mc.otm.menu.MatteryPoweredMenu -import ru.dbotthepony.mc.otm.menu.MatterySlot +import ru.dbotthepony.mc.otm.menu.MatteryMenuSlot import ru.dbotthepony.mc.otm.menu.input.EnergyConfigPlayerInput import ru.dbotthepony.mc.otm.menu.input.ItemConfigPlayerInput import ru.dbotthepony.mc.otm.menu.makeUpgradeSlots @@ -22,12 +22,12 @@ class MatterDecomposerMenu @JvmOverloads constructor( inventory: Inventory, tile: MatterDecomposerBlockEntity? = null ) : MatteryPoweredMenu(MMenus.MATTER_DECOMPOSER, containerID, inventory, tile) { - val input = object : MatterySlot(tile?.inputContainer ?: SimpleContainer(1), 0) { + val input = object : MatteryMenuSlot(tile?.inputContainer ?: SimpleContainer(1), 0) { override fun mayPlace(itemStack: ItemStack) = MatterManager.canDecompose(itemStack) } - val outputMain: OutputSlot - val outputStacking: OutputSlot + val outputMain: OutputMenuSlot + val outputStacking: OutputMenuSlot val progressWidget = ProgressGaugeWidget(this, tile) val matterWidget = ProfiledLevelGaugeWidget(this, tile?.matter, LevelGaugeWidget(this, tile?.matter)) val itemConfig = ItemConfigPlayerInput(this, tile?.itemConfig) @@ -39,8 +39,8 @@ class MatterDecomposerMenu @JvmOverloads constructor( val container = tile?.outputContainer ?: SimpleContainer(2) // Выход - outputMain = OutputSlot(container, 0) - outputStacking = OutputSlot(container, 1) + outputMain = OutputMenuSlot(container, 0) + outputStacking = OutputMenuSlot(container, 1) addStorageSlot(outputMain) addStorageSlot(outputStacking) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterEntanglerMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterEntanglerMenu.kt index 3a3249333..9ecd5d33d 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterEntanglerMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterEntanglerMenu.kt @@ -14,9 +14,9 @@ import ru.dbotthepony.mc.otm.container.get import ru.dbotthepony.mc.otm.container.set import ru.dbotthepony.mc.otm.core.isNotEmpty import ru.dbotthepony.mc.otm.item.IQuantumLinked -import ru.dbotthepony.mc.otm.menu.OutputSlot +import ru.dbotthepony.mc.otm.menu.OutputMenuSlot import ru.dbotthepony.mc.otm.menu.MatteryPoweredMenu -import ru.dbotthepony.mc.otm.menu.MatterySlot +import ru.dbotthepony.mc.otm.menu.MatteryMenuSlot import ru.dbotthepony.mc.otm.menu.input.EnergyConfigPlayerInput import ru.dbotthepony.mc.otm.menu.input.ItemConfigPlayerInput import ru.dbotthepony.mc.otm.menu.makeSlots @@ -39,12 +39,12 @@ class MatterEntanglerMenu( val progress = ProgressGaugeWidget(this, tile?.jobEventLoops?.get(0)) - val inputs: List = makeSlots(tile?.inputs ?: object : MatteryCraftingContainer(3, 3) { + val inputs: List = makeSlots(tile?.inputs ?: object : MatteryCraftingContainer(3, 3) { override fun getMaxStackSize(): Int { return 1 } }) { it, i -> - object : MatterySlot(it, i) { + object : MatteryMenuSlot(it, i) { override fun mayPlace(itemStack: ItemStack): Boolean { val list = it.toList() list[i] = itemStack @@ -59,7 +59,7 @@ class MatterEntanglerMenu( } } - val outputs = makeSlots(tile?.output ?: SimpleContainer(1)) { a, b -> OutputSlot(a, b) { tile?.experience?.popExperience(player as ServerPlayer) } } + val outputs = makeSlots(tile?.output ?: SimpleContainer(1)) { a, b -> OutputMenuSlot(a, b) { tile?.experience?.popExperience(player as ServerPlayer) } } val upgrades = makeUpgradeSlots(3, tile?.upgrades) val experience = TakeExperienceWidget(this, tile?.experience) @@ -82,15 +82,15 @@ class MatterEntanglerMenu( } } - private inner class EntanglingInputSlot(index: Int) : MatterySlot(entangling, index) { + private inner class EntanglingInputMenuSlot(index: Int) : MatteryMenuSlot(entangling, index) { override fun mayPlace(itemStack: ItemStack): Boolean { return super.mayPlace(itemStack) && itemStack.item is IQuantumLinked } } - val entanglingA: MatterySlot = EntanglingInputSlot(0) - val entanglingB: MatterySlot = EntanglingInputSlot(1) - val entanglingC: MatterySlot = object : MatterySlot(MatteryContainer(1), 0) { + val entanglingA: MatteryMenuSlot = EntanglingInputMenuSlot(0) + val entanglingB: MatteryMenuSlot = EntanglingInputMenuSlot(1) + val entanglingC: MatteryMenuSlot = object : MatteryMenuSlot(MatteryContainer(1), 0) { override fun mayPlace(itemStack: ItemStack): Boolean { return false } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterReconstructorMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterReconstructorMenu.kt index 6b2d5d83a..8af81790f 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterReconstructorMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterReconstructorMenu.kt @@ -5,7 +5,7 @@ import net.minecraft.world.entity.player.Inventory import net.minecraft.world.item.ItemStack 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.MatteryMenuSlot import ru.dbotthepony.mc.otm.menu.input.EnergyConfigPlayerInput import ru.dbotthepony.mc.otm.menu.input.ItemConfigPlayerInput import ru.dbotthepony.mc.otm.menu.makeUpgradeSlots @@ -20,7 +20,7 @@ class MatterReconstructorMenu( tile: MatterReconstructorBlockEntity? = null ) : MatteryPoweredMenu(MMenus.ITEM_REPAIER, containerId, inventory, tile) { val matterWidget = ProfiledLevelGaugeWidget(this, tile?.matter, LevelGaugeWidget(this, tile?.matter)) - val slot = object : MatterySlot(tile?.repairContainer ?: SimpleContainer(1), 0) { + val slot = object : MatteryMenuSlot(tile?.repairContainer ?: SimpleContainer(1), 0) { override fun mayPlace(itemStack: ItemStack): Boolean { return itemStack.isRepairable && itemStack.isDamaged && super.mayPlace(itemStack) } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterRecyclerMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterRecyclerMenu.kt index acc96bfc0..33d4e1e0c 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterRecyclerMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterRecyclerMenu.kt @@ -6,7 +6,7 @@ import net.minecraft.world.item.ItemStack import ru.dbotthepony.mc.otm.block.entity.matter.MatterRecyclerBlockEntity import ru.dbotthepony.mc.otm.item.matter.MatterDustItem import ru.dbotthepony.mc.otm.menu.MatteryPoweredMenu -import ru.dbotthepony.mc.otm.menu.MatterySlot +import ru.dbotthepony.mc.otm.menu.MatteryMenuSlot import ru.dbotthepony.mc.otm.menu.input.EnergyConfigPlayerInput import ru.dbotthepony.mc.otm.menu.input.ItemConfigPlayerInput import ru.dbotthepony.mc.otm.menu.makeUpgradeSlots @@ -20,7 +20,7 @@ class MatterRecyclerMenu @JvmOverloads constructor( inventory: Inventory, tile: MatterRecyclerBlockEntity? = null ) : MatteryPoweredMenu(MMenus.MATTER_RECYCLER, containerID, inventory, tile) { - val input = object : MatterySlot(tile?.container ?: SimpleContainer(1), 0) { + val input = object : MatteryMenuSlot(tile?.container ?: SimpleContainer(1), 0) { override fun mayPlace(itemStack: ItemStack): Boolean { return itemStack.item is MatterDustItem && (itemStack.item as MatterDustItem).getMatterValue(itemStack) != null } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterReplicatorMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterReplicatorMenu.kt index d37fba87d..387c24526 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterReplicatorMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterReplicatorMenu.kt @@ -6,12 +6,11 @@ import net.minecraft.world.entity.player.Inventory 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.container.CombinedContainer import ru.dbotthepony.mc.otm.container.slotted.SlottedContainer import ru.dbotthepony.mc.otm.core.immutableList import ru.dbotthepony.mc.otm.core.isNotEmpty -import ru.dbotthepony.mc.otm.menu.OutputSlot +import ru.dbotthepony.mc.otm.menu.OutputMenuSlot import ru.dbotthepony.mc.otm.menu.MatteryPoweredMenu import ru.dbotthepony.mc.otm.menu.input.EnergyConfigPlayerInput import ru.dbotthepony.mc.otm.menu.input.ItemConfigPlayerInput @@ -27,7 +26,7 @@ class MatterReplicatorMenu @JvmOverloads constructor( ) : MatteryPoweredMenu(MMenus.MATTER_REPLICATOR, p_38852_, inventory, tile) { val matter = ProfiledLevelGaugeWidget(this, tile?.matter, LevelGaugeWidget(this, tile?.matter)) val progress = ProgressGaugeWidget(this, tile) - val storageSlots: List + val storageSlots: List val itemConfig = ItemConfigPlayerInput(this, tile?.itemConfig) val energyConfig = EnergyConfigPlayerInput(this, tile?.energyConfig) val profiledEnergy = ProfiledLevelGaugeWidget(this, tile?.energy, energyWidget) @@ -38,7 +37,7 @@ class MatterReplicatorMenu @JvmOverloads constructor( val container = CombinedContainer(tile?.outputContainer ?: SlottedContainer.simple(3), tile?.dustContainer ?: SlottedContainer.simple(2)) storageSlots = immutableList(5) { - addStorageSlot(OutputSlot(container, it, onTake = { + addStorageSlot(OutputMenuSlot(container, it, onTake = { if (inventory.player is ServerPlayer && it.isNotEmpty) TakeItemOutOfReplicatorTrigger.trigger(inventory.player as ServerPlayer, it) })) } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterScannerMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterScannerMenu.kt index 65a27c4f4..1ab6f917a 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterScannerMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterScannerMenu.kt @@ -10,7 +10,7 @@ import net.minecraft.world.item.ItemStack 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.MatteryMenuSlot import ru.dbotthepony.mc.otm.menu.input.EnergyConfigPlayerInput import ru.dbotthepony.mc.otm.menu.input.ItemConfigPlayerInput import ru.dbotthepony.mc.otm.menu.makeUpgradeSlots @@ -22,7 +22,7 @@ class MatterScannerMenu @JvmOverloads constructor( inventory: Inventory, tile: MatterScannerBlockEntity? = null ) : MatteryPoweredMenu(MMenus.MATTER_SCANNER, p_38852_, inventory, tile) { - val input: MatterySlot + val input: MatteryMenuSlot val progress = ProgressGaugeWidget(this, tile) val patterns = LevelGaugeWidget(this) val itemConfig = ItemConfigPlayerInput(this, tile?.itemConfig) @@ -33,7 +33,7 @@ class MatterScannerMenu @JvmOverloads constructor( init { val container = tile?.container ?: SimpleContainer(1) - input = object : MatterySlot(container, 0, 64, 38) { + input = object : MatteryMenuSlot(container, 0, 64, 38) { override fun mayPlace(itemStack: ItemStack) = MatterManager.canDecompose(itemStack) } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/PatternStorageMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/PatternStorageMenu.kt index 2c21d118a..5f38eccd3 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/PatternStorageMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/PatternStorageMenu.kt @@ -6,7 +6,7 @@ import ru.dbotthepony.mc.otm.core.immutableList 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.PatternMenuSlot import ru.dbotthepony.mc.otm.menu.input.ItemConfigPlayerInput import ru.dbotthepony.mc.otm.menu.widget.LevelGaugeWidget import ru.dbotthepony.mc.otm.registry.game.MMenus @@ -20,7 +20,7 @@ class PatternStorageMenu @JvmOverloads constructor( val storedGrid = LevelGaugeWidget(this) val itemConfig = ItemConfigPlayerInput(this, tile?.itemConfig) - val storageSlots: List + val storageSlots: List init { if (tile != null) { @@ -34,7 +34,7 @@ class PatternStorageMenu @JvmOverloads constructor( val patterns = tile?.container ?: SimpleContainer(2 * 4) storageSlots = immutableList(2 * 4) { - addStorageSlot(PatternSlot(patterns, it)) + addStorageSlot(PatternMenuSlot(patterns, it)) } addInventorySlots() diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/storage/DriveRackMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/storage/DriveRackMenu.kt index 9f9897b6f..9855f5b58 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/storage/DriveRackMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/storage/DriveRackMenu.kt @@ -4,7 +4,7 @@ import net.minecraft.world.SimpleContainer import net.minecraft.world.entity.player.Inventory import ru.dbotthepony.mc.otm.block.entity.storage.DriveRackBlockEntity import ru.dbotthepony.mc.otm.capability.FlowDirection -import ru.dbotthepony.mc.otm.menu.DriveSlot +import ru.dbotthepony.mc.otm.menu.DriveMenuSlot import ru.dbotthepony.mc.otm.menu.MatteryPoweredMenu import ru.dbotthepony.mc.otm.menu.input.EnergyConfigPlayerInput import ru.dbotthepony.mc.otm.menu.input.EnumInputWithFeedback @@ -18,7 +18,7 @@ class DriveRackMenu @JvmOverloads constructor( inventory: Inventory, tile: DriveRackBlockEntity? = null ) : MatteryPoweredMenu(MMenus.DRIVE_RACK, containerId, inventory, tile) { - val storageSlots = makeSlots(tile?.container ?: SimpleContainer(4), ::DriveSlot) + val storageSlots = makeSlots(tile?.container ?: SimpleContainer(4), ::DriveMenuSlot) val energyConfig = EnergyConfigPlayerInput(this, tile?.energyConfig) val profiledEnergy = ProfiledLevelGaugeWidget(this, tile?.energy, energyWidget) val insertPriority = IntInputWithFeedback(this, tile?.let { it::insertPriority }) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/storage/DriveViewerMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/storage/DriveViewerMenu.kt index 994b3811f..8d9121892 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/storage/DriveViewerMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/storage/DriveViewerMenu.kt @@ -17,7 +17,7 @@ import ru.dbotthepony.mc.otm.core.immutableList import ru.dbotthepony.mc.otm.core.util.ItemStorageStackSorter import ru.dbotthepony.mc.otm.item.PortableCondensationDriveItem import ru.dbotthepony.mc.otm.menu.MatteryPoweredMenu -import ru.dbotthepony.mc.otm.menu.MatterySlot +import ru.dbotthepony.mc.otm.menu.MatteryMenuSlot import ru.dbotthepony.mc.otm.menu.data.INetworkedItemViewProvider import ru.dbotthepony.mc.otm.menu.data.NetworkedItemView import ru.dbotthepony.mc.otm.menu.input.BooleanInputWithFeedback @@ -36,7 +36,7 @@ class DriveViewerMenu( ) : MatteryPoweredMenu(MMenus.DRIVE_VIEWER, containerID, inventory, tile), INetworkedItemViewProvider { override val networkedItemView = NetworkedItemView(inventory.player, this, tile == null) - val driveSlot = object : MatterySlot(tile?.container ?: SimpleContainer(1), 0) { + val driveSlot = object : MatteryMenuSlot(tile?.container ?: SimpleContainer(1), 0) { override fun mayPlace(itemStack: ItemStack): Boolean { return itemStack.getCapability(MatteryCapability.CONDENSATION_DRIVE) != null } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/storage/ItemMonitorMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/storage/ItemMonitorMenu.kt index 71c83bc06..54a2d1287 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/storage/ItemMonitorMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/storage/ItemMonitorMenu.kt @@ -16,7 +16,7 @@ import ru.dbotthepony.mc.otm.core.collect.map import ru.dbotthepony.mc.otm.core.collect.reduce import ru.dbotthepony.mc.otm.core.isNotEmpty import ru.dbotthepony.mc.otm.menu.MatteryPoweredMenu -import ru.dbotthepony.mc.otm.menu.MatterySlot +import ru.dbotthepony.mc.otm.menu.MatteryMenuSlot import ru.dbotthepony.mc.otm.menu.data.INetworkedItemViewProvider import ru.dbotthepony.mc.otm.menu.data.NetworkedItemView import ru.dbotthepony.mc.otm.menu.input.BooleanInputWithFeedback @@ -27,7 +27,7 @@ import ru.dbotthepony.mc.otm.registry.game.MMenus import ru.dbotthepony.mc.otm.storage.* import java.util.* -private class ResultSlot(container: Container) : MatterySlot(container, 0) { +private class ResultMenuSlot(container: Container) : MatteryMenuSlot(container, 0) { override fun mayPlace(itemStack: ItemStack): Boolean { return false } @@ -105,16 +105,16 @@ class ItemMonitorMenu( } } - val craftingResult: MatterySlot - val craftingSlots: List + val craftingResult: MatteryMenuSlot + val craftingSlots: List init { if (tile != null) { networkedItemView.component = tile.poweredView } - craftingResult = ResultSlot(tile?.craftingResultContainer ?: SimpleContainer(1)) - craftingSlots = makeSlots(tile?.craftingGrid ?: SimpleContainer(9), ::MatterySlot) + craftingResult = ResultMenuSlot(tile?.craftingResultContainer ?: SimpleContainer(1)) + craftingSlots = makeSlots(tile?.craftingGrid ?: SimpleContainer(9), ::MatteryMenuSlot) craftingSlots.forEach(this::addSlot) addSlot(craftingResult) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/AndroidStationMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/AndroidStationMenu.kt index 9b3f0da7e..6eb9b1ddb 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/AndroidStationMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/AndroidStationMenu.kt @@ -12,7 +12,7 @@ import ru.dbotthepony.mc.otm.capability.MatteryPlayer import ru.dbotthepony.mc.otm.capability.matteryPlayer import ru.dbotthepony.mc.otm.config.MachinesConfig import ru.dbotthepony.mc.otm.menu.MatteryPoweredMenu -import ru.dbotthepony.mc.otm.menu.MatterySlot +import ru.dbotthepony.mc.otm.menu.MatteryMenuSlot import ru.dbotthepony.mc.otm.menu.input.EnergyConfigPlayerInput import ru.dbotthepony.mc.otm.menu.widget.ProfiledLevelGaugeWidget import ru.dbotthepony.mc.otm.registry.game.MMenus @@ -90,7 +90,7 @@ class AndroidStationMenu @JvmOverloads constructor( } } - private inner class AndroidSlot(container: Container, private val condition: (ItemStack) -> Boolean) : MatterySlot(container, 0) { + private inner class AndroidMenuSlot(container: Container, private val condition: (ItemStack) -> Boolean) : MatteryMenuSlot(container, 0) { override fun mayPickup(player: Player): Boolean { if (tile is AndroidStationBlockEntity) { return super.mayPickup(player) && tile.energy.batteryLevel >= MachinesConfig.AndroidStation.ENERGY_PER_OPERATION @@ -108,7 +108,7 @@ class AndroidStationMenu @JvmOverloads constructor( } } - val androidBattery: MatterySlot = AndroidSlot(container { it.androidEnergy::item }) { + val androidBattery: MatteryMenuSlot = AndroidMenuSlot(container { it.androidEnergy::item }) { it.getCapability(Capabilities.EnergyStorage.ITEM) != null } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/BatteryBankMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/BatteryBankMenu.kt index aebd6ad6f..36a469139 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/BatteryBankMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/BatteryBankMenu.kt @@ -6,9 +6,9 @@ import ru.dbotthepony.mc.otm.block.entity.tech.BatteryBankBlockEntity 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.BatterySlot +import ru.dbotthepony.mc.otm.menu.BatteryMenuSlot import ru.dbotthepony.mc.otm.menu.MatteryMenu -import ru.dbotthepony.mc.otm.menu.MatterySlot +import ru.dbotthepony.mc.otm.menu.MatteryMenuSlot import ru.dbotthepony.mc.otm.menu.input.EnergyConfigPlayerInput import ru.dbotthepony.mc.otm.menu.input.EnumInputWithFeedback import ru.dbotthepony.mc.otm.menu.input.ItemConfigPlayerInput @@ -21,7 +21,7 @@ class BatteryBankMenu( tile: BatteryBankBlockEntity? = null, ) : MatteryMenu(MMenus.BATTERY_BANK, p_38852_, inventory, tile) { val powerLevel = ProfiledLevelGaugeWidget(this, tile?.energyConfig?.energy) - val storageSlots: List + val storageSlots: List val redstone = EnumInputWithFeedback(this, RedstoneSetting::class.java) val energyConfig = EnergyConfigPlayerInput(this, allowPull = false, allowPush = true) val itemConfig = ItemConfigPlayerInput(this, allowPull = false, allowPush = false) @@ -36,7 +36,7 @@ class BatteryBankMenu( val container: Container = tile?.container ?: SimpleContainer(BatteryBankBlockEntity.CAPACITY) storageSlots = immutableList(BatteryBankBlockEntity.CAPACITY) { - addStorageSlot(BatterySlot(container, it)) + addStorageSlot(BatteryMenuSlot(container, it)) } addInventorySlots() diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/ChemicalGeneratorMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/ChemicalGeneratorMenu.kt index 33b45a780..f5bffee67 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/ChemicalGeneratorMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/ChemicalGeneratorMenu.kt @@ -9,7 +9,7 @@ import ru.dbotthepony.kommons.util.setValue import ru.dbotthepony.mc.otm.block.entity.RedstoneSetting import ru.dbotthepony.mc.otm.block.entity.tech.ChemicalGeneratorBlockEntity import ru.dbotthepony.mc.otm.menu.MatteryMenu -import ru.dbotthepony.mc.otm.menu.MatterySlot +import ru.dbotthepony.mc.otm.menu.MatteryMenuSlot import ru.dbotthepony.mc.otm.menu.input.EnergyConfigPlayerInput import ru.dbotthepony.mc.otm.menu.input.EnumInputWithFeedback import ru.dbotthepony.mc.otm.menu.input.ItemConfigPlayerInput @@ -30,19 +30,19 @@ class ChemicalGeneratorMenu @JvmOverloads constructor(id: Int, inv: Inventory, t } } - val fuelSlot = object : MatterySlot(tile?.fuelContainer ?: SimpleContainer(1), 0) { + val fuelSlot = object : MatteryMenuSlot(tile?.fuelContainer ?: SimpleContainer(1), 0) { override fun mayPlace(itemStack: ItemStack): Boolean { return itemStack.getBurnTime(null) > 0 } } - val residueSlot = object : MatterySlot(tile?.residueContainer ?: SimpleContainer(1), 0) { + val residueSlot = object : MatteryMenuSlot(tile?.residueContainer ?: SimpleContainer(1), 0) { override fun mayPlace(itemStack: ItemStack): Boolean { return false } } - val batterySlot = object : MatterySlot(tile?.batteryContainer ?: SimpleContainer(1), 0) { + val batterySlot = object : MatteryMenuSlot(tile?.batteryContainer ?: SimpleContainer(1), 0) { override fun mayPlace(itemStack: ItemStack): Boolean { return itemStack.getCapability(Capabilities.EnergyStorage.ITEM)?.canReceive() ?: false } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/CobblerMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/CobblerMenu.kt index 9eb8920b6..272fcc3cb 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/CobblerMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/CobblerMenu.kt @@ -5,7 +5,7 @@ import net.minecraft.world.entity.player.Inventory import ru.dbotthepony.mc.otm.block.entity.RedstoneSetting import ru.dbotthepony.mc.otm.block.entity.tech.CobblerBlockEntity import ru.dbotthepony.mc.otm.core.immutableList -import ru.dbotthepony.mc.otm.menu.OutputSlot +import ru.dbotthepony.mc.otm.menu.OutputMenuSlot import ru.dbotthepony.mc.otm.menu.MatteryMenu import ru.dbotthepony.mc.otm.menu.input.EnumInputWithFeedback import ru.dbotthepony.mc.otm.menu.input.ItemConfigPlayerInput @@ -17,7 +17,7 @@ class CobblerMenu @JvmOverloads constructor( inventory: Inventory, tile: CobblerBlockEntity? = null ) : MatteryMenu(MMenus.COBBLESTONE_GENERATOR, p_38852_, inventory, tile) { - val storageSlots = (tile?.container ?: SimpleContainer(CobblerBlockEntity.CONTAINER_SIZE)).let { c -> immutableList(c.containerSize) { addStorageSlot(OutputSlot(c, it)) } } + val storageSlots = (tile?.container ?: SimpleContainer(CobblerBlockEntity.CONTAINER_SIZE)).let { c -> immutableList(c.containerSize) { addStorageSlot(OutputMenuSlot(c, it)) } } val redstone = EnumInputWithFeedback(this) val itemConfig = ItemConfigPlayerInput(this) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/EnergyHatchMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/EnergyHatchMenu.kt index 94b8e70f8..4a97d460f 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/EnergyHatchMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/EnergyHatchMenu.kt @@ -6,7 +6,7 @@ import net.minecraft.world.entity.player.Inventory import ru.dbotthepony.mc.otm.block.entity.RedstoneSetting import ru.dbotthepony.mc.otm.block.entity.tech.EnergyHatchBlockEntity import ru.dbotthepony.mc.otm.capability.FlowDirection -import ru.dbotthepony.mc.otm.menu.EnergyContainerInputSlot +import ru.dbotthepony.mc.otm.menu.EnergyContainerInputMenuSlot import ru.dbotthepony.mc.otm.menu.MatteryMenu import ru.dbotthepony.mc.otm.menu.input.EnumInputWithFeedback import ru.dbotthepony.mc.otm.menu.makeSlots @@ -22,7 +22,7 @@ class EnergyHatchMenu( val container: Container = tile?.container ?: SimpleContainer(EnergyHatchBlockEntity.CAPACITY) val inputSlots = makeSlots(container) { a, b -> - EnergyContainerInputSlot(a, b, direction = FlowDirection.input(isInput)) + EnergyContainerInputMenuSlot(a, b, direction = FlowDirection.input(isInput)) } val gauge = ProfiledLevelGaugeWidget(this, tile?.energy) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/EnergyServoMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/EnergyServoMenu.kt index 51809ffdb..73b7568d3 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/EnergyServoMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/EnergyServoMenu.kt @@ -7,7 +7,7 @@ import ru.dbotthepony.mc.otm.block.entity.RedstoneSetting 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.MatteryMenuSlot import ru.dbotthepony.mc.otm.menu.input.EnergyConfigPlayerInput import ru.dbotthepony.mc.otm.menu.input.EnumInputWithFeedback import ru.dbotthepony.mc.otm.menu.input.ItemConfigPlayerInput @@ -19,13 +19,13 @@ class EnergyServoMenu @JvmOverloads constructor( inventory: Inventory, tile: EnergyServoBlockEntity? = null ) : MatteryMenu(MMenus.ENERGY_SERVO, p_38852_, inventory, tile) { - val dischargeSlot = object : MatterySlot(tile?.discharge ?: SimpleContainer(1), 0) { + val dischargeSlot = object : MatteryMenuSlot(tile?.discharge ?: SimpleContainer(1), 0) { override fun mayPlace(itemStack: ItemStack): Boolean { return super.mayPlace(itemStack) && (itemStack.energy?.canExtract() ?: false) } } - val chargeSlot = object : MatterySlot(tile?.charge ?: SimpleContainer(1), 0) { + val chargeSlot = object : MatteryMenuSlot(tile?.charge ?: SimpleContainer(1), 0) { override fun mayPlace(itemStack: ItemStack): Boolean { return super.mayPlace(itemStack) && (itemStack.energy?.canReceive() ?: false) } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/EssenceStorageMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/EssenceStorageMenu.kt index 5abc2d3b5..a80d14515 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/EssenceStorageMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/EssenceStorageMenu.kt @@ -13,7 +13,7 @@ import ru.dbotthepony.mc.otm.core.util.getTotalXpRequiredForLevel import ru.dbotthepony.mc.otm.item.consumables.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.MatteryMenuSlot import ru.dbotthepony.mc.otm.menu.input.EnumInputWithFeedback import ru.dbotthepony.mc.otm.menu.input.FluidConfigPlayerInput import ru.dbotthepony.mc.otm.menu.input.ItemConfigPlayerInput @@ -31,19 +31,19 @@ class EssenceStorageMenu( val itemConfig = ItemConfigPlayerInput(this, tile?.itemConfig) val fluidConfig = FluidConfigPlayerInput(this, tile?.fluidConfig) - val capsuleSlot = object : MatterySlot(tile?.capsuleContainer ?: SimpleContainer(1), 0) { + val capsuleSlot = object : MatteryMenuSlot(tile?.capsuleContainer ?: SimpleContainer(1), 0) { override fun mayPlace(itemStack: ItemStack): Boolean { return itemStack.item is EssenceCapsuleItem && super.mayPlace(itemStack) } } - val servoSlot = object : MatterySlot(tile?.servoContainer ?: SimpleContainer(1), 0) { + val servoSlot = object : MatteryMenuSlot(tile?.servoContainer ?: SimpleContainer(1), 0) { override fun mayPlace(itemStack: ItemStack): Boolean { return itemStack.item == MItems.ESSENCE_SERVO && super.mayPlace(itemStack) } } - val mendingSlot = object : MatterySlot(tile?.mendingContainer ?: SimpleContainer(1), 0) { + val mendingSlot = object : MatteryMenuSlot(tile?.mendingContainer ?: SimpleContainer(1), 0) { override fun mayPlace(itemStack: ItemStack): Boolean { return itemStack.isDamaged && EnchantmentHelper.has(itemStack, EnchantmentEffectComponents.REPAIR_WITH_XP) } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/ItemHatchMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/ItemHatchMenu.kt index 620d9f509..eae68b777 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/ItemHatchMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/ItemHatchMenu.kt @@ -8,7 +8,7 @@ import net.minecraft.world.item.ItemStack import ru.dbotthepony.mc.otm.block.entity.RedstoneSetting import ru.dbotthepony.mc.otm.block.entity.tech.ItemHatchBlockEntity import ru.dbotthepony.mc.otm.menu.MatteryMenu -import ru.dbotthepony.mc.otm.menu.UserFilteredSlot +import ru.dbotthepony.mc.otm.menu.UserFilteredMenuSlot import ru.dbotthepony.mc.otm.menu.input.EnumInputWithFeedback import ru.dbotthepony.mc.otm.menu.makeSlots import ru.dbotthepony.mc.otm.registry.game.MMenus @@ -20,8 +20,8 @@ class ItemHatchMenu( tile: ItemHatchBlockEntity? = null ) : MatteryMenu(if (isInput) MMenus.ITEM_INPUT_HATCH else MMenus.ITEM_OUTPUT_HATCH, containerId, inventory, tile) { val actualContainer: Container = tile?.container ?: SimpleContainer(ItemHatchBlockEntity.CAPACITY) - val storageSlots: ImmutableList = makeSlots(actualContainer) { a, b -> - object : UserFilteredSlot(a, b) { + val storageSlots: ImmutableList = makeSlots(actualContainer) { a, b -> + object : UserFilteredMenuSlot(a, b) { override fun mayPlace(itemStack: ItemStack): Boolean { return isInput && super.mayPlace(itemStack) } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/MatterHatchMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/MatterHatchMenu.kt index 94ea8f34e..db04cf5ea 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/MatterHatchMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/MatterHatchMenu.kt @@ -6,7 +6,7 @@ import net.minecraft.world.entity.player.Inventory import ru.dbotthepony.mc.otm.block.entity.RedstoneSetting import ru.dbotthepony.mc.otm.block.entity.tech.MatterHatchBlockEntity import ru.dbotthepony.mc.otm.capability.FlowDirection -import ru.dbotthepony.mc.otm.menu.MatterContainerInputSlot +import ru.dbotthepony.mc.otm.menu.MatterContainerInputMenuSlot import ru.dbotthepony.mc.otm.menu.MatteryMenu import ru.dbotthepony.mc.otm.menu.input.EnumInputWithFeedback import ru.dbotthepony.mc.otm.menu.makeSlots @@ -22,7 +22,7 @@ class MatterHatchMenu( val container: Container = tile?.container ?: SimpleContainer(MatterHatchBlockEntity.CAPACITY) val inputSlots = makeSlots(container) { a, b -> - MatterContainerInputSlot(a, b, direction = FlowDirection.input(isInput)) + MatterContainerInputMenuSlot(a, b, direction = FlowDirection.input(isInput)) } val gauge = ProfiledLevelGaugeWidget(this, tile?.matter) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/PlatePressMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/PlatePressMenu.kt index d1afe3c85..e18661ad1 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/PlatePressMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/PlatePressMenu.kt @@ -8,8 +8,8 @@ import net.minecraft.world.inventory.MenuType import ru.dbotthepony.mc.otm.block.entity.tech.PlatePressBlockEntity import ru.dbotthepony.mc.otm.compat.jei.PlatePressRecipeCategory import ru.dbotthepony.mc.otm.core.immutableList -import ru.dbotthepony.mc.otm.menu.OutputSlot -import ru.dbotthepony.mc.otm.menu.MatterySlot +import ru.dbotthepony.mc.otm.menu.OutputMenuSlot +import ru.dbotthepony.mc.otm.menu.MatteryMenuSlot import ru.dbotthepony.mc.otm.menu.input.BooleanInputWithFeedback import ru.dbotthepony.mc.otm.menu.input.EnergyConfigPlayerInput import ru.dbotthepony.mc.otm.menu.input.ItemConfigPlayerInput @@ -28,8 +28,8 @@ class PlatePressMenu( tile: PlatePressBlockEntity? = null, isTwin: Boolean ) : AbstractProcessingMachineMenu(type, containerID, inventory, tile) { - val inputSlots = makeSlots(tile?.inputContainer ?: SimpleContainer(if (isTwin) 2 else 1), ::MatterySlot) - val outputSlots = makeSlots(tile?.outputContainer ?: SimpleContainer(if (isTwin) 2 else 1)) { a, b -> OutputSlot(a, b) { tile?.experience?.popExperience(player as ServerPlayer) } } + val inputSlots = makeSlots(tile?.inputContainer ?: SimpleContainer(if (isTwin) 2 else 1), ::MatteryMenuSlot) + val outputSlots = makeSlots(tile?.outputContainer ?: SimpleContainer(if (isTwin) 2 else 1)) { a, b -> OutputMenuSlot(a, b) { tile?.experience?.popExperience(player as ServerPlayer) } } val gauges = immutableList(if (isTwin) 2 else 1) { ProgressGaugeWidget(this, tile?.jobEventLoops?.get(it)) } override val itemConfig = ItemConfigPlayerInput(this, tile?.itemConfig, allowPush = true) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/PoweredFurnaceMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/PoweredFurnaceMenu.kt index 8d709e278..85739a185 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/PoweredFurnaceMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/PoweredFurnaceMenu.kt @@ -12,8 +12,8 @@ import ru.dbotthepony.mc.otm.block.entity.tech.PoweredFurnaceBlockEntity import ru.dbotthepony.mc.otm.block.entity.tech.PoweredSmokerBlockEntity import ru.dbotthepony.mc.otm.compat.jei.MicrowaveRecipeCategory import ru.dbotthepony.mc.otm.core.immutableList -import ru.dbotthepony.mc.otm.menu.OutputSlot -import ru.dbotthepony.mc.otm.menu.MatterySlot +import ru.dbotthepony.mc.otm.menu.OutputMenuSlot +import ru.dbotthepony.mc.otm.menu.MatteryMenuSlot import ru.dbotthepony.mc.otm.menu.input.BooleanInputWithFeedback import ru.dbotthepony.mc.otm.menu.input.EnergyConfigPlayerInput import ru.dbotthepony.mc.otm.menu.input.ItemConfigPlayerInput @@ -31,8 +31,8 @@ class PoweredFurnaceMenu( inventory: Inventory, tile: AbstractPoweredFurnaceBlockEntity<*, *>? = null ) : AbstractProcessingMachineMenu(type, containerID, inventory, tile) { - val inputSlots = makeSlots(tile?.inputs ?: SimpleContainer(2), ::MatterySlot) - val outputSlots = makeSlots(tile?.outputs ?: SimpleContainer(2)) { c, s -> OutputSlot(c, s) { tile?.experience?.popExperience(player as ServerPlayer) } } + val inputSlots = makeSlots(tile?.inputs ?: SimpleContainer(2), ::MatteryMenuSlot) + val outputSlots = makeSlots(tile?.outputs ?: SimpleContainer(2)) { c, s -> OutputMenuSlot(c, s) { tile?.experience?.popExperience(player as ServerPlayer) } } val progressGauge = immutableList(2) { ProgressGaugeWidget(this, tile?.jobEventLoops?.get(it)) } override val itemConfig = ItemConfigPlayerInput(this, tile?.itemConfig, allowPush = true)