diff --git a/assets/graphics/gui/inventory/category.tga b/assets/graphics/gui/inventory/category.tga index e2f2faa51..cd3e59b50 100755 --- a/assets/graphics/gui/inventory/category.tga +++ b/assets/graphics/gui/inventory/category.tga @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:72599b5365d537a564d712dec9f0a4a0db82217af9a49566540c76d1c617a697 +oid sha256:cb6029831e84d59e5c2a3644d199ef0793f3e5cf0e75974b23372c514b722494 size 240018 diff --git a/assets/mods/musicplayer/metadata.properties b/assets/mods/musicplayer/metadata.properties index 70e5c7be6..f51b7fc4f 100644 --- a/assets/mods/musicplayer/metadata.properties +++ b/assets/mods/musicplayer/metadata.properties @@ -6,5 +6,5 @@ entrypoint=net.torvald.terrarum.musicplayer.EntryPoint releasedate=2024-02-10 version=1.0.0 jar=MusicPlayer.jar -jarhash=9991cb83bfaf8b110a92dcc7565f057e0959025e24f02502fb8e61fe2086ead7 +jarhash=c8896ce5b2aa79057e1324a701c1c5bd4099a8a651f044a120ad700cedfbb16e dependency=basegame 0.4.0 diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIBuildingMakerBlockChooser.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIBuildingMakerBlockChooser.kt index a08b08b11..acdbdd22d 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIBuildingMakerBlockChooser.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIBuildingMakerBlockChooser.kt @@ -100,7 +100,6 @@ class UIBuildingMakerBlockChooser(val parent: BuildingMaker): UICanvas() { height = TILESREGION_SIZE, highlightCol = Color.WHITE, activeCol = Color.WHITE, - backgroundCol = Color(0) ) val paletteItem2 = UIItemImageButton( this, ItemCodex.getItemImage(prop.id)!!, @@ -112,7 +111,6 @@ class UIBuildingMakerBlockChooser(val parent: BuildingMaker): UICanvas() { highlightCol = Color.WHITE, activeCol = WALL_OVERLAY_COLOUR, inactiveCol = WALL_OVERLAY_COLOUR, - backgroundCol = Color(0) ) paletteItem.clickOnceListener = { _, _ -> parent.setPencilColour(prop.id) } diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIBuildingMakerPenMenu.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIBuildingMakerPenMenu.kt index 2e43d7937..df0dcc8e8 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIBuildingMakerPenMenu.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIBuildingMakerPenMenu.kt @@ -58,9 +58,6 @@ class UIBuildingMakerPenMenu(val parent: BuildingMaker): UICanvas() { UIItemImageButton( this, toolIcons.get(it, 0), - backgroundCol = Color(0), - highlightBackCol = Color(0), - activeBackCol = Color(0), initialX = newvec.x.roundToInt(), initialY = newvec.y.roundToInt(), width = ICON_SIZE, height = ICON_SIZE, diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UICrafting.kt b/src/net/torvald/terrarum/modulebasegame/ui/UICrafting.kt index 000117964..a43965f71 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UICrafting.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UICrafting.kt @@ -91,8 +91,11 @@ class UICrafting(val full: UIInventoryFull?) : UICanvas( }} } - private val itemListCraftable: UIItemCraftingCandidateGrid // might be changed to something else - private val itemListIngredients: UIItemInventoryItemGrid // this one is definitely not to be changed + private val catIcons = CommonResourcePool.getAsTextureRegionPack("inventory_category") + + + internal val itemListCraftable: UIItemCraftingCandidateGrid // might be changed to something else + internal val itemListIngredients: UIItemInventoryItemGrid // this one is definitely not to be changed private val buttonCraft: UIItemTextButton private val spinnerCraftCount: UIItemSpinner @@ -311,11 +314,40 @@ class UICrafting(val full: UIInventoryFull?) : UICanvas( handler.allowESCtoClose = true + + val menuButtonTechView = UIItemImageButton( + this, catIcons.get(20, 1), + initialX = itemListCraftable.navRemoCon.posX + 12, + initialY = itemListCraftable.navRemoCon.getIconPosY(-2) - 8, + highlightable = true + ).also { + it.clickOnceListener = { _, _ -> + full?.transitionPanel?.setLeftUIto(1) + full?.transitionPanel?.uis?.get(0)?.show() + it.highlighted = false + } + } + + val menuButtonCraft = UIItemImageButton( + this, catIcons.get(19, 1), + initialX = itemListCraftable.navRemoCon.posX + 12, + initialY = itemListCraftable.navRemoCon.getIconPosY(-1) - 8, + activeCol = Toolkit.Theme.COL_SELECTED, + inactiveCol = Toolkit.Theme.COL_SELECTED, + highlightable = true + ) + + addUIitem(itemListCraftable) addUIitem(itemListIngredients) addUIitem(playerThings) addUIitem(spinnerCraftCount) addUIitem(buttonCraft) + // temporarily disabled for 0.4 release + if (TerrarumAppConfiguration.VERSION_RAW >= 0x0000_000005_000000) { + addUIitem(menuButtonCraft) + addUIitem(menuButtonTechView) + } } private fun filterPlayerListUsing(recipe: CraftingCodex.CraftingRecipe?) { diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt index aef5b1e4a..8a269f9e9 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt @@ -246,17 +246,18 @@ class UIInventoryFull( // private val transitionalMinimap = UIInventoryMinimap(this) - private val transitionalCraftingUI = UICrafting(this) - private val transitionalItemCells = UIInventoryCells(this) - private val transitionalEscMenu = UIInventoryEscMenu(this) - private val transitionPanel = UIItemHorizontalFadeSlide( + internal val transitionalCraftingUI = UICrafting(this) + internal val transitionalTechTreeViewUI = UITechView(this) + internal val transitionalItemCells = UIInventoryCells(this) + internal val transitionalEscMenu = UIInventoryEscMenu(this) + val transitionPanel = UIItemHorizontalFadeSlide( this, (width - internalWidth) / 2, INVENTORY_CELLS_OFFSET_Y(), width, App.scr.height, 1f, - listOf(transitionalCraftingUI), + listOf(transitionalCraftingUI, transitionalTechTreeViewUI), listOf(transitionalItemCells), listOf(transitionalEscMenu) ) @@ -319,6 +320,7 @@ class UIInventoryFull( transitionPanel.forcePosition(0) catBar.setSelectedPanel(0) transitionalCraftingUI.resetUI() + transitionalTechTreeViewUI.resetUI() it.setAsOpen() } @@ -387,7 +389,7 @@ class UIInventoryFull( override fun doOpening(delta: Float) { super.doOpening(delta) - transitionPanel.uis.forEach { it.opacity = FastMath.pow(opacity, 0.5f) } + transitionPanel.allUIs.forEach { it.opacity = FastMath.pow(opacity, 0.5f) } INGAME.pause() INGAME.setTooltipMessage(null) @@ -399,7 +401,7 @@ class UIInventoryFull( override fun doClosing(delta: Float) { super.doClosing(delta) - transitionPanel.uis.forEach { it.opacity = FastMath.pow(opacity, 0.5f) } + transitionPanel.allUIs.forEach { it.opacity = FastMath.pow(opacity, 0.5f) } INGAME.resume() INGAME.setTooltipMessage(null) @@ -415,14 +417,14 @@ class UIInventoryFull( override fun endOpening(delta: Float) { super.endOpening(delta) - transitionPanel.uis.forEach { it.opacity = FastMath.pow(opacity, 0.5f) } + transitionPanel.allUIs.forEach { it.opacity = 1f } shouldIFadeIn = null } override fun endClosing(delta: Float) { super.endClosing(delta) - transitionPanel.uis.forEach { it.opacity = FastMath.pow(opacity, 0.5f) } + transitionPanel.allUIs.forEach { it.opacity = 0f } INGAME.setTooltipMessage(null) // required! // MinimapComposer.revalidateAll() diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIItemListNavBarVertical.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIItemListNavBarVertical.kt index 039814c96..59d9fb2b7 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIItemListNavBarVertical.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIItemListNavBarVertical.kt @@ -34,8 +34,12 @@ class UIItemListNavBarVertical( const val LIST_TO_CONTROL_GAP = 12 } - private fun getIconPosY(index: Int) = - posY + 26 * index + fun getIconPosY(index: Int) = + if (index >= 0) + posY + 26 * index + else + (posY + height) + (26 * index) + private val catIcons = CommonResourcePool.getAsTextureRegionPack("inventory_category") private val iconPosX = posX + LIST_TO_CONTROL_GAP @@ -43,11 +47,6 @@ class UIItemListNavBarVertical( UIItemImageButton( parentUI, catIcons.get(index + 14, 0), - backgroundCol = Color(0), - activeBackCol = Color(0), - highlightBackCol = Color(0), - activeBackBlendMode = BlendMode.NORMAL, - activeCol = Toolkit.Theme.COL_MOUSE_UP, initialX = iconPosX, initialY = getIconPosY(index), highlightable = true @@ -57,10 +56,6 @@ class UIItemListNavBarVertical( val scrollUpButton = UIItemImageButton( parentUI, catIcons.get(18, 0), - backgroundCol = Color(0), - activeBackCol = Color(0), - activeBackBlendMode = BlendMode.NORMAL, - activeCol = Toolkit.Theme.COL_MOUSE_UP, initialX = iconPosX, initialY = getIconPosY(2 - (!hasGridModeButtons).toInt(1)), highlightable = false @@ -69,10 +64,6 @@ class UIItemListNavBarVertical( val scrollDownButton = UIItemImageButton( parentUI, catIcons.get(19, 0), - backgroundCol = Color(0), - activeBackCol = Color(0), - activeBackBlendMode = BlendMode.NORMAL, - activeCol = Toolkit.Theme.COL_MOUSE_UP, initialX = iconPosX, initialY = getIconPosY(3 - (!hasGridModeButtons).toInt(1)), highlightable = false diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIKeyboardControlPanel.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIKeyboardControlPanel.kt index 2bef00778..e02a6d9c4 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIKeyboardControlPanel.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIKeyboardControlPanel.kt @@ -401,37 +401,37 @@ class UIItemControlPaletteBaloon(val parent: UIKeyboardControlPanel, initialX: I // TEXT IS MANUALLY PRINTED ON render() !! private val iconButtons = arrayOf( // left up right down - UIItemImageButton(parent, Keebsym.LEFT, initialX = col0 - 34, initialY = initialY + 43, highlightable = false, backgroundCol = Color(0), activeBackCol = Color(0), highlightBackCol = Color(0)), - UIItemImageButton(parent, Keebsym.UP, initialX = col0, initialY = initialY + 26, highlightable = false, backgroundCol = Color(0), activeBackCol = Color(0), highlightBackCol = Color(0)), - UIItemImageButton(parent, Keebsym.DOWN, initialX = col0, initialY = initialY + 60, highlightable = false, backgroundCol = Color(0), activeBackCol = Color(0), highlightBackCol = Color(0)), - UIItemImageButton(parent, Keebsym.RIGHT, initialX = col0 + 34, initialY = initialY + 43, highlightable = false, backgroundCol = Color(0), activeBackCol = Color(0), highlightBackCol = Color(0)), + UIItemImageButton(parent, Keebsym.LEFT, initialX = col0 - 34, initialY = initialY + 43, highlightable = false), + UIItemImageButton(parent, Keebsym.UP, initialX = col0, initialY = initialY + 26, highlightable = false), + UIItemImageButton(parent, Keebsym.DOWN, initialX = col0, initialY = initialY + 60, highlightable = false), + UIItemImageButton(parent, Keebsym.RIGHT, initialX = col0 + 34, initialY = initialY + 43, highlightable = false), // jump - UIItemImageButton(parent, Keebsym.JUMP, initialX = col1, initialY = initialY + 43, highlightable = false, backgroundCol = Color(0), activeBackCol = Color(0), highlightBackCol = Color(0)), + UIItemImageButton(parent, Keebsym.JUMP, initialX = col1, initialY = initialY + 43, highlightable = false), // inventory - UIItemImageButton(parent, Keebsym.INVENTORY, initialX = col0, initialY = row1, highlightable = false, backgroundCol = Color(0), activeBackCol = Color(0), highlightBackCol = Color(0)), + UIItemImageButton(parent, Keebsym.INVENTORY, initialX = col0, initialY = row1, highlightable = false), // crafting - UIItemImageButton(parent, Keebsym.CRAFTING, initialX = col0, initialY = row2, highlightable = false, backgroundCol = Color(0), activeBackCol = Color(0), highlightBackCol = Color(0)), + UIItemImageButton(parent, Keebsym.CRAFTING, initialX = col0, initialY = row2, highlightable = false), // hook - UIItemImageButton(parent, Keebsym.HOOK, initialX = col0, initialY = row3, highlightable = false, backgroundCol = Color(0), activeBackCol = Color(0), highlightBackCol = Color(0)), + UIItemImageButton(parent, Keebsym.HOOK, initialX = col0, initialY = row3, highlightable = false), // quicksel - UIItemImageButton(parent, Keebsym.PIE, initialX = col0, initialY = row4, highlightable = false, backgroundCol = Color(0), activeBackCol = Color(0), highlightBackCol = Color(0)), + UIItemImageButton(parent, Keebsym.PIE, initialX = col0, initialY = row4, highlightable = false), // zoom - UIItemImageButton(parent, Keebsym.ZOOM, initialX = col1, initialY = row1, highlightable = false, backgroundCol = Color(0), activeBackCol = Color(0), highlightBackCol = Color(0)), + UIItemImageButton(parent, Keebsym.ZOOM, initialX = col1, initialY = row1, highlightable = false), // IME - UIItemImageButton(parent, Keebsym.IME(), initialX = col1, initialY = row2, highlightable = false, backgroundCol = Color(0), activeBackCol = Color(0), highlightBackCol = Color(0)), + UIItemImageButton(parent, Keebsym.IME(), initialX = col1, initialY = row2, highlightable = false), // system menu - UIItemImageButton(parent, Keebsym.MENU, initialX = col1, initialY = row3, highlightable = false, backgroundCol = Color(0), activeBackCol = Color(0), highlightBackCol = Color(0)), + UIItemImageButton(parent, Keebsym.MENU, initialX = col1, initialY = row3, highlightable = false), // toss item - UIItemImageButton(parent, Keebsym.DISCARD, initialX = col1, initialY = row4, highlightable = false, backgroundCol = Color(0), activeBackCol = Color(0), highlightBackCol = Color(0)), + UIItemImageButton(parent, Keebsym.DISCARD, initialX = col1, initialY = row4, highlightable = false), ) // close button is just for the cosmetics; the uiitem closes when you click anywhere on the UI - private val closeButton2 = UIItemImageButton(parent, Keebsym.CLOSE, initialX = initialX + width - 20, initialY = initialY, highlightable = false, backgroundCol = Color(0), activeBackCol = Color(0), highlightBackCol = Color(0)) - private val closeButton1 = UIItemImageButton(parent, Keebsym.CLOSE, initialX = initialX + 1, initialY = initialY, highlightable = false, backgroundCol = Color(0), activeBackCol = Color(0), highlightBackCol = Color(0)) + private val closeButton2 = UIItemImageButton(parent, Keebsym.CLOSE, initialX = initialX + width - 20, initialY = initialY, highlightable = false) + private val closeButton1 = UIItemImageButton(parent, Keebsym.CLOSE, initialX = initialX + 1, initialY = initialY, highlightable = false) // indices must correspond with what's on the UIItemControlPaletteBaloon.iconButtons companion object { diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UITechView.kt b/src/net/torvald/terrarum/modulebasegame/ui/UITechView.kt new file mode 100644 index 000000000..f617432da --- /dev/null +++ b/src/net/torvald/terrarum/modulebasegame/ui/UITechView.kt @@ -0,0 +1,144 @@ +package net.torvald.terrarum.modulebasegame.ui + +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.langpack.Lang +import net.torvald.terrarum.ui.Toolkit +import net.torvald.terrarum.ui.UICanvas +import net.torvald.terrarum.ui.UIItemImageButton +import net.torvald.terrarum.ui.UIItemInventoryElemSimple +import net.torvald.unicode.getKeycapPC + +/** + * Created by minjaesong on 2024-02-18. + */ +class UITechView(val full: UIInventoryFull?, private val colourTheme: InventoryCellColourTheme = UIItemInventoryCellCommonRes.defaultInventoryCellTheme, +) : UICanvas( + toggleKeyLiteral = if (full == null) "control_key_inventory" else null, + toggleButtonLiteral = if (full == null) "control_gamepad_start" else null +) { + + override var width = Toolkit.drawWidth + override var height = App.scr.height + + private val verticalCells = UIInventoryFull.CELLS_VRT + private val halfSlotOffset = (UIItemInventoryElemSimple.height + UIItemInventoryItemGrid.listGap) / 2 + + private val posX0 = UIInventoryFull.INVENTORY_CELLS_OFFSET_X() + UIItemInventoryElemSimple.height + UIItemInventoryItemGrid.listGap - halfSlotOffset + private val posY0 = UIInventoryFull.INVENTORY_CELLS_OFFSET_Y() + + private val posX1 = posX0 - UIItemListNavBarVertical.LIST_TO_CONTROL_GAP - UIItemListNavBarVertical.WIDTH - 4 + private val posY1 = posY0 + +// private val navbarX = posX1 + UIItemListNavBarVertical.LIST_TO_CONTROL_GAP +// private val navbarY = posY1 + private val navbarX = full!!.transitionalCraftingUI.itemListCraftable.navRemoCon.posX + 12 + private val navbarY = full!!.transitionalCraftingUI.itemListCraftable.navRemoCon.posY - 8 + private val navbarWidth = UIItemListNavBarVertical.WIDTH + private val navbarHeight = full!!.transitionalCraftingUI.itemListCraftable.height + + private val panelX = 32 + navbarX + private val panelY = navbarY + private val panelWidth = 720 + private val panelHeight = navbarHeight + + private val catIcons = CommonResourcePool.getAsTextureRegionPack("inventory_category") + + private val menuButtonTechView = UIItemImageButton( + this, catIcons.get(20, 1), + initialX = navbarX, + initialY = getIconPosY(-2), + activeCol = Toolkit.Theme.COL_SELECTED, + inactiveCol = Toolkit.Theme.COL_SELECTED, + highlightable = false + ) + private val menuButtonCraft = UIItemImageButton( + this, catIcons.get(19, 1), + initialX = navbarX, + initialY = getIconPosY(-1), + highlightable = true + ).also { + it.clickOnceListener = { _, _ -> + full?.transitionPanel?.setLeftUIto(0) + full?.transitionPanel?.uis?.get(0)?.show() + it.highlighted = false + } + } + + fun getIconPosY(index: Int) = + if (index >= 0) + posY1 + 26 * index + else + (posY1 + navbarHeight) + (26 * index) + + init { + addUIitem(menuButtonCraft) + addUIitem(menuButtonTechView) + } + private val thisOffsetX = UIInventoryFull.INVENTORY_CELLS_OFFSET_X() + UIItemInventoryElemSimple.height + UIItemInventoryItemGrid.listGap - halfSlotOffset + + override fun renderImpl(frameDelta: Float, batch: SpriteBatch, camera: OrthographicCamera) { + // draw fake navbar // + // draw the tray + batch.color = Toolkit.Theme.COL_CELL_FILL + Toolkit.fillArea(batch, navbarX - 4, navbarY, navbarWidth, navbarHeight) + // cell border + batch.color = colourTheme.cellHighlightNormalCol + Toolkit.drawBoxBorder(batch, navbarX - 4, navbarY, navbarWidth, navbarHeight) + + + // draw window // + batch.color = Toolkit.Theme.COL_CELL_FILL + Toolkit.fillArea(batch, panelX, panelY, panelWidth, panelHeight) + // cell border + batch.color = colourTheme.cellHighlightNormalCol + Toolkit.drawBoxBorder(batch, panelX, panelY, panelWidth, panelHeight) + + + uiItems.forEach { it.render(frameDelta, batch, camera) } + + // control hints + val controlHintXPos = thisOffsetX + 2f + blendNormalStraightAlpha(batch) + batch.color = Color.WHITE + App.fontGame.draw(batch, controlHelp, controlHintXPos, UIInventoryFull.yEnd - 20) + + } + + + private val controlHelp: String + get() = if (App.environment == RunningEnvironment.PC) + "${getKeycapPC(ControlPresets.getKey("control_key_inventory"))} ${Lang["GAME_ACTION_CLOSE"]}" + else + "${App.gamepadLabelStart} ${Lang["GAME_ACTION_CLOSE"]}\u3000 " + + "${App.gamepadLabelLEFTRIGHT} ${Lang["GAME_OBJECTIVE_MULTIPLIER"]}\u3000 " + + "${App.gamepadLabelWest} ${Lang["GAME_ACTION_CRAFT"]}" + + + override fun updateImpl(delta: Float) { + } + + override fun doOpening(delta: Float) { + handler.opacity = 1f + } + + override fun doClosing(delta: Float) { + handler.opacity = 1f + } + + override fun endOpening(delta: Float) { + handler.opacity = 1f + } + + override fun endClosing(delta: Float) { + handler.opacity = 1f + } + + override fun dispose() { + } + + fun resetUI() { + } +} \ No newline at end of file diff --git a/src/net/torvald/terrarum/ui/UIItemCatBar.kt b/src/net/torvald/terrarum/ui/UIItemCatBar.kt index 4424d40e0..25d73916a 100644 --- a/src/net/torvald/terrarum/ui/UIItemCatBar.kt +++ b/src/net/torvald/terrarum/ui/UIItemCatBar.kt @@ -63,10 +63,6 @@ class UIItemCatBar( object : UIItemImageButton( inventoryUI, catIcons.get(iconIndexX, iconIndexY), - activeBackCol = Color(0), - backgroundCol = Color(0), - highlightBackCol = Color(0), - activeBackBlendMode = BlendMode.NORMAL, initialX = posX + iconPosX, initialY = posY + iconPosY, highlightable = true @@ -105,10 +101,6 @@ class UIItemCatBar( UIItemImageButton( inventoryUI, iconIndex[index], - activeBackCol = Color(0), - backgroundCol = Color(0), - highlightBackCol = Color(0), - activeBackBlendMode = BlendMode.NORMAL, initialX = iconPosX, initialY = posY + iconPosY, inactiveCol = if (index == 0 || index == 3) Color.WHITE else Color(0xffffff7f.toInt()), diff --git a/src/net/torvald/terrarum/ui/UIItemHorizontalFadeSlide.kt b/src/net/torvald/terrarum/ui/UIItemHorizontalFadeSlide.kt index 7f713f707..89c5d993e 100644 --- a/src/net/torvald/terrarum/ui/UIItemHorizontalFadeSlide.kt +++ b/src/net/torvald/terrarum/ui/UIItemHorizontalFadeSlide.kt @@ -37,6 +37,7 @@ class UIItemHorizontalFadeSlide( private var rightUI: UICanvas = uisOnRight.firstOrNull() ?: NullUI override val uis: List; get() = listOf(leftUI, centreUI, rightUI) + val allUIs : List; get() = uisOnLeft + uisOnCentre + uisOnRight fun setLeftUIto(index: Int) { leftUI = uisOnLeft[index] @@ -50,38 +51,61 @@ class UIItemHorizontalFadeSlide( init { // re-position the uis according to the initial choice of currentPosition - uisOnLeft.forEachIndexed { index, it -> + uisOnLeft.forEach { it.posX = getOffX(0) it.initialX = getOffX(0) + it.opacity = getOpacity(0) it.posY = 0 it.initialY = 0 - it.opacity = getOpacity(0) } - uisOnCentre.forEachIndexed { index, it -> + uisOnCentre.forEach { it.posX = getOffX(1) it.initialX = getOffX(1) + it.opacity = getOpacity(1) it.posY = 0 it.initialY = 0 - it.opacity = getOpacity(1) } - uisOnRight.forEachIndexed { index, it -> + uisOnRight.forEach { it.posX = getOffX(2) it.initialX = getOffX(2) + it.opacity = getOpacity(2) it.posY = 0 it.initialY = 0 - it.opacity = getOpacity(2) } } - override fun onTransition(currentPosition: Float, uis: List) { - uis.forEachIndexed { index, it -> - it.posX = getOffX(index) + override fun onTransition(currentPosition: Float) { + uisOnLeft.forEach { + it.posX = getOffX(0) + it.opacity = getOpacity(0) it.posY = it.initialY - it.opacity = getOpacity(index) } + uisOnCentre.forEach { + it.posX = getOffX(1) + it.opacity = getOpacity(1) + it.posY = it.initialY + } + uisOnRight.forEach { + it.posX = getOffX(2) + it.opacity = getOpacity(2) + it.posY = it.initialY + } + INGAME.setTooltipMessage(null) } + override fun show() { + uisOnLeft.forEach { it.show() } + uisOnCentre.forEach { it.show() } + uisOnRight.forEach { it.show() } + } + + override fun hide() { + uisOnLeft.forEach { it.hide() } + uisOnCentre.forEach { it.hide() } + uisOnRight.forEach { it.hide() } + } + override fun dispose() { uisOnLeft.forEach { it.tryDispose() } uisOnCentre.forEach { it.tryDispose() } diff --git a/src/net/torvald/terrarum/ui/UIItemImageButton.kt b/src/net/torvald/terrarum/ui/UIItemImageButton.kt index 545fe8f72..8a19b6c9d 100644 --- a/src/net/torvald/terrarum/ui/UIItemImageButton.kt +++ b/src/net/torvald/terrarum/ui/UIItemImageButton.kt @@ -19,18 +19,18 @@ open class UIItemImageButton( /** Colour when mouse is over */ val activeCol: Color = Toolkit.Theme.COL_MOUSE_UP, /** Colour when mouse is over */ - val activeBackCol: Color = UIItemTextButtonList.DEFAULT_BACKGROUND_ACTIVECOL, + val activeBackCol: Color = Color(0),//UIItemTextButtonList.DEFAULT_BACKGROUND_ACTIVECOL, /** Colour when mouse is over */ val activeBackBlendMode: String = BlendMode.NORMAL, /** Colour when clicked/selected */ val highlightCol: Color = Toolkit.Theme.COL_SELECTED, /** Colour when clicked/selected */ - val highlightBackCol: Color = UIItemTextButtonList.DEFAULT_BACKGROUND_HIGHLIGHTCOL, + val highlightBackCol: Color = Color(0),//UIItemTextButtonList.DEFAULT_BACKGROUND_HIGHLIGHTCOL, /** Colour when clicked/selected */ val highlightBackBlendMode: String = BlendMode.NORMAL, /** Colour on normal status */ val inactiveCol: Color = Toolkit.Theme.COL_LIST_DEFAULT, - val backgroundCol: Color = UIItemTextButtonList.DEFAULT_BACKGROUNDCOL, + val backgroundCol: Color = Color(0),//UIItemTextButtonList.DEFAULT_BACKGROUNDCOL, val backgroundBlendMode: String = BlendMode.NORMAL, initialX: Int, diff --git a/src/net/torvald/terrarum/ui/UIItemTransitionContainer.kt b/src/net/torvald/terrarum/ui/UIItemTransitionContainer.kt index fa6a553d3..5e0e4d0bf 100644 --- a/src/net/torvald/terrarum/ui/UIItemTransitionContainer.kt +++ b/src/net/torvald/terrarum/ui/UIItemTransitionContainer.kt @@ -46,7 +46,7 @@ open class UIItemTransitionContainer( transitionRequested = false transitionTimer = 0f currentPosition = target.toFloat() - onTransition(currentPosition, uis) + onTransition(currentPosition) } override fun update(delta: Float) { @@ -54,7 +54,7 @@ open class UIItemTransitionContainer( uis.forEachIndexed { index, ui -> if (timeToUpdate(index)) ui.update(delta) } } - open fun onTransition(currentPosition: Float, uis: List) {} + open fun onTransition(currentPosition: Float) {} open val currentUI: UICanvas get() = uis[currentPosition.roundToInt()] @@ -78,7 +78,7 @@ open class UIItemTransitionContainer( currentPosition = transitionReqTarget } - onTransition(currentPosition, uis) + onTransition(currentPosition) } uis.forEachIndexed { index, ui ->