Skip to content

Commit

Permalink
fix long-standing lighting issues
Browse files Browse the repository at this point in the history
  • Loading branch information
Pannoniae committed Aug 5, 2024
1 parent 8339746 commit c576326
Showing 1 changed file with 12 additions and 1 deletion.
13 changes: 12 additions & 1 deletion src/world/World.cs
Original file line number Diff line number Diff line change
Expand Up @@ -446,6 +446,12 @@ public Chunk loadChunk(ChunkCoord chunkCoord, ChunkStatus status) {
loadChunk(new ChunkCoord(chunkCoord.x, chunkCoord.z - 1), ChunkStatus.GENERATED);
loadChunk(new ChunkCoord(chunkCoord.x, chunkCoord.z + 1), ChunkStatus.GENERATED);


loadChunk(new ChunkCoord(chunkCoord.x - 1, chunkCoord.z - 1), ChunkStatus.GENERATED);
loadChunk(new ChunkCoord(chunkCoord.x - 1, chunkCoord.z + 1), ChunkStatus.GENERATED);
loadChunk(new ChunkCoord(chunkCoord.x + 1, chunkCoord.z - 1), ChunkStatus.GENERATED);
loadChunk(new ChunkCoord(chunkCoord.x + 1, chunkCoord.z + 1), ChunkStatus.GENERATED);

generator.populate(chunkCoord);
}
if (status >= ChunkStatus.LIGHTED && (!hasChunk || (hasChunk && chunks[chunkCoord].status < ChunkStatus.LIGHTED))) {
Expand All @@ -457,6 +463,11 @@ public Chunk loadChunk(ChunkCoord chunkCoord, ChunkStatus status) {
loadChunk(new ChunkCoord(chunkCoord.x + 1, chunkCoord.z), ChunkStatus.LIGHTED);
loadChunk(new ChunkCoord(chunkCoord.x, chunkCoord.z - 1), ChunkStatus.LIGHTED);
loadChunk(new ChunkCoord(chunkCoord.x, chunkCoord.z + 1), ChunkStatus.LIGHTED);

loadChunk(new ChunkCoord(chunkCoord.x - 1, chunkCoord.z - 1), ChunkStatus.LIGHTED);
loadChunk(new ChunkCoord(chunkCoord.x - 1, chunkCoord.z + 1), ChunkStatus.LIGHTED);
loadChunk(new ChunkCoord(chunkCoord.x + 1, chunkCoord.z - 1), ChunkStatus.LIGHTED);
loadChunk(new ChunkCoord(chunkCoord.x + 1, chunkCoord.z + 1), ChunkStatus.LIGHTED);
chunks[chunkCoord].meshChunk();
}
return chunks[chunkCoord];
Expand All @@ -468,7 +479,7 @@ public void mesh(ChunkSectionCoord coord) {
}
}

public bool isMisalignedBlock(Vector3D<int> position) {
public static bool isMisalignedBlock(Vector3D<int> position) {
return position.X < 0 || position.X > 15 || position.Z < 0 || position.Z > 15;
}

Expand Down

0 comments on commit c576326

Please sign in to comment.