From 228c9b81274c3c669f2e4ac9490a9e2f2aaa34d6 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Sat, 14 Oct 2023 18:42:06 +0900 Subject: [PATCH] buildingmaker resurrection wip --- src/net/torvald/terrarum/SanicLoadScreen.kt | 6 ++-- .../ui/UIBuildingMakerBlockChooser.kt | 31 ++++++++++++++----- .../ui/UIProxyNewBuildingMaker.kt | 2 +- .../modulebasegame/ui/UITitleRemoConYaml.kt | 7 ++++- .../terrarum/ui/UIItemTextButtonList.kt | 15 ++++++--- src/net/torvald/terrarum/ui/UINSMenu.kt | 20 ++++++------ 6 files changed, 53 insertions(+), 28 deletions(-) diff --git a/src/net/torvald/terrarum/SanicLoadScreen.kt b/src/net/torvald/terrarum/SanicLoadScreen.kt index ba5c56c00..8f76b8026 100644 --- a/src/net/torvald/terrarum/SanicLoadScreen.kt +++ b/src/net/torvald/terrarum/SanicLoadScreen.kt @@ -127,9 +127,9 @@ object SanicLoadScreen : LoadScreenBase() { // draw colour overlay, flipped it.draw(textOverlayTex, (textFbo.width - textWidth) / 2f, - App.fontGame.lineHeight, + 0f, textWidth, - -App.fontGame.lineHeight + App.fontGame.lineHeight ) } } @@ -155,7 +155,7 @@ object SanicLoadScreen : LoadScreenBase() { // --> original text if (genuineSonic) { it.color = Color.WHITE - it.draw(textTex, textX, glideDispY - 2f) + it.draw(textTex, textX, glideDispY - 2f + textTex.height, textTex.width.toFloat(), -textTex.height.toFloat()) } // --> ghost diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIBuildingMakerBlockChooser.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIBuildingMakerBlockChooser.kt index 0e44001e4..770480e2e 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIBuildingMakerBlockChooser.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIBuildingMakerBlockChooser.kt @@ -43,19 +43,28 @@ class UIBuildingMakerBlockChooser(val parent: BuildingMaker): UICanvas() { // TODO scrolling of the palette, as the old method flat out won't work with The Flattening private val tabs = UIItemTextButtonList( - this, 36, arrayOf("Terrain", "Wall", "Wire"), - 0, 0, textAreaWidth = MENUBAR_SIZE, width = MENUBAR_SIZE, - defaultSelection = 0 + this, 36, arrayOf("Terrain", "Wall", "Wire"), + 0, 0, textAreaWidth = MENUBAR_SIZE, width = MENUBAR_SIZE, + defaultSelection = 0, + backgroundCol = UIItemTextButtonList.DEFAULT_BACKGROUNDCOL ) private val closeButton = UIItemTextButtonList( - this, 36, arrayOf("Close"), - 0, this.height - UIItemTextButtonList.DEFAULT_LINE_HEIGHT, - width = MENUBAR_SIZE, textAreaWidth = MENUBAR_SIZE + this, 36, arrayOf("Close"), + 0, this.height - UIItemTextButtonList.DEFAULT_LINE_HEIGHT, + width = MENUBAR_SIZE, textAreaWidth = MENUBAR_SIZE, + backgroundCol = UIItemTextButtonList.DEFAULT_BACKGROUNDCOL ) init { - BlockCodex.getAll().forEachIndexed { index, prop -> + BlockCodex.getAll().filter { + (try { + ItemCodex.getItemImage(it.id) + } + catch (e: NullPointerException) { + null + }) != null + }.forEachIndexed { index, prop -> val paletteItem = UIItemImageButton( this, ItemCodex.getItemImage(prop.id)!!, initialX = MENUBAR_SIZE + (index % 16) * TILESREGION_SIZE, @@ -128,9 +137,15 @@ class UIBuildingMakerBlockChooser(val parent: BuildingMaker): UICanvas() { } override fun renderUI(batch: SpriteBatch, camera: OrthographicCamera) { - palette.forEach { it.render(batch, camera) } blendNormalStraightAlpha(batch) + // background + batch.color = DEFAULT_BACKGROUNDCOL + Toolkit.fillArea(batch, 0, 0, width, height) + + palette.forEach { it.render(batch, camera) } + + // gaps between tabs and close button batch.color = DEFAULT_BACKGROUNDCOL Toolkit.fillArea(batch, 0f, tabs.height.toFloat(), MENUBAR_SIZE.toFloat(), height.toFloat() - (tabs.height + closeButton.height)) diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIProxyNewBuildingMaker.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIProxyNewBuildingMaker.kt index dc883ee6d..f92692320 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIProxyNewBuildingMaker.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIProxyNewBuildingMaker.kt @@ -13,7 +13,7 @@ import net.torvald.terrarum.ui.UICanvas /** * Created by minjaesong on 2018-12-08. */ -class UIProxyNewBuildingMaker : UICanvas() { +class UIProxyNewBuildingMaker(val remoCon: UIRemoCon) : UICanvas() { override var width: Int = 0 override var height: Int = 0 diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UITitleRemoConYaml.kt b/src/net/torvald/terrarum/modulebasegame/ui/UITitleRemoConYaml.kt index 8bd404848..564f2d183 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UITitleRemoConYaml.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UITitleRemoConYaml.kt @@ -1,5 +1,6 @@ package net.torvald.terrarum.modulebasegame.ui +import net.torvald.terrarum.App import net.torvald.terrarum.Yaml @@ -32,6 +33,10 @@ object UITitleRemoConYaml { - MENU_LABEL_QUIT """ + val menuBaseDev = """ +- MENU_MODE_BUILDINGMAKER : net.torvald.terrarum.modulebasegame.ui.UIProxyNewBuildingMaker +""" + menuBase + val menuWithSavefile = """ - MENU_LABEL_CONTINUE : net.torvald.terrarum.modulebasegame.ui.UIProxyLoadLatestSave """ @@ -57,6 +62,6 @@ object UITitleRemoConYaml { operator fun invoke(hasSave: Boolean) = // Yaml((if (hasSave) menuWithSavefile else menuNewGame) + menuBase).parse() - Yaml(menuBase).parse() + Yaml(if (App.IS_DEVELOPMENT_BUILD) menuBaseDev else menuBase).parse() } diff --git a/src/net/torvald/terrarum/ui/UIItemTextButtonList.kt b/src/net/torvald/terrarum/ui/UIItemTextButtonList.kt index b15e7f027..a544ba893 100644 --- a/src/net/torvald/terrarum/ui/UIItemTextButtonList.kt +++ b/src/net/torvald/terrarum/ui/UIItemTextButtonList.kt @@ -4,11 +4,8 @@ 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.BlendMode -import net.torvald.terrarum.Second -import net.torvald.terrarum.Terrarum +import net.torvald.terrarum.* import net.torvald.terrarum.langpack.Lang -import net.torvald.terrarum.toInt import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack /** @@ -52,7 +49,10 @@ class UIItemTextButtonList( val alignment: UIItemTextButton.Companion.Alignment = UIItemTextButton.Companion.Alignment.CENTRE, val itemHitboxSize: Int = lineHeight, - tagsCollection: Array> = Array(labelsList.size) { arrayOf("") } + + tagsCollection: Array> = Array(labelsList.size) { arrayOf("") }, + + val backgroundCol: Color = Color(0), ) : UIItem(parentUI, initialX, initialY) { companion object { @@ -238,6 +238,11 @@ class UIItemTextButtonList( } }*/ + batch.color = backgroundCol + blendNormalStraightAlpha(batch) + Toolkit.fillArea(batch, posX.toFloat(), posY.toFloat(), width.toFloat(), height.toFloat()) + + buttons.forEach { it.render(batch, camera) } diff --git a/src/net/torvald/terrarum/ui/UINSMenu.kt b/src/net/torvald/terrarum/ui/UINSMenu.kt index 554f6c36f..fcf61060c 100644 --- a/src/net/torvald/terrarum/ui/UINSMenu.kt +++ b/src/net/torvald/terrarum/ui/UINSMenu.kt @@ -101,16 +101,16 @@ class UINSMenu( val listHeight = stringsFromTree.size * LINE_HEIGHT val list = UIItemTextButtonList( - this, - UIItemTextButtonList.DEFAULT_LINE_HEIGHT, - stringsFromTree, - width, LINE_HEIGHT, - uiWidth, listHeight, - textAreaWidth = listWidth, - alignment = UIItemTextButton.Companion.Alignment.LEFT, - inactiveCol = Color(.94f, .94f, .94f, 1f), - itemHitboxSize = LINE_HEIGHT - + this, + UIItemTextButtonList.DEFAULT_LINE_HEIGHT, + stringsFromTree, + width, LINE_HEIGHT, + uiWidth, listHeight, + textAreaWidth = listWidth, + alignment = UIItemTextButton.Companion.Alignment.LEFT, + inactiveCol = Color(.94f, .94f, .94f, 1f), + itemHitboxSize = LINE_HEIGHT, + backgroundCol = UIItemTextButtonList.DEFAULT_BACKGROUNDCOL ) // List selection change listener