rendering: fix some last issues with blockConditions

This commit is contained in:
Lukas 2021-03-06 20:19:17 +01:00
parent c129c1adce
commit 46c9df3b54
2 changed files with 8 additions and 16 deletions

View File

@ -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<MutableSet<BlockProperties>> = mutableListOf()
for ((propertyName, propertyJsonValue) in data.entrySet()) {
@ -86,28 +87,17 @@ open class BlockCondition {
blockProperties.add(current)
}
constructor()
open fun contains(testProperties: MutableSet<BlockProperties>, 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
}

View File

@ -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