From 0931c43e8cf8a9404bd01a52a58bb32205bb355d Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Sat, 27 Mar 2021 21:06:09 +0100 Subject: [PATCH] fix: Use default value when block state palette entry is missing (#608) This mirrors vanilla behavior (see `PalettedContainer.get(index)`). Fixes #565 --- .../me/jellysquid/mods/sodium/client/world/WorldSlice.java | 3 +++ src/main/resources/sodium.accesswidener | 1 + 2 files changed, 4 insertions(+) diff --git a/src/main/java/me/jellysquid/mods/sodium/client/world/WorldSlice.java b/src/main/java/me/jellysquid/mods/sodium/client/world/WorldSlice.java index da26ba7bde..ee6303aa21 100644 --- a/src/main/java/me/jellysquid/mods/sodium/client/world/WorldSlice.java +++ b/src/main/java/me/jellysquid/mods/sodium/client/world/WorldSlice.java @@ -261,6 +261,9 @@ private void populateBlockArrays(int sectionIdx, ChunkSectionPos pos, Chunk chun state = prevPaletteState; } else { state = palette.getByIndex(paletteId); + if (state == null) { + state = container.defaultValue; + } prevPaletteState = state; prevPaletteId = paletteId; diff --git a/src/main/resources/sodium.accesswidener b/src/main/resources/sodium.accesswidener index 863b69e4c7..cc56818ac5 100644 --- a/src/main/resources/sodium.accesswidener +++ b/src/main/resources/sodium.accesswidener @@ -9,3 +9,4 @@ accessible method net/minecraft/client/render/Frustum isVisible (DDDDDD)Z accessible field net/minecraft/world/chunk/PalettedContainer data Lnet/minecraft/util/collection/PackedIntegerArray; accessible field net/minecraft/world/chunk/PalettedContainer palette Lnet/minecraft/world/chunk/Palette; +accessible field net/minecraft/world/chunk/PalettedContainer defaultValue Ljava/lang/Object;