mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-06 08:38:30 +09:00
fix: old tooltip managing code and revived the fading transition
This commit is contained in:
@@ -416,10 +416,12 @@ open class IngameInstance(val batch: FlippingSpriteBatch, val isMultiplayer: Boo
|
|||||||
open fun setTooltipMessage(message: String?) {
|
open fun setTooltipMessage(message: String?) {
|
||||||
if (message == null) {
|
if (message == null) {
|
||||||
uiTooltip.setAsClose()
|
uiTooltip.setAsClose()
|
||||||
|
// printdbg(this, "Tooltip close!")
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (uiTooltip.isClosed || uiTooltip.isClosing) {
|
if (uiTooltip.isClosed || uiTooltip.isClosing) {
|
||||||
uiTooltip.setAsOpen()
|
uiTooltip.setAsOpen()
|
||||||
|
// printdbg(this, "Tooltip open!")
|
||||||
}
|
}
|
||||||
uiTooltip.message = message
|
uiTooltip.message = message
|
||||||
|
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import net.torvald.terrarum.langpack.Lang
|
|||||||
import net.torvald.terrarum.modulebasegame.gameactors.CraftingStation
|
import net.torvald.terrarum.modulebasegame.gameactors.CraftingStation
|
||||||
import net.torvald.terrarum.modulebasegame.gameactors.FixtureInventory
|
import net.torvald.terrarum.modulebasegame.gameactors.FixtureInventory
|
||||||
import net.torvald.terrarum.modulebasegame.gameactors.InventoryPair
|
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.UIItemInventoryItemGrid.Companion.listGap
|
||||||
import net.torvald.terrarum.modulebasegame.ui.UITemplateHalfInventory.Companion.INVENTORY_NAME_TEXT_GAP
|
import net.torvald.terrarum.modulebasegame.ui.UITemplateHalfInventory.Companion.INVENTORY_NAME_TEXT_GAP
|
||||||
import net.torvald.terrarum.ui.*
|
import net.torvald.terrarum.ui.*
|
||||||
@@ -402,7 +403,7 @@ class UICrafting(val full: UIInventoryFull?) : UICanvas(
|
|||||||
|
|
||||||
openingClickLatched = Terrarum.mouseDown
|
openingClickLatched = Terrarum.mouseDown
|
||||||
|
|
||||||
UIItemInventoryItemGrid.tooltipShowing.clear()
|
tooltipShowing.clear()
|
||||||
INGAME.setTooltipMessage(null)
|
INGAME.setTooltipMessage(null)
|
||||||
|
|
||||||
resetUI()
|
resetUI()
|
||||||
@@ -476,14 +477,14 @@ class UICrafting(val full: UIInventoryFull?) : UICanvas(
|
|||||||
|
|
||||||
override fun endOpening(delta: Float) {
|
override fun endOpening(delta: Float) {
|
||||||
super.endOpening(delta)
|
super.endOpening(delta)
|
||||||
UIItemInventoryItemGrid.tooltipShowing.clear()
|
tooltipShowing.clear()
|
||||||
INGAME.setTooltipMessage(null) // required!
|
INGAME.setTooltipMessage(null) // required!
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun endClosing(delta: Float) {
|
override fun endClosing(delta: Float) {
|
||||||
super.endClosing(delta)
|
super.endClosing(delta)
|
||||||
resetUI()
|
resetUI()
|
||||||
UIItemInventoryItemGrid.tooltipShowing.clear()
|
tooltipShowing.clear()
|
||||||
INGAME.setTooltipMessage(null) // required!
|
INGAME.setTooltipMessage(null) // required!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.INVENTOR
|
|||||||
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.INVENTORY_CELLS_OFFSET_Y
|
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.controlHelpHeight
|
||||||
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.internalWidth
|
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.createInvCellGenericKeyDownFun
|
||||||
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryItemGrid.Companion.createInvCellGenericTouchDownFun
|
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryItemGrid.Companion.createInvCellGenericTouchDownFun
|
||||||
import net.torvald.terrarum.ui.Toolkit
|
import net.torvald.terrarum.ui.Toolkit
|
||||||
@@ -173,14 +174,14 @@ internal class UIInventoryCells(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun show() {
|
override fun show() {
|
||||||
UIItemInventoryItemGrid.tooltipShowing.clear()
|
tooltipShowing.clear()
|
||||||
INGAME.setTooltipMessage(null)
|
INGAME.setTooltipMessage(null)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
override fun endClosing(delta: Float) {
|
override fun endClosing(delta: Float) {
|
||||||
super.endClosing(delta)
|
super.endClosing(delta)
|
||||||
UIItemInventoryItemGrid.tooltipShowing.clear()
|
tooltipShowing.clear()
|
||||||
INGAME.setTooltipMessage(null)
|
INGAME.setTooltipMessage(null)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ 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_OFFSET_Y
|
||||||
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.INVENTORY_CELLS_UI_HEIGHT
|
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.INVENTORY_CELLS_UI_HEIGHT
|
||||||
import net.torvald.terrarum.modulebasegame.serialise.WriteSavegame
|
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.serialise.WriteConfig
|
||||||
import net.torvald.terrarum.ui.Toolkit
|
import net.torvald.terrarum.ui.Toolkit
|
||||||
import net.torvald.terrarum.ui.UICanvas
|
import net.torvald.terrarum.ui.UICanvas
|
||||||
@@ -281,7 +282,7 @@ class UIInventoryEscMenu(val full: UIInventoryFull) : UICanvas() {
|
|||||||
)
|
)
|
||||||
|
|
||||||
override fun show() {
|
override fun show() {
|
||||||
UIItemInventoryItemGrid.tooltipShowing.clear()
|
tooltipShowing.clear()
|
||||||
INGAME.setTooltipMessage(null)
|
INGAME.setTooltipMessage(null)
|
||||||
toInitScreen()
|
toInitScreen()
|
||||||
}
|
}
|
||||||
@@ -355,7 +356,7 @@ class UIInventoryEscMenu(val full: UIInventoryFull) : UICanvas() {
|
|||||||
override fun endClosing(delta: Float) {
|
override fun endClosing(delta: Float) {
|
||||||
super.endClosing(delta)
|
super.endClosing(delta)
|
||||||
screen = 0
|
screen = 0
|
||||||
UIItemInventoryItemGrid.tooltipShowing.clear()
|
tooltipShowing.clear()
|
||||||
INGAME.setTooltipMessage(null)
|
INGAME.setTooltipMessage(null)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import net.torvald.terrarum.audio.decibelsToFullscale
|
|||||||
import net.torvald.terrarum.gameitems.GameItem
|
import net.torvald.terrarum.gameitems.GameItem
|
||||||
import net.torvald.terrarum.langpack.Lang
|
import net.torvald.terrarum.langpack.Lang
|
||||||
import net.torvald.terrarum.modulebasegame.gameactors.ActorHumanoid
|
import net.torvald.terrarum.modulebasegame.gameactors.ActorHumanoid
|
||||||
|
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes.tooltipShowing
|
||||||
import net.torvald.terrarum.ui.*
|
import net.torvald.terrarum.ui.*
|
||||||
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
|
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
|
||||||
import net.torvald.unicode.*
|
import net.torvald.unicode.*
|
||||||
@@ -321,7 +322,7 @@ class UIInventoryFull(
|
|||||||
|
|
||||||
override fun show() {
|
override fun show() {
|
||||||
transitionPanel.show()
|
transitionPanel.show()
|
||||||
UIItemInventoryItemGrid.tooltipShowing.clear()
|
tooltipShowing.clear()
|
||||||
INGAME.setTooltipMessage(null)
|
INGAME.setTooltipMessage(null)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -413,7 +414,7 @@ class UIInventoryFull(
|
|||||||
INGAME.setTooltipMessage(null) // required!
|
INGAME.setTooltipMessage(null) // required!
|
||||||
// MinimapComposer.revalidateAll()
|
// MinimapComposer.revalidateAll()
|
||||||
|
|
||||||
UIItemInventoryItemGrid.tooltipShowing.clear()
|
tooltipShowing.clear()
|
||||||
|
|
||||||
// printdbg(this, "Clearing out tooltipShowing")
|
// printdbg(this, "Clearing out tooltipShowing")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,11 +32,14 @@ abstract class UIItemInventoryCellBase(
|
|||||||
var touchDownFun: (GameItem?, Long, Int, Any?, UIItemInventoryCellBase) -> Unit, // Item, Amount, Button, extra info, self
|
var touchDownFun: (GameItem?, Long, Int, Any?, UIItemInventoryCellBase) -> Unit, // Item, Amount, Button, extra info, self
|
||||||
open var extraInfo: Any?,
|
open var extraInfo: Any?,
|
||||||
open protected val highlightEquippedItem: Boolean = true, // for some UIs that only cares about getting equipped slot number but not highlighting
|
open protected val highlightEquippedItem: Boolean = true, // for some UIs that only cares about getting equipped slot number but not highlighting
|
||||||
var colourTheme: InventoryCellColourTheme = UIItemInventoryCellCommonRes.defaultInventoryCellTheme
|
var colourTheme: InventoryCellColourTheme = UIItemInventoryCellCommonRes.defaultInventoryCellTheme,
|
||||||
|
var showTooltip: Boolean = true,
|
||||||
) : UIItem(parentUI, initialX, initialY) {
|
) : UIItem(parentUI, initialX, initialY) {
|
||||||
abstract override fun update(delta: Float)
|
abstract override fun update(delta: Float)
|
||||||
abstract override fun render(frameDelta: Float, batch: SpriteBatch, camera: OrthographicCamera)
|
abstract override fun render(frameDelta: Float, batch: SpriteBatch, camera: OrthographicCamera)
|
||||||
|
|
||||||
|
protected val hash = System.nanoTime()
|
||||||
|
|
||||||
/** Custom highlight rule to highlight tihs button to primary accent colour (blue by default).
|
/** Custom highlight rule to highlight tihs button to primary accent colour (blue by default).
|
||||||
* Set to `null` to use default rule:
|
* Set to `null` to use default rule:
|
||||||
*
|
*
|
||||||
@@ -110,6 +113,8 @@ object UIItemInventoryCellCommonRes {
|
|||||||
Color.WHITE,
|
Color.WHITE,
|
||||||
Toolkit.Theme.COL_CELL_FILL
|
Toolkit.Theme.COL_CELL_FILL
|
||||||
)
|
)
|
||||||
|
|
||||||
|
val tooltipShowing = HashMap<Long, Boolean>() // Long: `hash` field on UIItemInventoryItemGrid
|
||||||
}
|
}
|
||||||
|
|
||||||
data class InventoryCellColourTheme(
|
data class InventoryCellColourTheme(
|
||||||
|
|||||||
@@ -56,8 +56,6 @@ open class UIItemInventoryItemGrid(
|
|||||||
|
|
||||||
var numberMultiplier = 1L
|
var numberMultiplier = 1L
|
||||||
|
|
||||||
private val hash = System.nanoTime()
|
|
||||||
|
|
||||||
override val width = horizontalCells * UIItemInventoryElemSimple.height + (horizontalCells - 1) * listGap
|
override val width = horizontalCells * UIItemInventoryElemSimple.height + (horizontalCells - 1) * listGap
|
||||||
override val height = verticalCells * UIItemInventoryElemSimple.height + (verticalCells - 1) * listGap
|
override val height = verticalCells * UIItemInventoryElemSimple.height + (verticalCells - 1) * listGap
|
||||||
|
|
||||||
@@ -179,9 +177,6 @@ open class UIItemInventoryItemGrid(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// COMMON variables because more than one instance of this can be up on the screen
|
|
||||||
// This variable must be emptied out when the parent UI hides/closes
|
|
||||||
val tooltipShowing = HashMap<Long, Boolean>() // Long: `hash` field on UIItemInventoryItemGrid
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected val itemGrid = Array<UIItemInventoryCellBase>(horizontalCells * verticalCells) {
|
protected val itemGrid = Array<UIItemInventoryCellBase>(horizontalCells * verticalCells) {
|
||||||
@@ -317,40 +312,10 @@ open class UIItemInventoryItemGrid(
|
|||||||
override fun update(delta: Float) {
|
override fun update(delta: Float) {
|
||||||
super.update(delta)
|
super.update(delta)
|
||||||
|
|
||||||
|
|
||||||
tooltipShowing[hash] = false
|
|
||||||
|
|
||||||
// printdbg(this, tooltipShowing.entries)
|
|
||||||
|
|
||||||
items.forEach {
|
items.forEach {
|
||||||
it.update(delta)
|
it.update(delta)
|
||||||
|
|
||||||
|
|
||||||
// set tooltip accordingly
|
|
||||||
if ((App.IS_DEVELOPMENT_BUILD || isCompactMode) && tooltipShowing[hash] != true && it.item != null && it.mouseUp) {
|
|
||||||
// printdbg(this, "calling INGAME.setTooltipMessage by $hash")
|
|
||||||
|
|
||||||
val grey = App.fontGame.toColorCode(11, 11, 11)
|
|
||||||
val itemIDstr = "\n$grey(${it.item?.originalID}${if (it.item?.originalID == it.item?.dynamicID) "" else "/${it.item?.dynamicID}"})"
|
|
||||||
val nameStr = if (it.item?.nameSecondary?.isNotBlank() == true) "${it.item?.name}\n$grey${it.item?.nameSecondary}" else "${it.item?.name}"
|
|
||||||
|
|
||||||
INGAME.setTooltipMessage(
|
|
||||||
if (App.IS_DEVELOPMENT_BUILD)
|
|
||||||
nameStr + itemIDstr
|
|
||||||
else
|
|
||||||
nameStr
|
|
||||||
)
|
|
||||||
|
|
||||||
tooltipShowing[hash] = true
|
|
||||||
// printdbg(this, tooltipShowing.entries)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tooltipShowing.values.all { !it }) {
|
|
||||||
INGAME.setTooltipMessage(null)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (!hideSidebar) {
|
if (!hideSidebar) {
|
||||||
navRemoCon.update(delta)
|
navRemoCon.update(delta)
|
||||||
}
|
}
|
||||||
@@ -585,11 +550,6 @@ open class UIItemInventoryItemGrid(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun dispose() {
|
override fun dispose() {
|
||||||
tooltipShowing.remove(hash)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun hide() {
|
|
||||||
tooltipShowing.remove(hash)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun touchDown(screenX: Int, screenY: Int, pointer: Int, button: Int): Boolean {
|
override fun touchDown(screenX: Int, screenY: Int, pointer: Int, button: Int): Boolean {
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import net.torvald.terrarum.langpack.Lang
|
|||||||
import net.torvald.terrarum.modulebasegame.gameactors.FixtureInventory
|
import net.torvald.terrarum.modulebasegame.gameactors.FixtureInventory
|
||||||
import net.torvald.terrarum.modulebasegame.gameactors.FixtureJukebox
|
import net.torvald.terrarum.modulebasegame.gameactors.FixtureJukebox
|
||||||
import net.torvald.terrarum.modulebasegame.gameitems.ItemFileRef
|
import net.torvald.terrarum.modulebasegame.gameitems.ItemFileRef
|
||||||
|
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes.tooltipShowing
|
||||||
import net.torvald.terrarum.ui.*
|
import net.torvald.terrarum.ui.*
|
||||||
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
|
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
|
||||||
import net.torvald.unicode.getKeycapPC
|
import net.torvald.unicode.getKeycapPC
|
||||||
@@ -78,7 +79,7 @@ class UIJukebox : UICanvas(
|
|||||||
override fun show() {
|
override fun show() {
|
||||||
openingClickLatched = Terrarum.mouseDown
|
openingClickLatched = Terrarum.mouseDown
|
||||||
transitionPanel.show()
|
transitionPanel.show()
|
||||||
UIItemInventoryItemGrid.tooltipShowing.clear()
|
tooltipShowing.clear()
|
||||||
INGAME.setTooltipMessage(null)
|
INGAME.setTooltipMessage(null)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -131,7 +132,7 @@ class UIJukebox : UICanvas(
|
|||||||
|
|
||||||
override fun endClosing(delta: Float) {
|
override fun endClosing(delta: Float) {
|
||||||
super.endClosing(delta)
|
super.endClosing(delta)
|
||||||
UIItemInventoryItemGrid.tooltipShowing.clear()
|
tooltipShowing.clear()
|
||||||
INGAME.setTooltipMessage(null) // required!
|
INGAME.setTooltipMessage(null) // required!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import net.torvald.terrarum.modulebasegame.gameactors.FixtureInventory
|
|||||||
import net.torvald.terrarum.modulebasegame.gameactors.FixtureSmelterBasic
|
import net.torvald.terrarum.modulebasegame.gameactors.FixtureSmelterBasic
|
||||||
import net.torvald.terrarum.modulebasegame.gameactors.InventoryPair
|
import net.torvald.terrarum.modulebasegame.gameactors.InventoryPair
|
||||||
import net.torvald.terrarum.modulebasegame.gameitems.FixtureItemBase
|
import net.torvald.terrarum.modulebasegame.gameitems.FixtureItemBase
|
||||||
|
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes.tooltipShowing
|
||||||
import net.torvald.terrarum.ui.*
|
import net.torvald.terrarum.ui.*
|
||||||
import net.torvald.terrarum.ui.UIItemCatBar.Companion.FILTER_CAT_ALL
|
import net.torvald.terrarum.ui.UIItemCatBar.Companion.FILTER_CAT_ALL
|
||||||
import net.torvald.terrarum.ui.UIItemInventoryElemWide.Companion.UNIQUE_ITEM_HAS_NO_AMOUNT
|
import net.torvald.terrarum.ui.UIItemInventoryElemWide.Companion.UNIQUE_ITEM_HAS_NO_AMOUNT
|
||||||
@@ -98,7 +99,7 @@ class UISmelterBasic(val smelter: FixtureSmelterBasic) : UICanvas(
|
|||||||
private val productX = backdropX + 37 * backdropZoom + 3
|
private val productX = backdropX + 37 * backdropZoom + 3
|
||||||
private val productY = backdropY + 39 * backdropZoom + 3
|
private val productY = backdropY + 39 * backdropZoom + 3
|
||||||
|
|
||||||
private val thermoX = (backdropX + 28 * backdropZoom + 1).toInt()
|
private val thermoX = (backdropX + 24 * backdropZoom + 1).toInt()
|
||||||
private val thermoY = (backdropY + 39 * backdropZoom + 3).toInt()
|
private val thermoY = (backdropY + 39 * backdropZoom + 3).toInt()
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -253,7 +254,7 @@ class UISmelterBasic(val smelter: FixtureSmelterBasic) : UICanvas(
|
|||||||
playerThings.setGetInventoryFun { INGAME.actorNowPlaying!!.inventory }
|
playerThings.setGetInventoryFun { INGAME.actorNowPlaying!!.inventory }
|
||||||
itemListUpdate()
|
itemListUpdate()
|
||||||
|
|
||||||
UIItemInventoryItemGrid.tooltipShowing.clear()
|
tooltipShowing.clear()
|
||||||
INGAME.setTooltipMessage(null)
|
INGAME.setTooltipMessage(null)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -390,7 +391,7 @@ class UISmelterBasic(val smelter: FixtureSmelterBasic) : UICanvas(
|
|||||||
|
|
||||||
override fun endClosing(delta: Float) {
|
override fun endClosing(delta: Float) {
|
||||||
super.endClosing(delta)
|
super.endClosing(delta)
|
||||||
UIItemInventoryItemGrid.tooltipShowing.clear()
|
tooltipShowing.clear()
|
||||||
INGAME.setTooltipMessage(null) // required!
|
INGAME.setTooltipMessage(null) // required!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import net.torvald.terrarum.gameitems.GameItem
|
|||||||
import net.torvald.terrarum.langpack.Lang
|
import net.torvald.terrarum.langpack.Lang
|
||||||
import net.torvald.terrarum.modulebasegame.gameactors.FixtureInventory
|
import net.torvald.terrarum.modulebasegame.gameactors.FixtureInventory
|
||||||
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.getWidthOfCells
|
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.terrarum.ui.*
|
||||||
import net.torvald.unicode.getKeycapPC
|
import net.torvald.unicode.getKeycapPC
|
||||||
import kotlin.math.max
|
import kotlin.math.max
|
||||||
@@ -155,7 +156,7 @@ internal class UIStorageChest : UICanvas(
|
|||||||
|
|
||||||
openingClickLatched = Terrarum.mouseDown
|
openingClickLatched = Terrarum.mouseDown
|
||||||
|
|
||||||
UIItemInventoryItemGrid.tooltipShowing.clear()
|
tooltipShowing.clear()
|
||||||
INGAME.setTooltipMessage(null)
|
INGAME.setTooltipMessage(null)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -254,7 +255,7 @@ internal class UIStorageChest : UICanvas(
|
|||||||
|
|
||||||
override fun endClosing(delta: Float) {
|
override fun endClosing(delta: Float) {
|
||||||
super.endClosing(delta)
|
super.endClosing(delta)
|
||||||
UIItemInventoryItemGrid.tooltipShowing.clear()
|
tooltipShowing.clear()
|
||||||
INGAME.setTooltipMessage(null) // required!
|
INGAME.setTooltipMessage(null) // required!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,8 +5,11 @@ import com.badlogic.gdx.graphics.Color
|
|||||||
import com.badlogic.gdx.graphics.OrthographicCamera
|
import com.badlogic.gdx.graphics.OrthographicCamera
|
||||||
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
||||||
import net.torvald.terrarum.App
|
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.Second
|
||||||
import net.torvald.terrarum.Terrarum
|
import net.torvald.terrarum.Terrarum
|
||||||
|
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes.tooltipShowing
|
||||||
import net.torvald.terrarum.ui.Toolkit
|
import net.torvald.terrarum.ui.Toolkit
|
||||||
import net.torvald.terrarum.ui.UICanvas
|
import net.torvald.terrarum.ui.UICanvas
|
||||||
import net.torvald.terrarum.ui.UINotControllable
|
import net.torvald.terrarum.ui.UINotControllable
|
||||||
@@ -21,7 +24,7 @@ class UITooltip : UICanvas() {
|
|||||||
handler.allowESCtoClose = false
|
handler.allowESCtoClose = false
|
||||||
}
|
}
|
||||||
|
|
||||||
override var openCloseTime: Second = 0f
|
override var openCloseTime: Second = OPENCLOSE_GENERIC * 0.72f
|
||||||
|
|
||||||
private val tooltipBackCol = Color.WHITE
|
private val tooltipBackCol = Color.WHITE
|
||||||
private val tooltipForeCol = Color(0xfafafaff.toInt())
|
private val tooltipForeCol = Color(0xfafafaff.toInt())
|
||||||
@@ -48,6 +51,7 @@ class UITooltip : UICanvas() {
|
|||||||
get() = 36 * 2 + font.lineHeight.toInt()
|
get() = 36 * 2 + font.lineHeight.toInt()
|
||||||
set(value) { throw Error("You are not supposed to set the height of the tooltip manually.") }
|
set(value) { throw Error("You are not supposed to set the height of the tooltip manually.") }
|
||||||
|
|
||||||
|
|
||||||
override fun renderUI(frameDelta: Float, batch: SpriteBatch, camera: OrthographicCamera) {
|
override fun renderUI(frameDelta: Float, batch: SpriteBatch, camera: OrthographicCamera) {
|
||||||
val mouseXoff = 28f
|
val mouseXoff = 28f
|
||||||
val mouseYoff = 0f
|
val mouseYoff = 0f
|
||||||
@@ -80,20 +84,29 @@ class UITooltip : UICanvas() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// private var lastOpenSignalTime = 0L
|
||||||
|
// private var debounceTime = 100*1000000L // miliseconds
|
||||||
|
|
||||||
|
override fun setAsOpen() {
|
||||||
|
handler.setAsOpen()
|
||||||
|
// lastOpenSignalTime = System.nanoTime()
|
||||||
|
// printdbg(this, "start open")
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun setAsClose() {
|
||||||
|
// printdbg(this, "Close called, time since last open: ${System.nanoTime() - lastOpenSignalTime}")
|
||||||
|
// if (System.nanoTime() - lastOpenSignalTime >= debounceTime) {
|
||||||
|
// printdbg(this, "start close")
|
||||||
|
handler.setAsClose()
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
override fun updateUI(delta: Float) {
|
override fun updateUI(delta: Float) {
|
||||||
setPosition(Terrarum.mouseScreenX, Terrarum.mouseScreenY)
|
setPosition(Terrarum.mouseScreenX, Terrarum.mouseScreenY)
|
||||||
}
|
|
||||||
|
|
||||||
override fun doOpening(delta: Float) {
|
if (tooltipShowing.values.all { !it }) {
|
||||||
}
|
INGAME.setTooltipMessage(null)
|
||||||
|
}
|
||||||
override fun doClosing(delta: Float) {
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun endOpening(delta: Float) {
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun endClosing(delta: Float) {
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun dispose() {
|
override fun dispose() {
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import net.torvald.terrarum.*
|
|||||||
import net.torvald.terrarum.gameworld.WorldTime
|
import net.torvald.terrarum.gameworld.WorldTime
|
||||||
import net.torvald.terrarum.gameworld.WorldTime.Companion.MONTH_LENGTH
|
import net.torvald.terrarum.gameworld.WorldTime.Companion.MONTH_LENGTH
|
||||||
import net.torvald.terrarum.langpack.Lang
|
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.Toolkit
|
||||||
import net.torvald.terrarum.ui.UICanvas
|
import net.torvald.terrarum.ui.UICanvas
|
||||||
import net.torvald.unicode.getKeycapPC
|
import net.torvald.unicode.getKeycapPC
|
||||||
@@ -368,13 +369,13 @@ class UIWallCalendar : UICanvas(
|
|||||||
|
|
||||||
override fun endOpening(delta: Float) {
|
override fun endOpening(delta: Float) {
|
||||||
super.endOpening(delta)
|
super.endOpening(delta)
|
||||||
UIItemInventoryItemGrid.tooltipShowing.clear()
|
tooltipShowing.clear()
|
||||||
INGAME.setTooltipMessage(null) // required!
|
INGAME.setTooltipMessage(null) // required!
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun endClosing(delta: Float) {
|
override fun endClosing(delta: Float) {
|
||||||
super.endClosing(delta)
|
super.endClosing(delta)
|
||||||
UIItemInventoryItemGrid.tooltipShowing.clear()
|
tooltipShowing.clear()
|
||||||
INGAME.setTooltipMessage(null) // required!
|
INGAME.setTooltipMessage(null) // required!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ 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.drawBackground
|
||||||
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.internalHeight
|
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.internalHeight
|
||||||
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.internalWidth
|
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.serialise.toAscii85
|
||||||
import net.torvald.terrarum.ui.*
|
import net.torvald.terrarum.ui.*
|
||||||
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
|
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
|
||||||
@@ -190,14 +191,14 @@ class UIWorldPortal : UICanvas(
|
|||||||
override fun endOpening(delta: Float) {
|
override fun endOpening(delta: Float) {
|
||||||
super.endOpening(delta)
|
super.endOpening(delta)
|
||||||
transitionPanel.uis.forEach { it.opacity = FastMath.pow(opacity, 0.5f) }
|
transitionPanel.uis.forEach { it.opacity = FastMath.pow(opacity, 0.5f) }
|
||||||
UIItemInventoryItemGrid.tooltipShowing.clear()
|
tooltipShowing.clear()
|
||||||
INGAME.setTooltipMessage(null) // required!
|
INGAME.setTooltipMessage(null) // required!
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun endClosing(delta: Float) {
|
override fun endClosing(delta: Float) {
|
||||||
super.endClosing(delta)
|
super.endClosing(delta)
|
||||||
transitionPanel.uis.forEach { it.opacity = FastMath.pow(opacity, 0.5f) }
|
transitionPanel.uis.forEach { it.opacity = FastMath.pow(opacity, 0.5f) }
|
||||||
UIItemInventoryItemGrid.tooltipShowing.clear()
|
tooltipShowing.clear()
|
||||||
INGAME.setTooltipMessage(null) // required!
|
INGAME.setTooltipMessage(null) // required!
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import net.torvald.terrarum.gameactors.AVKey
|
|||||||
import net.torvald.terrarum.gameitems.GameItem
|
import net.torvald.terrarum.gameitems.GameItem
|
||||||
import net.torvald.terrarum.langpack.Lang
|
import net.torvald.terrarum.langpack.Lang
|
||||||
import net.torvald.terrarum.modulebasegame.gameactors.FixtureInventory
|
import net.torvald.terrarum.modulebasegame.gameactors.FixtureInventory
|
||||||
|
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes.tooltipShowing
|
||||||
import net.torvald.terrarum.ui.*
|
import net.torvald.terrarum.ui.*
|
||||||
import net.torvald.unicode.getKeycapPC
|
import net.torvald.unicode.getKeycapPC
|
||||||
import kotlin.math.max
|
import kotlin.math.max
|
||||||
@@ -144,7 +145,7 @@ class UIWorldPortalCargo(val full: UIWorldPortal) : UICanvas(), HasInventory {
|
|||||||
|
|
||||||
openingClickLatched = Terrarum.mouseDown
|
openingClickLatched = Terrarum.mouseDown
|
||||||
|
|
||||||
UIItemInventoryItemGrid.tooltipShowing.clear()
|
tooltipShowing.clear()
|
||||||
INGAME.setTooltipMessage(null)
|
INGAME.setTooltipMessage(null)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -244,7 +245,7 @@ class UIWorldPortalCargo(val full: UIWorldPortal) : UICanvas(), HasInventory {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun endClosing(delta: Float) {
|
override fun endClosing(delta: Float) {
|
||||||
UIItemInventoryItemGrid.tooltipShowing.clear()
|
tooltipShowing.clear()
|
||||||
INGAME.setTooltipMessage(null) // required!
|
INGAME.setTooltipMessage(null) // required!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import net.torvald.terrarum.langpack.Lang
|
|||||||
import net.torvald.terrarum.modulebasegame.gameactors.FixtureWorldPortal
|
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.INVENTORY_CELLS_OFFSET_Y
|
||||||
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.getCellCountVertically
|
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_H
|
||||||
import net.torvald.terrarum.realestate.LandUtil.CHUNK_W
|
import net.torvald.terrarum.realestate.LandUtil.CHUNK_W
|
||||||
import net.torvald.terrarum.savegame.*
|
import net.torvald.terrarum.savegame.*
|
||||||
@@ -524,7 +525,7 @@ class UIWorldPortalListing(val full: UIWorldPortal) : UICanvas() {
|
|||||||
|
|
||||||
override fun endClosing(delta: Float) {
|
override fun endClosing(delta: Float) {
|
||||||
super.endClosing(delta)
|
super.endClosing(delta)
|
||||||
UIItemInventoryItemGrid.tooltipShowing.clear()
|
tooltipShowing.clear()
|
||||||
INGAME.setTooltipMessage(null) // required!
|
INGAME.setTooltipMessage(null) // required!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,16 +4,14 @@ import com.badlogic.gdx.graphics.Color
|
|||||||
import com.badlogic.gdx.graphics.OrthographicCamera
|
import com.badlogic.gdx.graphics.OrthographicCamera
|
||||||
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
||||||
import com.badlogic.gdx.graphics.g2d.TextureRegion
|
import com.badlogic.gdx.graphics.g2d.TextureRegion
|
||||||
import net.torvald.terrarum.App
|
import net.torvald.terrarum.*
|
||||||
import net.torvald.terrarum.CommonResourcePool
|
|
||||||
import net.torvald.terrarum.blendNormalStraightAlpha
|
|
||||||
import net.torvald.terrarum.gameitems.GameItem
|
import net.torvald.terrarum.gameitems.GameItem
|
||||||
import net.torvald.terrarum.modulebasegame.ui.InventoryCellColourTheme
|
import net.torvald.terrarum.modulebasegame.ui.InventoryCellColourTheme
|
||||||
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellBase
|
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellBase
|
||||||
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes
|
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes
|
||||||
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes.defaultInventoryCellTheme
|
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes.defaultInventoryCellTheme
|
||||||
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes.toItemCountText
|
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes.toItemCountText
|
||||||
import net.torvald.terrarum.mul
|
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes.tooltipShowing
|
||||||
import kotlin.math.roundToInt
|
import kotlin.math.roundToInt
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -59,7 +57,6 @@ class UIItemInventoryElemSimple(
|
|||||||
private val emptyCellIconOffsetY = (this.height - (emptyCellIcon?.regionHeight ?: 0)).div(2).toFloat()
|
private val emptyCellIconOffsetY = (this.height - (emptyCellIcon?.regionHeight ?: 0)).div(2).toFloat()
|
||||||
|
|
||||||
override fun update(delta: Float) {
|
override fun update(delta: Float) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private var highlightToMainCol = false
|
private var highlightToMainCol = false
|
||||||
@@ -129,6 +126,29 @@ class UIItemInventoryElemSimple(
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// set tooltip accordingly
|
||||||
|
if (tooltipShowing[hash] != true && item != null && mouseUp) {
|
||||||
|
// printdbg(this, "calling INGAME.setTooltipMessage by $hash")
|
||||||
|
|
||||||
|
val grey = App.fontGame.toColorCode(11, 11, 11)
|
||||||
|
val itemIDstr = "\n$grey(${item?.originalID}${if (item?.originalID == item?.dynamicID) "" else "/${item?.dynamicID}"})"
|
||||||
|
val nameStr = if (item?.nameSecondary?.isNotBlank() == true) "${item?.name}\n$grey${item?.nameSecondary}" else "${item?.name}"
|
||||||
|
|
||||||
|
INGAME.setTooltipMessage(
|
||||||
|
if (App.IS_DEVELOPMENT_BUILD)
|
||||||
|
nameStr + itemIDstr
|
||||||
|
else
|
||||||
|
nameStr
|
||||||
|
)
|
||||||
|
|
||||||
|
tooltipShowing[hash] = true
|
||||||
|
// printdbg(this, tooltipShowing.entries)
|
||||||
|
}
|
||||||
|
else if (item == null || !mouseUp) {
|
||||||
|
tooltipShowing[hash] = false
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
||||||
@@ -146,5 +166,10 @@ class UIItemInventoryElemSimple(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun dispose() {
|
override fun dispose() {
|
||||||
|
tooltipShowing.remove(hash)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun hide() {
|
||||||
|
tooltipShowing.remove(hash)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5,12 +5,14 @@ import com.badlogic.gdx.graphics.OrthographicCamera
|
|||||||
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
||||||
import com.badlogic.gdx.graphics.g2d.TextureRegion
|
import com.badlogic.gdx.graphics.g2d.TextureRegion
|
||||||
import net.torvald.terrarum.*
|
import net.torvald.terrarum.*
|
||||||
|
import net.torvald.terrarum.App.IS_DEVELOPMENT_BUILD
|
||||||
import net.torvald.terrarum.App.printdbg
|
import net.torvald.terrarum.App.printdbg
|
||||||
import net.torvald.terrarum.gameitems.GameItem
|
import net.torvald.terrarum.gameitems.GameItem
|
||||||
import net.torvald.terrarum.modulebasegame.ui.InventoryCellColourTheme
|
import net.torvald.terrarum.modulebasegame.ui.InventoryCellColourTheme
|
||||||
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellBase
|
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellBase
|
||||||
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes
|
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes
|
||||||
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes.toItemCountText
|
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes.toItemCountText
|
||||||
|
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes.tooltipShowing
|
||||||
import kotlin.math.roundToInt
|
import kotlin.math.roundToInt
|
||||||
|
|
||||||
/***
|
/***
|
||||||
@@ -64,9 +66,6 @@ class UIItemInventoryElemWide(
|
|||||||
|
|
||||||
|
|
||||||
override fun update(delta: Float) {
|
override fun update(delta: Float) {
|
||||||
if (item != null) {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private var highlightToMainCol = false
|
private var highlightToMainCol = false
|
||||||
@@ -159,13 +158,39 @@ class UIItemInventoryElemWide(
|
|||||||
App.fontGame.draw(batch, "$label", barOffset + barFullLen - labelW.toFloat(), posY + textOffsetY)
|
App.fontGame.draw(batch, "$label", barOffset + barFullLen - labelW.toFloat(), posY + textOffsetY)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// set tooltip accordingly
|
||||||
|
if (IS_DEVELOPMENT_BUILD && tooltipShowing[hash] != true && item != null && mouseUp) {
|
||||||
|
// printdbg(this, "calling INGAME.setTooltipMessage by $hash")
|
||||||
|
|
||||||
|
val grey = App.fontGame.toColorCode(11, 11, 11)
|
||||||
|
val itemIDstr = "\n$grey(${item?.originalID}${if (item?.originalID == item?.dynamicID) "" else "/${item?.dynamicID}"})"
|
||||||
|
val nameStr = if (item?.nameSecondary?.isNotBlank() == true) "${item?.name}\n$grey${item?.nameSecondary}" else "${item?.name}"
|
||||||
|
|
||||||
|
INGAME.setTooltipMessage(
|
||||||
|
if (App.IS_DEVELOPMENT_BUILD)
|
||||||
|
nameStr + itemIDstr
|
||||||
|
else
|
||||||
|
nameStr
|
||||||
|
)
|
||||||
|
|
||||||
|
tooltipShowing[hash] = true
|
||||||
|
// printdbg(this, tooltipShowing.entries)
|
||||||
|
}
|
||||||
|
else if (item == null || !mouseUp) {
|
||||||
|
tooltipShowing[hash] = false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// see IFs above?
|
// see IFs above?
|
||||||
batch.color = Color.WHITE
|
batch.color = Color.WHITE
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun dispose() {
|
override fun dispose() {
|
||||||
|
tooltipShowing.remove(hash)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun hide() {
|
||||||
|
tooltipShowing.remove(hash)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user