mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-22 02:42:16 -04:00
better way to brighten colors (#13631)
* better `Color.brighten()` and `Color.darken()` but this time fixed! * bring the previous behavior for `darken` back * revert comment
This commit is contained in:
parent
6a652bbe9d
commit
f6e583250a
@ -91,14 +91,21 @@ fun colorFromHex(hexColor: Int): Color {
|
||||
|
||||
/** Create a new [Color] instance from [r]/[g]/[b] given as Integers in the range 0..255 */
|
||||
fun colorFromRGB(r: Int, g: Int, b: Int) = Color(r / 255f, g / 255f, b / 255f, 1f)
|
||||
|
||||
/** Create a new [Color] instance from r/g/b given as Integers in the range 0..255 in the form of a 3-element List [rgb] */
|
||||
fun colorFromRGB(rgb: List<Int>) = colorFromRGB(rgb[0], rgb[1], rgb[2])
|
||||
|
||||
/** Linearly interpolates between this [Color] and [BLACK][ImageGetter.CHARCOAL] by [t] which is in the range [[0,1]].
|
||||
* The result is returned as a new instance. */
|
||||
fun Color.darken(t: Float): Color = Color(this).lerp(Color.BLACK, t)
|
||||
/** Linearly interpolates between this [Color] and [WHITE][Color.WHITE] by [t] which is in the range [[0,1]].
|
||||
* The result is returned as a new instance. */
|
||||
fun Color.brighten(t: Float): Color = Color(this).lerp(Color.WHITE, t)
|
||||
|
||||
/** Linearly interpolates between this [Color] and [WHITE][Color.WHITE] by [t] which is in the range [[0,1]],
|
||||
* preserving color ratio in RGB. The result is returned as a new instance. */
|
||||
fun Color.brighten(t: Float): Color = Color(this).let {
|
||||
val lightness = maxOf(r, g, b)
|
||||
val targetRatio = (lightness + t * (1 - lightness)) / lightness
|
||||
return it.mul(targetRatio)
|
||||
}
|
||||
|
||||
|
||||
fun Actor.centerX(parent: Actor) { x = parent.width / 2 - width / 2 }
|
||||
@ -242,7 +249,7 @@ fun <T : Actor> Table.addCell(actor: T): Table {
|
||||
return this
|
||||
}
|
||||
|
||||
/** Shortcut for [Cell].[pad][com.badlogic.gdx.scenes.scene2d.ui.Cell.pad] with top=bottom and left=right */
|
||||
/** Shortcut for [Cell].[pad][Cell.pad] with top=bottom and left=right */
|
||||
fun <T : Actor> Cell<T>.pad(vertical: Float, horizontal: Float): Cell<T> {
|
||||
return pad(vertical, horizontal, vertical, horizontal)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user