From 97f8aa6e6e35b83adbbfd7572249b30892c56a62 Mon Sep 17 00:00:00 2001 From: Minjae Song Date: Wed, 5 Jun 2019 16:28:35 +0900 Subject: [PATCH] weather to not use expensive math; colormap now also holds cvec --- src/net/torvald/terrarum/GdxColorMap.kt | 7 ++++++- .../terrarum/modulebasegame/weather/WeatherMixer.kt | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/net/torvald/terrarum/GdxColorMap.kt b/src/net/torvald/terrarum/GdxColorMap.kt index b2c31f4bf..a46a67de7 100644 --- a/src/net/torvald/terrarum/GdxColorMap.kt +++ b/src/net/torvald/terrarum/GdxColorMap.kt @@ -3,6 +3,7 @@ package net.torvald.terrarum import com.badlogic.gdx.files.FileHandle import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.Pixmap +import net.torvald.gdx.graphics.Cvec /** * Created by minjaesong on 2017-06-17. @@ -22,6 +23,7 @@ class GdxColorMap { pixmap.getPixel(it % pixmap.width, it / pixmap.width) } dataGdxColor = dataRaw.map { Color(it) }.toTypedArray() + dataCvec = dataRaw.map { Cvec(it) }.toTypedArray() pixmap.dispose() } @@ -35,6 +37,7 @@ class GdxColorMap { pixmap.getPixel(it % pixmap.width, it / pixmap.width) } dataGdxColor = dataRaw.map { Color(it) }.toTypedArray() + dataCvec = dataRaw.map { Cvec(it) }.toTypedArray() if (disposePixmap) pixmap.dispose() } @@ -42,6 +45,7 @@ class GdxColorMap { constructor(color: Color) { dataRaw = intArrayOf(color.toIntBits()) dataGdxColor = dataRaw.map { Color(it) }.toTypedArray() + dataCvec = dataRaw.map { Cvec(it) }.toTypedArray() width = 1 height = 1 is2D = false @@ -50,6 +54,7 @@ class GdxColorMap { constructor(gradStart: Color, gradEnd: Color) { dataRaw = intArrayOf(gradStart.toIntBits(), gradEnd.toIntBits()) dataGdxColor = dataRaw.map { Color(it) }.toTypedArray() + dataCvec = dataRaw.map { Cvec(it) }.toTypedArray() width = 1 height = 2 is2D = true @@ -57,7 +62,7 @@ class GdxColorMap { private val dataRaw: IntArray private val dataGdxColor: Array - //private val dataCvec: Array + private val dataCvec: Array val width: Int val height: Int val is2D: Boolean diff --git a/src/net/torvald/terrarum/modulebasegame/weather/WeatherMixer.kt b/src/net/torvald/terrarum/modulebasegame/weather/WeatherMixer.kt index d4463b887..f76405c4b 100644 --- a/src/net/torvald/terrarum/modulebasegame/weather/WeatherMixer.kt +++ b/src/net/torvald/terrarum/modulebasegame/weather/WeatherMixer.kt @@ -194,7 +194,7 @@ internal object WeatherMixer : RNGConsumer { // interpolate R, G, B and A val scale = (timeInSec % dataPointDistance).toFloat() / dataPointDistance // [0.0, 1.0] - val newCol = CIELuvUtil.getGradient(scale, colourThis, colourNext) + val newCol = colourThis.cpy().lerp(colourNext, scale)//CIELuvUtil.getGradient(scale, colourThis, colourNext) /* // very nice monitor code // 65 -> 66 | 300 | 19623 | RGB8(255, 0, 255) -[41%]-> RGB8(193, 97, 23) | * `230`40`160`