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"
+ }
}
}