From ef7fecdca95601d3897e48d8360bdc77b040d5fc Mon Sep 17 00:00:00 2001 From: Bixilon Date: Thu, 21 Apr 2022 12:28:37 +0200 Subject: [PATCH] 22w16b --- pom.xml | 2 +- .../generators/EntityDataDataTypeGenerator.kt | 1 + .../pixlyzer/generator/generators/EntityGenerator.kt | 4 +++- .../pixlyzer/generator/generators/MotiveGenerator.kt | 11 +++++++---- src/main/resources/entities_metadata_mappings.json | 7 ++++++- 5 files changed, 18 insertions(+), 7 deletions(-) diff --git a/pom.xml b/pom.xml index 03833d0..5e173db 100644 --- a/pom.xml +++ b/pom.xml @@ -17,7 +17,7 @@ 1.8 1.8 1.8 - 22w15a + 22w16b diff --git a/src/main/kotlin/de/bixilon/pixlyzer/generator/generators/EntityDataDataTypeGenerator.kt b/src/main/kotlin/de/bixilon/pixlyzer/generator/generators/EntityDataDataTypeGenerator.kt index b9bf336..4abc09c 100644 --- a/src/main/kotlin/de/bixilon/pixlyzer/generator/generators/EntityDataDataTypeGenerator.kt +++ b/src/main/kotlin/de/bixilon/pixlyzer/generator/generators/EntityDataDataTypeGenerator.kt @@ -64,6 +64,7 @@ object EntityDataDataTypeGenerator : Generator( "field_38826", "CAT_VARIANT" -> "CAT_VARIANT" "field_38827", "FROG_VARIANT" -> "FROG_VARIANT" "FIREWORK_DATA", "field_17910" -> "FIREWORK_DATA" + "PAINTING_VARIANT" -> "MOTIVE" else -> TODO("Unknown meta data type: $this") } } diff --git a/src/main/kotlin/de/bixilon/pixlyzer/generator/generators/EntityGenerator.kt b/src/main/kotlin/de/bixilon/pixlyzer/generator/generators/EntityGenerator.kt index d8f5c41..ee0bad7 100644 --- a/src/main/kotlin/de/bixilon/pixlyzer/generator/generators/EntityGenerator.kt +++ b/src/main/kotlin/de/bixilon/pixlyzer/generator/generators/EntityGenerator.kt @@ -170,6 +170,7 @@ object EntityGenerator : Generator( "class_4985" -> "StriderEntity" "class_4836" -> "PiglinEntity" "class_7102" -> "FrogEntity" + "HorseBaseEntity" -> "AbstractHorseEntity" else -> className } } @@ -186,7 +187,8 @@ object EntityGenerator : Generator( } field.isAccessible = true val dataAccessor: TrackedData<*> = field.get(null) as TrackedData<*> - val entityClazzData = PixLyzer.ENTITY_META_DATA_MAPPING[correctClassName(clazz.simpleName)]?.mapCast() ?: error("Can not find entity: " + correctClassName(clazz.simpleName)) + val className = correctClassName(clazz.simpleName) + val entityClazzData = PixLyzer.ENTITY_META_DATA_MAPPING[className]?.mapCast() ?: error("Can not find entity: $className, requires field ${field.name}") val entityData = entityClazzData["data"]!!.mapCast()!! val realFieldName = entityData[field.name]?.toString() ?: error("Can not find meta data field ${field.name} for ${clazz.simpleName}") json[realFieldName] = dataAccessor.id diff --git a/src/main/kotlin/de/bixilon/pixlyzer/generator/generators/MotiveGenerator.kt b/src/main/kotlin/de/bixilon/pixlyzer/generator/generators/MotiveGenerator.kt index d526ff4..9167a05 100644 --- a/src/main/kotlin/de/bixilon/pixlyzer/generator/generators/MotiveGenerator.kt +++ b/src/main/kotlin/de/bixilon/pixlyzer/generator/generators/MotiveGenerator.kt @@ -1,9 +1,9 @@ package de.bixilon.pixlyzer.generator.generators import de.bixilon.pixlyzer.generator.Generator +import de.bixilon.pixlyzer.util.ReflectionUtil.getClass import de.bixilon.pixlyzer.util.ReflectionUtil.getField import de.bixilon.pixlyzer.util.Util.compound -import net.minecraft.entity.decoration.painting.PaintingMotive import net.minecraft.util.registry.Registry object MotiveGenerator : Generator( @@ -15,12 +15,15 @@ object MotiveGenerator : Generator( val motiveData = compound() motiveData["id"] = MOTIVE_REGISTRY.getRawId(motive) - motiveData["width"] = motive.width - motiveData["height"] = motive.height + motiveData["width"] = WIDTH_FIELD.get(motive) as Int + motiveData["height"] = HEIGHT_FIELD.get(motive) as Int data[resourceLocation.toString()] = motiveData } } - val MOTIVE_REGISTRY = getField(Registry::class.java, "PAINTING_MOTIVE", "MOTIVE")!!.get(null) as Registry + val MOTIVE_REGISTRY = getField(Registry::class.java, "PAINTING_VARIANT", "PAINTING_MOTIVE", "MOTIVE")!!.get(null) as Registry + val MOTIVE_CLASS = getClass("net.minecraft.entity.decoration.painting.PaintingVariant", "net.minecraft.entity.decoration.painting.PaintingMotive") + val WIDTH_FIELD = getField(MOTIVE_CLASS, "width")!! + val HEIGHT_FIELD = getField(MOTIVE_CLASS, "height")!! } diff --git a/src/main/resources/entities_metadata_mappings.json b/src/main/resources/entities_metadata_mappings.json index 5fab764..bca0922 100644 --- a/src/main/resources/entities_metadata_mappings.json +++ b/src/main/resources/entities_metadata_mappings.json @@ -202,7 +202,7 @@ "CHEST": "ABSTRACT_CHESTED_HORSE_HAS_CHEST" } }, - "HorseBaseEntity": { + "AbstractHorseEntity": { "data": { "HORSE_FLAGS": "ABSTRACT_HORSE_FLAGS", "OWNER_UUID": "ABSTRACT_HORSE_OWNER_UUID" @@ -586,5 +586,10 @@ "data": { "ANGER": "WARDEN_ANGER" } + }, + "PaintingEntity": { + "data": { + "VARIANT": "MOTIVE" + } } }