From f94adbd3de3fceceb46a5ec3213ec1f5d644e065 Mon Sep 17 00:00:00 2001 From: Bixilon Date: Fri, 30 Apr 2021 13:07:31 +0200 Subject: [PATCH] fix version mapping block getting with pre flattening meta data --- .../minosoft/data/mappings/versions/VersionMapping.kt | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/versions/VersionMapping.kt b/src/main/java/de/bixilon/minosoft/data/mappings/versions/VersionMapping.kt index 1bd6cef5e..af5149297 100644 --- a/src/main/java/de/bixilon/minosoft/data/mappings/versions/VersionMapping.kt +++ b/src/main/java/de/bixilon/minosoft/data/mappings/versions/VersionMapping.kt @@ -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)