diff --git a/src/main/java/de/bixilon/minosoft/config/profile/profiles/rendering/overlay/OverlayC.kt b/src/main/java/de/bixilon/minosoft/config/profile/profiles/rendering/overlay/OverlayC.kt index a7ead3cbc..4b42ca0b7 100644 --- a/src/main/java/de/bixilon/minosoft/config/profile/profiles/rendering/overlay/OverlayC.kt +++ b/src/main/java/de/bixilon/minosoft/config/profile/profiles/rendering/overlay/OverlayC.kt @@ -15,6 +15,7 @@ package de.bixilon.minosoft.config.profile.profiles.rendering.overlay import de.bixilon.minosoft.config.profile.profiles.rendering.RenderingProfileManager.delegate import de.bixilon.minosoft.config.profile.profiles.rendering.overlay.fire.FireC +import de.bixilon.minosoft.config.profile.profiles.rendering.overlay.weather.WeatherC class OverlayC { /** @@ -33,4 +34,5 @@ class OverlayC { var worldBorder by delegate(true) val fire = FireC() + val weather = WeatherC() } diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/framebuffer/world/overlay/overlays/weather/WeatherOverlay.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/framebuffer/world/overlay/overlays/weather/WeatherOverlay.kt index 2d1270730..7d17c2b35 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/framebuffer/world/overlay/overlays/weather/WeatherOverlay.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/framebuffer/world/overlay/overlays/weather/WeatherOverlay.kt @@ -31,12 +31,16 @@ import java.util.* class WeatherOverlay(private val renderWindow: RenderWindow, private val z: Float) : Overlay { private val world = renderWindow.connection.world - private val config = renderWindow.connection.profiles.rendering.overlay + private val config = renderWindow.connection.profiles.rendering.overlay.weather private val rain = renderWindow.textureManager.staticTextures.createTexture(RAIN) private val snow = renderWindow.textureManager.staticTextures.createTexture(SNOW) private val precipitation get() = renderWindow.connection.player.positionInfo.biome?.precipitation ?: BiomePrecipitation.NONE override val render: Boolean - get() = world.weather.raining && precipitation != BiomePrecipitation.NONE // ToDo: Check if exposed to the sky + get() = world.weather.raining && when (precipitation) { // ToDo: Check if exposed to the sky + BiomePrecipitation.NONE -> false + BiomePrecipitation.RAIN -> config.rain + BiomePrecipitation.SNOW -> config.snow + } private val texture: AbstractTexture? get() = when (precipitation) { BiomePrecipitation.NONE -> null @@ -93,10 +97,8 @@ class WeatherOverlay(private val renderWindow: RenderWindow, private val z: Floa private fun updateShader() { shader.setFloat("uIntensity", world.weather.rain) val offset = (millis() % 500L) / 500.0f - println("Offset: $offset") shader.setFloat("uOffset", -offset) shader.setUInt("uIndexLayer", texture!!.shaderId) -// shader.setVec2("uMaxUV", texture!!.textureArrayUV) } override fun draw() { diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/sky/box/SkyboxRenderer.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/sky/box/SkyboxRenderer.kt index 467db9695..a1da8bebf 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/sky/box/SkyboxRenderer.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/sky/box/SkyboxRenderer.kt @@ -272,7 +272,7 @@ class SkyboxRenderer( val delta = (abs(progress - 0.5f) * 2.0f) val sine = maxOf(sin(delta.pow(3) * PI.toFloat() / 2.0f), 0.4f) - color = interpolateLinear(sine * intensity, SUNSET_BASE_COLOR, color) + color = interpolateLinear(sine, SUNSET_BASE_COLOR, color) color = interpolateLinear(intensity, baseColor, color) return color