mirror of
https://github.com/GeyserMC/Geyser.git
synced 2024-12-23 15:00:37 +01:00
Don't tie biome translation to Bedrock chunk section size
This allows biomes to be translated even if the block count is empty. Fixes some biome glitching.
This commit is contained in:
parent
8f1acf17f9
commit
ec34510417
1 changed files with 3 additions and 3 deletions
|
@ -315,7 +315,7 @@ public class JavaLevelChunkWithLightTranslator extends PacketTranslator<Clientbo
|
|||
|
||||
// At this point we're dealing with Bedrock chunk sections
|
||||
int dimensionOffset = (overworld ? MINIMUM_ACCEPTED_HEIGHT_OVERWORLD : MINIMUM_ACCEPTED_HEIGHT) >> 4;
|
||||
for (int i = 0; i < sectionCount; i++) {
|
||||
for (int i = 0; i < chunkSize; i++) {
|
||||
int biomeYOffset = dimensionOffset + i;
|
||||
if (biomeYOffset < yOffset) {
|
||||
// Ignore this biome section since it goes above or below the height of the Java world
|
||||
|
@ -328,14 +328,14 @@ public class JavaLevelChunkWithLightTranslator extends PacketTranslator<Clientbo
|
|||
// As of 1.17.10, Bedrock hardcodes to always read 32 biome sections
|
||||
// As of 1.18, this hardcode was lowered to 25
|
||||
if (session.getUpstream().getProtocolVersion() >= Bedrock_v475.V475_CODEC.getProtocolVersion()) {
|
||||
int remainingEmptyBiomes = 25 - sectionCount;
|
||||
int remainingEmptyBiomes = 25 - chunkSize;
|
||||
for (int i = 0; i < remainingEmptyBiomes; i++) {
|
||||
// A header that says to carry on the biome data from the previous chunk
|
||||
// This notably fixes biomes in the End
|
||||
byteBuf.writeByte((127 << 1) | 1);
|
||||
}
|
||||
} else {
|
||||
int remainingEmptyBiomes = 32 - sectionCount;
|
||||
int remainingEmptyBiomes = 32 - chunkSize;
|
||||
for (int i = 0; i < remainingEmptyBiomes; i++) {
|
||||
byteBuf.writeBytes(ChunkUtils.EMPTY_BIOME_DATA);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue