fixing list UI's colours; buildingmaker palette wip

This commit is contained in:
minjaesong
2019-02-14 15:55:31 +09:00
parent 880b5e70b5
commit d020bedba1
14 changed files with 229 additions and 64 deletions

View File

@@ -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())
}

View File

@@ -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)

View File

@@ -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) }

View File

@@ -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