tooltipmanager

This commit is contained in:
minjaesong
2024-10-11 15:02:11 +09:00
parent 048777a845
commit 60e54c2bc0
29 changed files with 118 additions and 238 deletions

View File

@@ -213,9 +213,6 @@ class UIAlloyingFurnace(val smelter: FixtureAlloyingFurnace) : UICanvas(
playerThings.setGetInventoryFun { INGAME.actorNowPlaying!!.inventory }
itemListUpdate()
UIItemInventoryCellCommonRes.tooltipShowing.clear()
INGAME.setTooltipMessage(null)
}
@@ -449,8 +446,6 @@ class UIAlloyingFurnace(val smelter: FixtureAlloyingFurnace) : UICanvas(
override fun endClosing(delta: Float) {
super.endClosing(delta)
UIItemInventoryCellCommonRes.tooltipShowing.clear()
INGAME.setTooltipMessage(null) // required!
}
override fun dispose() {

View File

@@ -15,7 +15,6 @@ import net.torvald.terrarum.modulebasegame.gameactors.ActorInventory
import net.torvald.terrarum.modulebasegame.gameactors.CraftingStation
import net.torvald.terrarum.modulebasegame.gameactors.FixtureInventory
import net.torvald.terrarum.modulebasegame.gameactors.InventoryPair
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes.tooltipShowing
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryItemGrid.Companion.listGap
import net.torvald.terrarum.modulebasegame.ui.UITemplateHalfInventory.Companion.INVENTORY_NAME_TEXT_GAP
import net.torvald.terrarum.ui.*
@@ -455,9 +454,6 @@ class UICraftingWorkbench(val inventoryUI: UIInventoryFull?, val parentContainer
super.show()
tooltipShowing.clear()
INGAME.setTooltipMessage(null)
resetUI()
}
@@ -518,15 +514,11 @@ class UICraftingWorkbench(val inventoryUI: UIInventoryFull?, val parentContainer
override fun endOpening(delta: Float) {
super.endOpening(delta)
tooltipShowing.clear()
INGAME.setTooltipMessage(null) // required!
}
override fun endClosing(delta: Float) {
super.endClosing(delta)
resetUI()
tooltipShowing.clear()
INGAME.setTooltipMessage(null) // required!
}

View File

@@ -16,7 +16,6 @@ import net.torvald.terrarum.langpack.Lang
import net.torvald.terrarum.modulebasegame.gameactors.ActorInventory
import net.torvald.terrarum.modulebasegame.gameactors.FixtureInventory
import net.torvald.terrarum.modulebasegame.gameitems.ItemTextSignCopper
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes.tooltipShowing
import net.torvald.terrarum.ui.*
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
import net.torvald.unicode.TIMES
@@ -215,8 +214,6 @@ class UIEngravingTextSign : UICanvas(
override fun show() {
super.show()
tooltipShowing.clear()
INGAME.setTooltipMessage(null)
resetUI()
}
@@ -286,15 +283,11 @@ class UIEngravingTextSign : UICanvas(
override fun endOpening(delta: Float) {
super.endOpening(delta)
tooltipShowing.clear()
INGAME.setTooltipMessage(null) // required!
}
override fun endClosing(delta: Float) {
super.endClosing(delta)
resetUI()
tooltipShowing.clear()
INGAME.setTooltipMessage(null) // required!
}
}

View File

@@ -6,7 +6,6 @@ import com.badlogic.gdx.graphics.OrthographicCamera
import com.badlogic.gdx.graphics.g2d.SpriteBatch
import net.torvald.terrarum.*
import net.torvald.terrarum.langpack.Lang
import net.torvald.terrarum.modulebasegame.gameactors.ActorHumanoid
import net.torvald.terrarum.modulebasegame.gameactors.ActorInventory
import net.torvald.terrarum.modulebasegame.gameactors.DroppedItem
import net.torvald.terrarum.modulebasegame.gameactors.FixtureInventory
@@ -14,9 +13,7 @@ import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.CELLS_HO
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.CELLS_VRT
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.INVENTORY_CELLS_OFFSET_X
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.INVENTORY_CELLS_OFFSET_Y
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.controlHelpHeight
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.internalWidth
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes.tooltipShowing
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryItemGrid.Companion.createInvCellGenericKeyDownFun
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryItemGrid.Companion.createInvCellGenericTouchDownFun
import net.torvald.terrarum.ui.Toolkit
@@ -77,10 +74,10 @@ internal class UIInventoryCells(
"${(actorInventory.capacity * 100L).toLong() / 100.0}"
INGAME.setTooltipMessage("$capaStr/${actorInventory.maxCapacityByActor}")
tooltipShowing[10001] = true
TooltipManager.tooltipShowing[10001] = true
}
else {
tooltipShowing[10001] = false
TooltipManager.tooltipShowing[10001] = false
}
}
}
@@ -179,19 +176,6 @@ internal class UIInventoryCells(
UIInventoryCells.drawEncumbranceBar(batch, encumbBarXPos, encumbBarYPos, encumbrancePerc, full.actor.inventory)
}
override fun show() {
super.show()
tooltipShowing.clear()
INGAME.setTooltipMessage(null)
}
override fun endClosing(delta: Float) {
super.endClosing(delta)
tooltipShowing.clear()
INGAME.setTooltipMessage(null)
}
override fun dispose() {
itemList.dispose()
equipped.dispose()

View File

@@ -1,23 +1,15 @@
package net.torvald.terrarum.modulebasegame.ui
import com.badlogic.gdx.graphics.Camera
import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.graphics.OrthographicCamera
import com.badlogic.gdx.graphics.g2d.SpriteBatch
import net.torvald.terrarum.*
import net.torvald.terrarum.App.printdbg
import net.torvald.terrarum.Terrarum.getPlayerSaveFiledesc
import net.torvald.terrarum.Terrarum.getWorldSaveFiledesc
import net.torvald.terrarum.gameactors.AVKey
import net.torvald.terrarum.gamecontroller.TerrarumKeyboardEvent
import net.torvald.terrarum.langpack.Lang
import net.torvald.terrarum.modulebasegame.TerrarumIngame
import net.torvald.terrarum.modulebasegame.TitleScreen
import net.torvald.terrarum.modulebasegame.gameactors.IngamePlayer
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.INVENTORY_CELLS_OFFSET_Y
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.INVENTORY_CELLS_UI_HEIGHT
import net.torvald.terrarum.modulebasegame.serialise.WriteSavegame
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes.tooltipShowing
import net.torvald.terrarum.serialise.WriteConfig
import net.torvald.terrarum.ui.Toolkit
import net.torvald.terrarum.ui.UICanvas
@@ -305,8 +297,6 @@ class UIInventoryEscMenu(val full: UIInventoryFull) : UICanvas() {
override fun show() {
super.show()
tooltipShowing.clear()
INGAME.setTooltipMessage(null)
toInitScreen()
}
@@ -379,8 +369,6 @@ class UIInventoryEscMenu(val full: UIInventoryFull) : UICanvas() {
override fun endClosing(delta: Float) {
super.endClosing(delta)
screen = 0
tooltipShowing.clear()
INGAME.setTooltipMessage(null)
}
override fun hide() {

View File

@@ -12,7 +12,6 @@ import net.torvald.terrarum.audio.dsp.Lowpass
import net.torvald.terrarum.gameitems.GameItem
import net.torvald.terrarum.langpack.Lang
import net.torvald.terrarum.modulebasegame.gameactors.ActorHumanoid
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes.tooltipShowing
import net.torvald.terrarum.ui.*
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
import net.torvald.unicode.*
@@ -327,12 +326,6 @@ class UIInventoryFull(
it.setAsOpen()
}
override fun show() {
super.show()
tooltipShowing.clear()
INGAME.setTooltipMessage(null)
}
internal var offsetX = ((width - internalWidth) / 2).toFloat()
private set
internal var offsetY = ((App.scr.height - internalHeight) / 2).toFloat()
@@ -427,10 +420,6 @@ class UIInventoryFull(
INGAME.setTooltipMessage(null) // required!
// MinimapComposer.revalidateAll()
tooltipShowing.clear()
// printdbg(this, "Clearing out tooltipShowing")
shouldIFadeIn = null
}

View File

@@ -45,8 +45,6 @@ abstract class UIItemInventoryCellBase(
override var suppressHaptic = false
protected val tooltipHash = System.nanoTime()
/** Custom highlight rule to highlight tihs button to primary accent colour (blue by default).
* Set to `null` to use default rule:
*
@@ -128,13 +126,6 @@ object UIItemInventoryCellCommonRes {
Color.WHITE,
Toolkit.Theme.COL_CELL_FILL
)
/**
* Special hash values:
* - 10001: Encumbrance bar
* - 10002: Pickaxe
*/
val tooltipShowing = HashMap<Long, Boolean>() // Long: `hash` field on UIItemInventoryItemGrid
}
data class InventoryCellColourTheme(

View File

@@ -5,10 +5,7 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch
import net.torvald.terrarum.*
import net.torvald.terrarum.gameitems.ItemID
import net.torvald.terrarum.langpack.Lang
import net.torvald.terrarum.modulebasegame.gameactors.FixtureInventory
import net.torvald.terrarum.modulebasegame.gameactors.FixtureJukebox
import net.torvald.terrarum.modulebasegame.gameitems.ItemFileRef
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes.tooltipShowing
import net.torvald.terrarum.ui.*
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
import net.torvald.unicode.getKeycapPC
@@ -77,8 +74,6 @@ class UIJukebox : UICanvas(
override fun show() {
super.show()
transitionPanel.show()
tooltipShowing.clear()
INGAME.setTooltipMessage(null)
}
override fun hide() {
@@ -120,16 +115,6 @@ class UIJukebox : UICanvas(
INGAME.setTooltipMessage(null)
}
override fun endOpening(delta: Float) {
super.endOpening(delta)
}
override fun endClosing(delta: Float) {
super.endClosing(delta)
tooltipShowing.clear()
INGAME.setTooltipMessage(null) // required!
}
override fun dispose() {
}

View File

@@ -11,7 +11,6 @@ import net.torvald.terrarum.modulebasegame.gameactors.FixtureSmelterBasic
import net.torvald.terrarum.modulebasegame.gameactors.InventoryPair
import net.torvald.terrarum.modulebasegame.ui.SmelterGuiEventBuilder.PRODUCT_SLOT
import net.torvald.terrarum.modulebasegame.ui.SmelterGuiEventBuilder.SLOT_INDEX_STRIDE
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes.tooltipShowing
import net.torvald.terrarum.ui.*
import net.torvald.terrarum.ui.UIItemCatBar.Companion.FILTER_CAT_ALL
import net.torvald.terrarum.ui.UIItemInventoryElemWide.Companion.UNIQUE_ITEM_HAS_NO_AMOUNT
@@ -207,9 +206,6 @@ class UISmelterBasic(val smelter: FixtureSmelterBasic) : UICanvas(
playerThings.setGetInventoryFun { INGAME.actorNowPlaying!!.inventory }
itemListUpdate()
tooltipShowing.clear()
INGAME.setTooltipMessage(null)
}
override fun updateImpl(delta: Float) {
@@ -436,8 +432,7 @@ class UISmelterBasic(val smelter: FixtureSmelterBasic) : UICanvas(
override fun endClosing(delta: Float) {
super.endClosing(delta)
tooltipShowing.clear()
INGAME.setTooltipMessage(null) // required!
clearTooltip()
}
override fun dispose() {

View File

@@ -4,19 +4,14 @@ import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.graphics.OrthographicCamera
import com.badlogic.gdx.graphics.g2d.SpriteBatch
import net.torvald.terrarum.*
import net.torvald.terrarum.App.printdbg
import net.torvald.terrarum.gameactors.AVKey
import net.torvald.terrarum.gameitems.GameItem
import net.torvald.terrarum.langpack.Lang
import net.torvald.terrarum.modulebasegame.gameactors.ActorInventory
import net.torvald.terrarum.modulebasegame.gameactors.FixtureInventory
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.getWidthOfCells
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes.tooltipShowing
import net.torvald.terrarum.ui.*
import net.torvald.unicode.getKeycapPC
import net.torvald.unicode.getMouseButton
import kotlin.math.max
import kotlin.math.min
/**
* Created by minjaesong on 2019-07-08.
@@ -190,9 +185,6 @@ internal class UIStorageChest : UICanvas(
itemListPlayer.itemList.getInventory = { INGAME.actorNowPlaying!!.inventory }
itemListUpdate()
tooltipShowing.clear()
INGAME.setTooltipMessage(null)
}
private fun itemListUpdate() {
@@ -313,17 +305,6 @@ internal class UIStorageChest : UICanvas(
INGAME.setTooltipMessage(null)
}
override fun endOpening(delta: Float) {
super.endOpening(delta)
}
override fun endClosing(delta: Float) {
super.endClosing(delta)
tooltipShowing.clear()
INGAME.setTooltipMessage(null) // required!
}
override fun dispose() {
}
}

View File

@@ -1,15 +1,9 @@
package net.torvald.terrarum.modulebasegame.ui
import com.badlogic.gdx.graphics.Camera
import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.graphics.OrthographicCamera
import com.badlogic.gdx.graphics.g2d.SpriteBatch
import net.torvald.terrarum.App
import net.torvald.terrarum.App.printdbg
import net.torvald.terrarum.INGAME
import net.torvald.terrarum.Second
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes.tooltipShowing
import net.torvald.terrarum.*
import net.torvald.terrarum.ui.Toolkit
import net.torvald.terrarum.ui.UICanvas
import net.torvald.terrarum.ui.UINotControllable
@@ -105,11 +99,34 @@ class UITooltip : UICanvas() {
override fun updateImpl(delta: Float) {
setPosition(Terrarum.mouseScreenX, Terrarum.mouseScreenY)
if (isVisible && tooltipShowing.values.all { !it }) {
if (isVisible && (TooltipManager.tooltipShowing.isEmpty() || TooltipManager.tooltipShowing.values.all { !it })) {
INGAME.setTooltipMessage(null)
}
}
override fun endOpening(delta: Float) {
handler.opacity = 1f
// Tooltip must not acquire control of itself
}
override fun endClosing(delta: Float) {
handler.opacity = 0f
// Tooltip must not acquire control of itself
}
override fun show() {
openingClickLatched = true
// Tooltip must not acquire control of itself
uiItems.forEach { it.show() }
handler.subUIs.forEach { it.show() }
}
override fun hide() {
uiItems.forEach { it.hide() }
handler.subUIs.forEach { it.hide() }
openingClickLatched = true // just in case `justOpened` detection fails
}
override fun dispose() {
}

View File

@@ -1,6 +1,5 @@
package net.torvald.terrarum.modulebasegame.ui
import com.badlogic.gdx.graphics.Camera
import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.graphics.OrthographicCamera
import com.badlogic.gdx.graphics.g2d.SpriteBatch
@@ -8,7 +7,6 @@ import net.torvald.terrarum.*
import net.torvald.terrarum.gameworld.WorldTime
import net.torvald.terrarum.gameworld.WorldTime.Companion.MONTH_LENGTH
import net.torvald.terrarum.langpack.Lang
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes.tooltipShowing
import net.torvald.terrarum.ui.Toolkit
import net.torvald.terrarum.ui.UICanvas
import net.torvald.unicode.getKeycapPC
@@ -358,25 +356,11 @@ class UIWallCalendar : UICanvas(
override fun doOpening(delta: Float) {
super.doOpening(delta)
INGAME.pause()
INGAME.setTooltipMessage(null)
}
override fun doClosing(delta: Float) {
super.doClosing(delta)
INGAME.resume()
INGAME.setTooltipMessage(null)
}
override fun endOpening(delta: Float) {
super.endOpening(delta)
tooltipShowing.clear()
INGAME.setTooltipMessage(null) // required!
}
override fun endClosing(delta: Float) {
super.endClosing(delta)
tooltipShowing.clear()
INGAME.setTooltipMessage(null) // required!
}
override fun dispose() {

View File

@@ -1,12 +1,10 @@
package net.torvald.terrarum.modulebasegame.ui
import com.badlogic.gdx.graphics.Camera
import com.badlogic.gdx.graphics.OrthographicCamera
import com.badlogic.gdx.graphics.g2d.SpriteBatch
import com.jme3.math.FastMath
import net.torvald.terrarum.*
import net.torvald.terrarum.gameactors.AVKey
import net.torvald.terrarum.gamecontroller.TerrarumKeyboardEvent
import net.torvald.terrarum.langpack.Lang
import net.torvald.terrarum.modulebasegame.gameactors.FixtureWorldPortal
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.INVENTORY_CELLS_OFFSET_Y
@@ -14,12 +12,11 @@ import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.YPOS_COR
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.drawBackground
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.internalHeight
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.internalWidth
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes.tooltipShowing
import net.torvald.terrarum.serialise.toAscii85
import net.torvald.terrarum.ui.*
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
import net.torvald.unicode.getKeycapPC
import java.util.UUID
import java.util.*
/**
* Structure:
@@ -186,15 +183,11 @@ class UIWorldPortal : UICanvas(
override fun endOpening(delta: Float) {
super.endOpening(delta)
transitionPanel.uis.forEach { it.opacity = FastMath.pow(opacity, 0.5f) }
tooltipShowing.clear()
INGAME.setTooltipMessage(null) // required!
}
override fun endClosing(delta: Float) {
super.endClosing(delta)
transitionPanel.uis.forEach { it.opacity = FastMath.pow(opacity, 0.5f) }
tooltipShowing.clear()
INGAME.setTooltipMessage(null) // required!
}
}

View File

@@ -9,11 +9,8 @@ import net.torvald.terrarum.gameitems.GameItem
import net.torvald.terrarum.langpack.Lang
import net.torvald.terrarum.modulebasegame.gameactors.ActorInventory
import net.torvald.terrarum.modulebasegame.gameactors.FixtureInventory
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes.tooltipShowing
import net.torvald.terrarum.ui.*
import net.torvald.unicode.getKeycapPC
import kotlin.math.max
import kotlin.math.min
class UIWorldPortalCargo(val full: UIWorldPortal) : UICanvas(), HasInventory {
@@ -145,9 +142,6 @@ class UIWorldPortalCargo(val full: UIWorldPortal) : UICanvas(), HasInventory {
itemListPlayer.getInventory = { INGAME.actorNowPlaying!!.inventory }
itemListUpdate()
tooltipShowing.clear()
INGAME.setTooltipMessage(null)
}
private fun itemListUpdate() {
@@ -242,8 +236,6 @@ class UIWorldPortalCargo(val full: UIWorldPortal) : UICanvas(), HasInventory {
}
override fun endClosing(delta: Float) {
tooltipShowing.clear()
INGAME.setTooltipMessage(null) // required!
}

View File

@@ -13,7 +13,6 @@ import net.torvald.terrarum.langpack.Lang
import net.torvald.terrarum.modulebasegame.gameactors.FixtureWorldPortal
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.INVENTORY_CELLS_OFFSET_Y
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.getCellCountVertically
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes.tooltipShowing
import net.torvald.terrarum.realestate.LandUtil.CHUNK_H
import net.torvald.terrarum.realestate.LandUtil.CHUNK_W
import net.torvald.terrarum.savegame.*
@@ -521,16 +520,6 @@ class UIWorldPortalListing(val full: UIWorldPortal) : UICanvas() {
INGAME.setTooltipMessage(null)
}
override fun endOpening(delta: Float) {
super.endOpening(delta)
}
override fun endClosing(delta: Float) {
super.endClosing(delta)
tooltipShowing.clear()
INGAME.setTooltipMessage(null) // required!
}
}