exopack curios inventory button

This commit is contained in:
YuRaNnNzZZ 2023-07-14 22:25:48 +03:00
parent 203f4e56c9
commit 027d6ef65f
Signed by: YuRaNnNzZZ
GPG Key ID: 5F71738C85A6006D
7 changed files with 21 additions and 1 deletions

View File

@ -138,6 +138,7 @@ private fun misc(provider: MatteryLanguageProvider) {
gui("exopack", "Exopack Inventory") gui("exopack", "Exopack Inventory")
gui("exopack.go_back", "Open vanilla inventory") gui("exopack.go_back", "Open vanilla inventory")
gui("exopack.go_in", "Open Exopack inventory") gui("exopack.go_in", "Open Exopack inventory")
gui("exopack.go_curios", "Open Curios inventory")
gui("exopack.toggle_visibility", "Toggle Exopack visibility") gui("exopack.toggle_visibility", "Toggle Exopack visibility")
gui("exopack.probe1", "This little device feels unnatural to touch, it is almost certainly resilient to any possible attempt to break it open.") gui("exopack.probe1", "This little device feels unnatural to touch, it is almost certainly resilient to any possible attempt to break it open.")

View File

@ -146,6 +146,7 @@ private fun misc(provider: MatteryLanguageProvider) {
gui("exopack", "Инвентарь Экзопака") gui("exopack", "Инвентарь Экзопака")
gui("exopack.go_back", "Открыть обычный инвентарь") gui("exopack.go_back", "Открыть обычный инвентарь")
gui("exopack.go_in", "Открыть инвентарь экзопака") gui("exopack.go_in", "Открыть инвентарь экзопака")
gui("exopack.go_curios", "Открыть инвентарь Curios")
gui("exopack.toggle_visibility", "Переключить отображение Экзопака") gui("exopack.toggle_visibility", "Переключить отображение Экзопака")
gui("exopack.probe1", "Данное маленькое устройство необычно на ощупь, а так же неприступно для любых попыток вскрыть.") gui("exopack.probe1", "Данное маленькое устройство необычно на ощупь, а так же неприступно для любых попыток вскрыть.")

View File

@ -51,6 +51,7 @@ object Widgets18 {
val CROSS = miscGrid.next() val CROSS = miscGrid.next()
val FORWARD_SLASH = miscGrid.next() val FORWARD_SLASH = miscGrid.next()
val RETURN_ARROW_LEFT = miscGrid.next() val RETURN_ARROW_LEFT = miscGrid.next()
val CURIOS_INVENTORY = miscGrid.next()
private val slotBgGrid = WidgetLocation.SLOT_BACKGROUNDS.grid(4, 4) private val slotBgGrid = WidgetLocation.SLOT_BACKGROUNDS.grid(4, 4)

View File

@ -23,6 +23,8 @@ import ru.dbotthepony.mc.otm.client.screen.widget.ProgressGaugePanel
import ru.dbotthepony.mc.otm.client.screen.widget.TallHorizontalProfiledPowerGaugePanel import ru.dbotthepony.mc.otm.client.screen.widget.TallHorizontalProfiledPowerGaugePanel
import ru.dbotthepony.mc.otm.client.setMousePos import ru.dbotthepony.mc.otm.client.setMousePos
import ru.dbotthepony.mc.otm.client.shouldOpenVanillaInventory import ru.dbotthepony.mc.otm.client.shouldOpenVanillaInventory
import ru.dbotthepony.mc.otm.compat.curios.isCuriosLoaded
import ru.dbotthepony.mc.otm.compat.curios.openCuriosScreen
import ru.dbotthepony.mc.otm.core.math.integerDivisionDown import ru.dbotthepony.mc.otm.core.math.integerDivisionDown
import ru.dbotthepony.mc.otm.menu.ExoPackInventoryMenu import ru.dbotthepony.mc.otm.menu.ExoPackInventoryMenu
import ru.dbotthepony.mc.otm.network.ExoPackMenuOpen import ru.dbotthepony.mc.otm.network.ExoPackMenuOpen
@ -235,7 +237,7 @@ class ExoPackInventoryScreen(menu: ExoPackInventoryMenu) : MatteryScreen<ExoPack
scrollPanel.dock = Dock.RIGHT scrollPanel.dock = Dock.RIGHT
scrollPanel.setDockMargin(right = 3f) scrollPanel.setDockMargin(right = 3f)
LargeRectangleButtonPanel(this, frame, x = frame.width - 2f - LargeRectangleButtonPanel.SIZE, y = -LargeRectangleButtonPanel.SIZE - 2f, skinElement = Widgets18.RETURN_ARROW_LEFT, onPress = { val closeButtonPanel = LargeRectangleButtonPanel(this, frame, x = frame.width - 2f - LargeRectangleButtonPanel.SIZE, y = -LargeRectangleButtonPanel.SIZE - 2f, skinElement = Widgets18.RETURN_ARROW_LEFT, onPress = {
shouldOpenVanillaInventory = true shouldOpenVanillaInventory = true
val minecraft = minecraft!! val minecraft = minecraft!!
@ -247,6 +249,12 @@ class ExoPackInventoryScreen(menu: ExoPackInventoryMenu) : MatteryScreen<ExoPack
setMousePos(mouseX, mouseY) setMousePos(mouseX, mouseY)
}).also { it.tooltips.add(TranslatableComponent("otm.gui.exopack.go_back")) } }).also { it.tooltips.add(TranslatableComponent("otm.gui.exopack.go_back")) }
if (isCuriosLoaded) {
LargeRectangleButtonPanel(this, frame, x = closeButtonPanel.x - 2f - LargeRectangleButtonPanel.SIZE, y = closeButtonPanel.y, skinElement = Widgets18.CURIOS_INVENTORY, onPress = {
openCuriosScreen(minecraft!!.player!!.containerMenu.carried)
}).also { it.tooltips.add(TranslatableComponent("otm.gui.exopack.go_curios")) }
}
makeInventoryRowsControls(frame, frame.width + 2f, frame.height.coerceAtMost(95f)) { movePixels -> makeInventoryRowsControls(frame, frame.width + 2f, frame.height.coerceAtMost(95f)) { movePixels ->
frame.y += movePixels frame.y += movePixels
moveMousePosScaled(y = movePixels) moveMousePosScaled(y = movePixels)

View File

@ -4,7 +4,10 @@ import com.google.common.collect.Streams
import net.minecraft.world.entity.player.Player import net.minecraft.world.entity.player.Player
import net.minecraft.world.inventory.Slot import net.minecraft.world.inventory.Slot
import net.minecraft.world.item.ItemStack import net.minecraft.world.item.ItemStack
import net.minecraftforge.api.distmarker.Dist
import net.minecraftforge.fml.ModList import net.minecraftforge.fml.ModList
import net.minecraftforge.fml.loading.FMLEnvironment
import net.minecraftforge.network.PacketDistributor
import ru.dbotthepony.mc.otm.capability.MatteryCapability import ru.dbotthepony.mc.otm.capability.MatteryCapability
import ru.dbotthepony.mc.otm.capability.matteryPlayer import ru.dbotthepony.mc.otm.capability.matteryPlayer
import ru.dbotthepony.mc.otm.container.awareStream import ru.dbotthepony.mc.otm.container.awareStream
@ -16,6 +19,8 @@ import top.theillusivec4.curios.api.CuriosApi
import top.theillusivec4.curios.api.event.SlotModifiersUpdatedEvent import top.theillusivec4.curios.api.event.SlotModifiersUpdatedEvent
import top.theillusivec4.curios.common.inventory.CosmeticCurioSlot import top.theillusivec4.curios.common.inventory.CosmeticCurioSlot
import top.theillusivec4.curios.common.inventory.CurioSlot import top.theillusivec4.curios.common.inventory.CurioSlot
import top.theillusivec4.curios.common.network.NetworkHandler
import top.theillusivec4.curios.common.network.client.CPacketOpenCurios
import java.util.stream.Stream import java.util.stream.Stream
import kotlin.collections.ArrayList import kotlin.collections.ArrayList
@ -28,6 +33,10 @@ fun onCuriosSlotModifiersUpdated(event: SlotModifiersUpdatedEvent) {
event.entity.matteryPlayer?.recreateExoPackMenu() event.entity.matteryPlayer?.recreateExoPackMenu()
} }
fun openCuriosScreen(carriedStack: ItemStack = ItemStack.EMPTY) {
if (FMLEnvironment.dist.isClient) NetworkHandler.INSTANCE.send(PacketDistributor.SERVER.noArg(), CPacketOpenCurios(carriedStack))
}
private fun Player.getCuriosSlotsImpl(): List<PlayerSlot<Slot, Slot>> { private fun Player.getCuriosSlotsImpl(): List<PlayerSlot<Slot, Slot>> {
val handler = getCapability(MatteryCapability.CURIOS_INVENTORY).orNull() ?: return listOf() val handler = getCapability(MatteryCapability.CURIOS_INVENTORY).orNull() ?: return listOf()

Binary file not shown.

Before

Width:  |  Height:  |  Size: 815 B

After

Width:  |  Height:  |  Size: 826 B