mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-11 02:54:04 +09:00
randomised weather but i'm just faking it rn
This commit is contained in:
@@ -1,9 +1,12 @@
|
||||
package net.torvald.terrarum.weather
|
||||
|
||||
import com.badlogic.gdx.math.Vector2
|
||||
import com.badlogic.gdx.math.Vector3
|
||||
import com.badlogic.gdx.utils.JsonValue
|
||||
import com.jme3.math.FastMath
|
||||
import net.torvald.terrarum.GdxColorMap
|
||||
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
|
||||
import kotlin.math.absoluteValue
|
||||
|
||||
/**
|
||||
* Note: Colour maps are likely to have sparse data points
|
||||
@@ -13,27 +16,45 @@ import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
|
||||
* Created by minjaesong on 2016-07-11.
|
||||
*/
|
||||
data class BaseModularWeather(
|
||||
val json: JsonValue,
|
||||
var skyboxGradColourMap: GdxColorMap, // row 0: skybox grad top, row 1: skybox grad bottom, row 2: sunlight (RGBA)
|
||||
val daylightClut: GdxColorMap,
|
||||
val classification: String,
|
||||
val cloudChance: Float,
|
||||
val windSpeed: Float,
|
||||
val cloudGamma: Vector2,
|
||||
val cloudGammaVariance: Vector2,
|
||||
var clouds: List<CloudProps>, // sorted by CloudProps.probability
|
||||
val json: JsonValue,
|
||||
var skyboxGradColourMap: GdxColorMap, // row 0: skybox grad top, row 1: skybox grad bottom, row 2: sunlight (RGBA)
|
||||
val daylightClut: GdxColorMap,
|
||||
val classification: String,
|
||||
val cloudChance: Float,
|
||||
val windSpeed: Float,
|
||||
val windSpeedVariance: Float,
|
||||
val cloudGamma: Vector2,
|
||||
val cloudGammaVariance: Vector2,
|
||||
var clouds: List<CloudProps>, // sorted by CloudProps.probability
|
||||
|
||||
val mixFrom: String? = null,
|
||||
val mixPercentage: Double? = null
|
||||
)
|
||||
val mixFrom: String? = null,
|
||||
val mixPercentage: Double? = null,
|
||||
|
||||
var forceWindVec: Vector3? = null
|
||||
) {
|
||||
/**
|
||||
* @param rnd random number between -1 and +1
|
||||
*/
|
||||
fun getRandomWindSpeed(rnd: Float): Float {
|
||||
val v = 1f + rnd.absoluteValue * windSpeedVariance
|
||||
return if (rnd < 0) windSpeed / v else windSpeed * v
|
||||
}
|
||||
}
|
||||
|
||||
data class CloudProps(
|
||||
val category: String,
|
||||
val spriteSheet: TextureRegionPack,
|
||||
val probability: Float,
|
||||
val baseScale: Float,
|
||||
val scaleVariance: Float,
|
||||
val altLow: Float,
|
||||
val altHigh: Float,
|
||||
val category: String,
|
||||
val spriteSheet: TextureRegionPack,
|
||||
val probability: Float,
|
||||
val baseScale: Float,
|
||||
val scaleVariance: Float,
|
||||
val altLow: Float,
|
||||
val altHigh: Float,
|
||||
) {
|
||||
/**
|
||||
* @param rnd random number between -1 and +1
|
||||
*/
|
||||
fun getCloudScaleVariance(rnd: Float): Float {
|
||||
val v = 1f + rnd.absoluteValue * scaleVariance
|
||||
return if (rnd < 0) baseScale / v else baseScale * v
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user