From 277d23fff457a0b9a2ac1fbc9f0ae8464bb515fa Mon Sep 17 00:00:00 2001 From: Bixilon Date: Mon, 7 Jun 2021 17:43:36 +0200 Subject: [PATCH] fix crash when sprinting above fluids, fix wrong outline/collision boxes for some blocks (stairs, hoppers, etc) --- .../gui/rendering/chunk/models/renderable/FluidRenderer.kt | 6 ++++-- .../render/texture/advanced/block/BlockDustParticle.kt | 2 +- .../java/de/bixilon/minosoft/gui/rendering/util/VecUtil.kt | 2 ++ 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/chunk/models/renderable/FluidRenderer.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/chunk/models/renderable/FluidRenderer.kt index 327a998a2..797a5e080 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/chunk/models/renderable/FluidRenderer.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/chunk/models/renderable/FluidRenderer.kt @@ -28,8 +28,10 @@ class FluidRenderer( ) : BlockLikeRenderer { override val faceBorderSizes: Array?> = arrayOfNulls(Directions.VALUES.size) override val transparentFaces: BooleanArray = BooleanArray(Directions.VALUES.size) - private lateinit var stillTexture: Texture - private lateinit var flowingTexture: Texture + lateinit var stillTexture: Texture + private set + lateinit var flowingTexture: Texture + private set override fun render(context: BlockLikeRenderContext) { if (!RenderConstants.RENDER_FLUIDS) { diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/particle/types/render/texture/advanced/block/BlockDustParticle.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/particle/types/render/texture/advanced/block/BlockDustParticle.kt index 6f88f1f75..f1f996197 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/particle/types/render/texture/advanced/block/BlockDustParticle.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/particle/types/render/texture/advanced/block/BlockDustParticle.kt @@ -43,7 +43,7 @@ class BlockDustParticle(connection: PlayConnection, position: Vec3d, velocity: V texture = when (renderer) { is BlockRenderer -> renderer.textureMapping.iterator().next().value - is FluidRenderer -> TODO() + is FluidRenderer -> renderer.stillTexture // ToDo else -> TODO() } diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/util/VecUtil.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/util/VecUtil.kt index 5e66e80ad..7bd7b74ac 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/util/VecUtil.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/util/VecUtil.kt @@ -16,6 +16,7 @@ package de.bixilon.minosoft.gui.rendering.util import com.google.gson.JsonArray import com.google.gson.JsonElement import com.google.gson.JsonObject +import com.google.gson.JsonPrimitive import de.bixilon.minosoft.Minosoft import de.bixilon.minosoft.data.Axes import de.bixilon.minosoft.data.Directions @@ -68,6 +69,7 @@ object VecUtil { return when (this) { is JsonArray -> Vec3(this[0].asFloat, this[1].asFloat, this[2].asFloat) is JsonObject -> Vec3(this["x"]?.asFloat ?: 0, this["y"]?.asFloat ?: 0, this["z"]?.asFloat ?: 0) + is JsonPrimitive -> Vec3(this.asFloat) else -> throw IllegalArgumentException("Not a Vec3!") } }