fix version mapping block getting with pre flattening meta data

This commit is contained in:
Bixilon 2021-04-30 13:07:31 +02:00
parent efe05ed03f
commit f94adbd3de
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4

View File

@ -101,6 +101,8 @@ class VersionMapping {
var isFullyLoaded = false
private set
private var isFlattened = false
var parentMapping: VersionMapping? = null
set(value) {
@ -115,7 +117,13 @@ class VersionMapping {
if (blockState == ProtocolDefinition.NULL_BLOCK_ID) {
return null
}
return blockStateIdMap[blockState] ?: parentMapping?.getBlockState(blockState)
return blockStateIdMap[blockState] ?: parentMapping?.getBlockState(blockState) ?: let {
if (isFlattened) {
null
} else {
blockStateIdMap[(blockState shr 4) shl 4] // Remove meta data and test again
}
}
}
fun getEntityMetaDataIndex(field: EntityMetaDataFields): Int? {
@ -131,6 +139,7 @@ class VersionMapping {
}
fun load(version: Version, pixlyzerData: JsonObject) {
isFlattened = version.isFlattened()
// pre init stuff
loadShapes(pixlyzerData["shapes"]?.asJsonObject)