From 1d134f3bb2133560de4c6d5f4e4d1afa7768a373 Mon Sep 17 00:00:00 2001 From: Bixilon Date: Mon, 26 Sep 2022 21:30:27 +0200 Subject: [PATCH] chunk: clear blocks section data if only null elements --- src/main/java/de/bixilon/minosoft/util/KUtil.kt | 13 +++++++++++++ .../de/bixilon/minosoft/util/chunk/ChunkUtil.kt | 5 ++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main/java/de/bixilon/minosoft/util/KUtil.kt b/src/main/java/de/bixilon/minosoft/util/KUtil.kt index 55af632b5..20889cbe0 100644 --- a/src/main/java/de/bixilon/minosoft/util/KUtil.kt +++ b/src/main/java/de/bixilon/minosoft/util/KUtil.kt @@ -307,6 +307,7 @@ object KUtil { } } + @Deprecated("Kutil 1.16") inline fun Array.trySet(index: Int, value: T): Boolean { if (index < 0 || index >= size) { return false @@ -315,6 +316,7 @@ object KUtil { return true } + @Deprecated("Kutil 1.16") inline fun BooleanArray.trySet(index: Int, value: Boolean): Boolean { if (index < 0 || index >= size) { return false @@ -323,10 +325,21 @@ object KUtil { return true } + @Deprecated("Kutil 1.16") inline fun IntArray.getOrElse(index: Int, `else`: Int): Int { if (index < 0 || index >= this.size) { return `else` } return this[index] } + + @Deprecated("Kutil 1.16") + fun Array.isEmptyOrOnlyNull(): Boolean { + for (entry in this) { + if (entry != null) { + return false + } + } + return true + } } diff --git a/src/main/java/de/bixilon/minosoft/util/chunk/ChunkUtil.kt b/src/main/java/de/bixilon/minosoft/util/chunk/ChunkUtil.kt index 2ef0407e3..38793d5e7 100644 --- a/src/main/java/de/bixilon/minosoft/util/chunk/ChunkUtil.kt +++ b/src/main/java/de/bixilon/minosoft/util/chunk/ChunkUtil.kt @@ -39,6 +39,7 @@ import de.bixilon.minosoft.protocol.protocol.ProtocolVersions.V_18W43A import de.bixilon.minosoft.protocol.protocol.ProtocolVersions.V_19W36A import de.bixilon.minosoft.protocol.protocol.ProtocolVersions.V_1_13_2 import de.bixilon.minosoft.protocol.protocol.ProtocolVersions.V_21W37A +import de.bixilon.minosoft.util.KUtil.isEmptyOrOnlyNull import java.lang.StrictMath.abs import java.util.* @@ -203,7 +204,9 @@ object ChunkUtil { } } - chunkData.blocks = sectionBlocks + if (!sectionBlocks.isEmptyOrOnlyNull()) { + chunkData.blocks = sectionBlocks + } if (lightReceived > 0) { chunkData.light = light }