Never relight non-lighting chunk

This commit is contained in:
iam4722202468 2024-02-10 16:33:45 -05:00 committed by iam
parent 4b9e260f23
commit 4fea03fe32
2 changed files with 3 additions and 2 deletions

View File

@ -781,7 +781,7 @@ public abstract class Instance implements Block.Getter, Block.Setter,
int coordY = ChunkUtils.toSectionRelativeCoordinate(blockY);
int coordZ = ChunkUtils.toSectionRelativeCoordinate(blockZ);
if (chunk instanceof LightingChunk && light.requiresUpdate()) LightingChunk.relightSection(chunk.getInstance(), chunk.chunkX, sectionCoordinate, chunk.chunkZ);
if (light.requiresUpdate()) LightingChunk.relightSection(chunk.getInstance(), chunk.chunkX, sectionCoordinate, chunk.chunkZ);
return light.getLevel(coordX, coordY, coordZ);
}
@ -796,7 +796,7 @@ public abstract class Instance implements Block.Getter, Block.Setter,
int coordY = ChunkUtils.toSectionRelativeCoordinate(blockY);
int coordZ = ChunkUtils.toSectionRelativeCoordinate(blockZ);
if (chunk instanceof LightingChunk && light.requiresUpdate()) LightingChunk.relightSection(chunk.getInstance(), chunk.chunkX, sectionCoordinate, chunk.chunkZ);
if (light.requiresUpdate()) LightingChunk.relightSection(chunk.getInstance(), chunk.chunkX, sectionCoordinate, chunk.chunkZ);
return light.getLevel(coordX, coordY, coordZ);
}
}

View File

@ -443,6 +443,7 @@ public class LightingChunk extends DynamicChunk {
private static Set<Chunk> relightSection(Instance instance, int chunkX, int sectionY, int chunkZ, LightType type) {
Chunk c = instance.getChunk(chunkX, chunkZ);
if (c == null) return Set.of();
if (!(c instanceof LightingChunk)) return Set.of();
synchronized (instance) {
Set<Point> collected = collectRequiredNearby(instance, new Vec(chunkX, sectionY, chunkZ), type);