fix multipart generation

This commit is contained in:
Bixilon 2021-04-09 12:44:05 +02:00
parent 32bb7bb75f
commit 21ca745c54
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4
2 changed files with 14 additions and 12 deletions

View File

@ -164,5 +164,5 @@ object PixLyzer {
}
private val initializeGameVersionMethod = getGetter(getClass("net.minecraft.SharedConstants"), "method_36208")
private val initializeGameVersionMethod = getGetter(getClass("net.minecraft.SharedConstants"), "createGameVersion", "method_36208")
}

View File

@ -73,7 +73,7 @@ object BlockGenerator : Generator(
val render = Util.readJsonMinecraftResource("assets/${resourceIdentifier.namespace}/blockstates/${resourceIdentifier.path}.json")
val multipartVariants: MutableMap<MutableMap<String, MutableSet<String>>, JsonElement> = mutableMapOf()
val multipartVariants: MutableMap<MutableMap<String, MutableSet<String>>, MutableList<JsonElement>> = mutableMapOf()
render["multipart"]?.asJsonArray?.let {
@ -108,7 +108,7 @@ object BlockGenerator : Generator(
}
addBlockModel(condition["apply"])
for (propertyMap in properties) {
multipartVariants[propertyMap] = condition["apply"]
multipartVariants.getOrPut(propertyMap, { mutableListOf() }).add(condition["apply"])
}
}
}
@ -244,7 +244,7 @@ object BlockGenerator : Generator(
}
}
val multipart = JsonArray()
for ((properties, element) in multipartVariants) {
for ((properties, elementList) in multipartVariants) {
var valid = true
for ((propertyName, values) in properties) {
if (!propertyData.has(propertyName)) {
@ -257,15 +257,17 @@ object BlockGenerator : Generator(
}
}
if (valid) {
if (element is JsonArray) {
for (apply in element) {
if (!multipart.contains(apply)) {
multipart.add(apply)
for (element in elementList) {
if (element is JsonArray) {
for (apply in element) {
if (!multipart.contains(apply)) {
multipart.add(apply)
}
}
} else if (element is JsonObject) {
if (!multipart.contains(element)) {
multipart.add(element)
}
}
} else if (element is JsonObject) {
if (!multipart.contains(element)) {
multipart.add(element)
}
}
}