mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2026-10-25 13:30:08 +00:00
Skip empty chunk compositions
- Queued and demand compositions of chunks the occupancy index already knows are empty return without loading tiles
This commit is contained in:
1 parent
d59517aeaa
commit
82f52cd6ec
1 file changed
+7
-1
@@ -933,11 +933,17 @@ public final class HydrologyTileCache implements AutoCloseable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private ChunkColumns composeChunkColumns(int chunkX, int chunkZ) {
|
private ChunkColumns composeChunkColumns(int chunkX, int chunkZ) {
|
||||||
|
if (knownEmpty(chunkX, chunkZ)) {
|
||||||
|
return ChunkColumns.empty(chunkX, chunkZ);
|
||||||
|
}
|
||||||
ArrayList<HydrologyTileKey> relevantKeys = relevantKeys(chunkX, chunkZ);
|
ArrayList<HydrologyTileKey> relevantKeys = relevantKeys(chunkX, chunkZ);
|
||||||
return composeChunkColumns(chunkX, chunkZ, relevantKeys, tiles(relevantKeys));
|
return composeChunkColumns(chunkX, chunkZ, relevantKeys, tiles(relevantKeys));
|
||||||
}
|
}
|
||||||
|
|
||||||
private ChunkColumns composeChunkColumnsInline(int chunkX, int chunkZ, long epoch) {
|
private ChunkColumns composeChunkColumnsInline(int chunkX, int chunkZ, long epoch) {
|
||||||
|
if (knownEmpty(chunkX, chunkZ)) {
|
||||||
|
return ChunkColumns.empty(chunkX, chunkZ);
|
||||||
|
}
|
||||||
ArrayList<HydrologyTileKey> keys = relevantKeys(chunkX, chunkZ);
|
ArrayList<HydrologyTileKey> keys = relevantKeys(chunkX, chunkZ);
|
||||||
ArrayList<HydrologyTile> snapshots = new ArrayList<>(keys.size());
|
ArrayList<HydrologyTile> snapshots = new ArrayList<>(keys.size());
|
||||||
for (HydrologyTileKey key : keys) {
|
for (HydrologyTileKey key : keys) {
|
||||||
@@ -1209,7 +1215,7 @@ public final class HydrologyTileCache implements AutoCloseable {
|
|||||||
private ChunkCoordinate pollQuery() {
|
private ChunkCoordinate pollQuery() {
|
||||||
while (!queriedChunks.isEmpty()) {
|
while (!queriedChunks.isEmpty()) {
|
||||||
ChunkCoordinate chunk = queriedChunks.getFirst();
|
ChunkCoordinate chunk = queriedChunks.getFirst();
|
||||||
if (composedChunks.getIfPresent(chunk.packed()) == null) {
|
if (composedChunks.getIfPresent(chunk.packed()) == null && !knownEmpty(chunk.x(), chunk.z())) {
|
||||||
return chunk;
|
return chunk;
|
||||||
}
|
}
|
||||||
queriedChunks.removeFirst();
|
queriedChunks.removeFirst();
|
||||||
|
|||||||
Reference in new issue
Block a user