mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-14 12:34:05 +09:00
fixing list UI's colours; buildingmaker palette wip
This commit is contained in:
@@ -15,17 +15,15 @@ open class UIItemImageButton(
|
||||
parent: UICanvas,
|
||||
val image: TextureRegion,
|
||||
|
||||
val buttonCol: Color = Color.WHITE,
|
||||
val buttonBackCol: Color = Color(0),
|
||||
val buttonBackBlendMode: String = BlendMode.NORMAL,
|
||||
|
||||
val activeCol: Color = Color(0xfff066_ff.toInt()),
|
||||
val activeBackCol: Color = Color(0xb0b0b0_ff.toInt()),
|
||||
val activeBackBlendMode: String = BlendMode.MULTIPLY,
|
||||
|
||||
val highlightCol: Color = Color(0x00f8ff_ff),
|
||||
val highlightBackCol: Color = Color(0xb0b0b0_ff.toInt()),
|
||||
val highlightBackBlendMode: String = BlendMode.MULTIPLY,
|
||||
val activeCol: Color = UIItemTextButton.defaultActiveCol,
|
||||
val activeBackCol: Color = UIItemTextButtonList.DEFAULT_BACKGROUND_ACTIVECOL,
|
||||
val activeBackBlendMode: String = BlendMode.NORMAL,
|
||||
val highlightCol: Color = UIItemTextButton.defaultHighlightCol,
|
||||
val highlightBackCol: Color = UIItemTextButtonList.DEFAULT_BACKGROUND_HIGHLIGHTCOL,
|
||||
val highlightBackBlendMode: String = BlendMode.NORMAL,
|
||||
val inactiveCol: Color = UIItemTextButton.defaultInactiveCol,
|
||||
val backgroundCol: Color = UIItemTextButtonList.DEFAULT_BACKGROUNDCOL,
|
||||
val backgroundBlendMode: String = BlendMode.NORMAL,
|
||||
|
||||
override var posX: Int,
|
||||
override var posY: Int,
|
||||
@@ -43,24 +41,29 @@ open class UIItemImageButton(
|
||||
|
||||
override fun render(batch: SpriteBatch, camera: Camera) {
|
||||
// draw background
|
||||
if (mouseUp) {
|
||||
if (highlighted) {
|
||||
BlendMode.resolve(highlightBackBlendMode, batch)
|
||||
batch.color = highlightBackCol
|
||||
batch.fillRect(posX.toFloat(), posY.toFloat(), width.toFloat(), height.toFloat())
|
||||
}
|
||||
else if (mouseUp) {
|
||||
BlendMode.resolve(activeBackBlendMode, batch)
|
||||
batch.color = activeBackCol
|
||||
batch.fillRect(posX.toFloat(), posY.toFloat(), width.toFloat(), height.toFloat())
|
||||
}
|
||||
else {
|
||||
BlendMode.resolve(buttonBackBlendMode, batch)
|
||||
batch.color = buttonBackCol
|
||||
batch.color = backgroundCol
|
||||
BlendMode.resolve(backgroundBlendMode, batch)
|
||||
batch.fillRect(posX.toFloat(), posY.toFloat(), width.toFloat(), height.toFloat())
|
||||
}
|
||||
|
||||
batch.fillRect(posX.toFloat(), posY.toFloat(), width.toFloat(), height.toFloat())
|
||||
|
||||
|
||||
// draw image
|
||||
blendNormal(batch)
|
||||
|
||||
batch.color = if (highlighted) highlightCol
|
||||
else if (mouseUp) activeCol
|
||||
else buttonCol
|
||||
else inactiveCol
|
||||
|
||||
batch.draw(image, (posX + (width - image.regionWidth) / 2).toFloat(), (posY + (height - image.regionHeight) / 2).toFloat())
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ package net.torvald.terrarum.ui
|
||||
|
||||
import com.badlogic.gdx.graphics.Camera
|
||||
import com.badlogic.gdx.graphics.Color
|
||||
import com.badlogic.gdx.graphics.g2d.GlyphLayout
|
||||
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
||||
import net.torvald.terrarum.BlendMode
|
||||
import net.torvald.terrarum.Terrarum
|
||||
@@ -23,13 +22,17 @@ open class UIItemTextButton(
|
||||
override var posY: Int,
|
||||
override val width: Int,
|
||||
val readFromLang: Boolean = false,
|
||||
val activeCol: Color = Color.WHITE,
|
||||
val activeBackCol: Color = Color(0),
|
||||
|
||||
val activeCol: Color = defaultActiveCol,
|
||||
val activeBackCol: Color = UIItemTextButtonList.DEFAULT_BACKGROUND_ACTIVECOL,
|
||||
val activeBackBlendMode: String = BlendMode.NORMAL,
|
||||
val highlightCol: Color = defaultHighlightCol,
|
||||
val highlightBackCol: Color = Color(0xb0b0b0_ff.toInt()),
|
||||
val highlightBackBlendMode: String = BlendMode.MULTIPLY,
|
||||
val inactiveCol: Color = defaultInactiveCol,
|
||||
val highlightCol: Color = UIItemTextButton.defaultHighlightCol,
|
||||
val highlightBackCol: Color = UIItemTextButtonList.DEFAULT_BACKGROUND_HIGHLIGHTCOL,
|
||||
val highlightBackBlendMode: String = BlendMode.NORMAL,
|
||||
val inactiveCol: Color = UIItemTextButton.defaultInactiveCol,
|
||||
val backgroundCol: Color = UIItemTextButtonList.DEFAULT_BACKGROUNDCOL,
|
||||
val backgroundBlendMode: String = BlendMode.NORMAL,
|
||||
|
||||
val preGapX: Int = 0,
|
||||
val postGapX: Int = 0,
|
||||
|
||||
@@ -44,8 +47,9 @@ open class UIItemTextButton(
|
||||
companion object {
|
||||
val font = Terrarum.fontGame
|
||||
val height = font.lineHeight.toInt()
|
||||
val defaultInactiveCol: Color = Color(0xc8c8c8_ff.toInt())
|
||||
val defaultHighlightCol: Color = Color(0x00f8ff_ff)
|
||||
val defaultInactiveCol = Color.WHITE
|
||||
val defaultHighlightCol = Color(0x00f8ff_ff)
|
||||
val defaultActiveCol = Color(0xfff066_ff.toInt())
|
||||
|
||||
enum class Alignment {
|
||||
CENTRE, LEFT, RIGHT
|
||||
@@ -61,13 +65,11 @@ open class UIItemTextButton(
|
||||
|
||||
var highlighted: Boolean = false
|
||||
|
||||
|
||||
private val glyphLayout = GlyphLayout()
|
||||
|
||||
override fun render(batch: SpriteBatch, camera: Camera) {
|
||||
val textW = font.getWidth(label)
|
||||
|
||||
|
||||
// draw background
|
||||
if (highlighted) {
|
||||
BlendMode.resolve(highlightBackBlendMode, batch)
|
||||
batch.color = highlightBackCol
|
||||
@@ -78,6 +80,12 @@ open class UIItemTextButton(
|
||||
batch.color = activeBackCol
|
||||
batch.fillRect(posX.toFloat(), posY.toFloat(), width.toFloat(), height.toFloat())
|
||||
}
|
||||
else {
|
||||
batch.color = backgroundCol
|
||||
BlendMode.resolve(backgroundBlendMode, batch)
|
||||
batch.fillRect(posX.toFloat(), posY.toFloat(), width.toFloat(), height.toFloat())
|
||||
}
|
||||
|
||||
|
||||
blendNormal(batch)
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ import net.torvald.terrarum.Second
|
||||
import net.torvald.terrarum.fillRect
|
||||
import net.torvald.terrarum.gameactors.ai.toInt
|
||||
import net.torvald.terrarum.roundInt
|
||||
import net.torvald.terrarum.ui.UIItemTextButton.Companion.defaultActiveCol
|
||||
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
|
||||
|
||||
/**
|
||||
@@ -30,23 +31,26 @@ class UIItemTextButtonList(
|
||||
val iconCol: Color = UIItemTextButton.defaultInactiveCol,
|
||||
|
||||
// copied directly from UIItemTextButton
|
||||
val activeCol: Color = Color(0xfff066_ff.toInt()),
|
||||
val activeBackCol: Color = Color(0),
|
||||
val activeCol: Color = defaultActiveCol,
|
||||
val activeBackCol: Color = DEFAULT_BACKGROUND_ACTIVECOL,
|
||||
val activeBackBlendMode: String = BlendMode.NORMAL,
|
||||
val highlightCol: Color = Color(0x00f8ff_ff),
|
||||
val highlightBackCol: Color = Color(0xb0b0b0_ff.toInt()),
|
||||
val highlightBackBlendMode: String = BlendMode.MULTIPLY,
|
||||
val inactiveCol: Color = Color(0xc0c0c0_ff.toInt()),
|
||||
val highlightCol: Color = UIItemTextButton.defaultHighlightCol,
|
||||
val highlightBackCol: Color = DEFAULT_BACKGROUND_HIGHLIGHTCOL,
|
||||
val highlightBackBlendMode: String = BlendMode.NORMAL,
|
||||
val inactiveCol: Color = UIItemTextButton.defaultInactiveCol,
|
||||
val backgroundCol: Color = UIItemTextButtonList.DEFAULT_BACKGROUNDCOL,
|
||||
val backgroundBlendMode: String = BlendMode.NORMAL,
|
||||
|
||||
val kinematic: Boolean = false,
|
||||
|
||||
val alignment: UIItemTextButton.Companion.Alignment = UIItemTextButton.Companion.Alignment.CENTRE,
|
||||
val itemHitboxSize: Int = UIItemTextButton.height
|
||||
val itemHitboxSize: Int = DEFAULT_LINE_HEIGHT
|
||||
) : UIItem(parentUI) {
|
||||
|
||||
companion object {
|
||||
val DEFAULT_BACKGROUNDCOL = Color(0x242424_80)
|
||||
val DEFAULT_BACKGROUND_HIGHLIGHTCOL = Color(0x121212BF)
|
||||
val DEFAULT_BACKGROUND_ACTIVECOL = Color(0x1b1b1b9F)
|
||||
val DEFAULT_LINE_HEIGHT = 36
|
||||
}
|
||||
|
||||
@@ -87,6 +91,8 @@ class UIItemTextButtonList(
|
||||
highlightBackCol = highlightBackCol,
|
||||
highlightBackBlendMode = highlightBackBlendMode,
|
||||
inactiveCol = inactiveCol,
|
||||
backgroundCol = backgroundCol,
|
||||
backgroundBlendMode = backgroundBlendMode,
|
||||
preGapX = pregap,
|
||||
postGapX = postgap,
|
||||
alignment = alignment,
|
||||
@@ -106,6 +112,7 @@ class UIItemTextButtonList(
|
||||
highlightCol = highlightCol,
|
||||
highlightBackCol = activeBackCol, // we are using custom highlighter
|
||||
highlightBackBlendMode = activeBackBlendMode, // we are using custom highlighter
|
||||
backgroundCol = Color(0),
|
||||
inactiveCol = inactiveCol,
|
||||
preGapX = pregap,
|
||||
postGapX = postgap,
|
||||
@@ -203,14 +210,16 @@ class UIItemTextButtonList(
|
||||
|
||||
override fun render(batch: SpriteBatch, camera: Camera) {
|
||||
|
||||
batch.color = backgroundCol
|
||||
BlendMode.resolve(backgroundBlendMode, batch)
|
||||
batch.fillRect(posX.toFloat(), posY.toFloat(), width.toFloat(), height.toFloat())
|
||||
if (kinematic) {
|
||||
batch.color = backgroundCol
|
||||
BlendMode.resolve(backgroundBlendMode, batch)
|
||||
batch.fillRect(posX.toFloat(), posY.toFloat(), width.toFloat(), height.toFloat())
|
||||
|
||||
batch.color = highlightBackCol
|
||||
BlendMode.resolve(highlightBackBlendMode, batch)
|
||||
if (highlightY != null) {
|
||||
batch.fillRect(posX.toFloat(), highlightY!!.toFloat(), width.toFloat(), itemHitboxSize.toFloat())
|
||||
batch.color = highlightBackCol
|
||||
BlendMode.resolve(highlightBackBlendMode, batch)
|
||||
if (highlightY != null) {
|
||||
batch.fillRect(posX.toFloat(), highlightY!!.toFloat(), width.toFloat(), itemHitboxSize.toFloat())
|
||||
}
|
||||
}
|
||||
|
||||
buttons.forEach { it.render(batch, camera) }
|
||||
|
||||
@@ -104,7 +104,6 @@ class UINSMenu(
|
||||
uiWidth, listHeight,
|
||||
textAreaWidth = listWidth,
|
||||
alignment = UIItemTextButton.Companion.Alignment.LEFT,
|
||||
activeBackCol = UIItemTextButtonList.DEFAULT_BACKGROUNDCOL,//Color(1f,0f,.75f,1f),
|
||||
inactiveCol = Color(.94f,.94f,.94f,1f),
|
||||
itemHitboxSize = LINE_HEIGHT
|
||||
|
||||
|
||||
Reference in New Issue
Block a user