From 46c9df3b546be11a4b9ae442f95a8b9736adb26c Mon Sep 17 00:00:00 2001 From: Lukas Date: Sat, 6 Mar 2021 20:19:17 +0100 Subject: [PATCH] rendering: fix some last issues with blockConditions --- .../chunk/models/loading/BlockCondition.kt | 22 +++++-------------- .../models/renderable/ElementRenderer.kt | 2 ++ 2 files changed, 8 insertions(+), 16 deletions(-) diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/chunk/models/loading/BlockCondition.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/chunk/models/loading/BlockCondition.kt index b4ede076f..b3a8d7346 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/chunk/models/loading/BlockCondition.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/chunk/models/loading/BlockCondition.kt @@ -27,7 +27,6 @@ open class BlockCondition { constructor(data: JsonElement) { when (data) { - null -> return is JsonObject -> { addToProperties(data.asJsonObject) } @@ -39,6 +38,8 @@ open class BlockCondition { } } + constructor() + private fun addToProperties(data: JsonObject) { val current: MutableList> = mutableListOf() for ((propertyName, propertyJsonValue) in data.entrySet()) { @@ -86,28 +87,17 @@ open class BlockCondition { blockProperties.add(current) } - constructor() - open fun contains(testProperties: MutableSet, testRotation: BlockRotations): Boolean { if (rotation != BlockRotations.NONE && rotation != testRotation) { return false } - for (propertiesSubSet in blockProperties) { - var propertiesGood = true + outerLoop@ for (propertiesSubSet in blockProperties) { for (properties in propertiesSubSet) { - for (property in properties) { - if (! testProperties.contains(property)) { - propertiesGood = false - break - } - } - if (! propertiesGood) { - break + if (testProperties.intersect(properties).isEmpty()) { + continue@outerLoop } } - if (propertiesGood) { - return true - } + return true } return false } diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/chunk/models/renderable/ElementRenderer.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/chunk/models/renderable/ElementRenderer.kt index cdaa305d3..0b4bef19f 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/chunk/models/renderable/ElementRenderer.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/chunk/models/renderable/ElementRenderer.kt @@ -17,6 +17,8 @@ import com.google.common.collect.HashBiMap import com.google.gson.JsonObject import de.bixilon.minosoft.data.Axes import de.bixilon.minosoft.data.Directions +import de.bixilon.minosoft.data.mappings.ResourceLocation +import de.bixilon.minosoft.data.mappings.versions.VersionMapping import de.bixilon.minosoft.data.text.RGBColor import de.bixilon.minosoft.data.world.BlockPosition import de.bixilon.minosoft.data.world.light.LightAccessor