Skip to content

Commit 2bc0b2c

Browse files
committed
Fix lowres saving and loading issues
1 parent b38177b commit 2bc0b2c

File tree

1 file changed

+14
-5
lines changed
  • BlueMapCore/src/main/java/de/bluecolored/bluemap/core/map/lowres

1 file changed

+14
-5
lines changed

BlueMapCore/src/main/java/de/bluecolored/bluemap/core/map/lowres/LowresLayer.java

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import de.bluecolored.bluemap.core.util.Vector2iCache;
99
import de.bluecolored.bluemap.core.util.math.Color;
1010
import de.bluecolored.bluemap.core.world.Grid;
11+
import org.checkerframework.checker.nullness.qual.NonNull;
1112
import org.jetbrains.annotations.Nullable;
1213

1314
import java.io.IOException;
@@ -52,7 +53,15 @@ public LowresLayer(
5253
.scheduler(Scheduler.systemScheduler())
5354
.expireAfterAccess(10, TimeUnit.SECONDS)
5455
.expireAfterWrite(5, TimeUnit.MINUTES)
55-
.removalListener(this::saveTile)
56+
.writer(new CacheWriter<Vector2i, LowresTile>() {
57+
@Override
58+
public void write(@NonNull Vector2i key, @NonNull LowresTile value) {}
59+
60+
@Override
61+
public void delete(@NonNull Vector2i key, @Nullable LowresTile value, @NonNull RemovalCause cause) {
62+
saveTile(key, value, cause);
63+
}
64+
})
5665
.build(tileWeakInstanceCache::get);
5766
}
5867

@@ -63,13 +72,13 @@ public void save() {
6372

6473
private LowresTile createTile(Vector2i tilePos) {
6574
try (InputStream in = mapStorage.read(lod, tilePos).orElse(null)) {
66-
if (in == null)
67-
return new LowresTile(tileGrid.getGridSize());
68-
return new LowresTile(tileGrid.getGridSize(), in);
75+
if (in != null) return new LowresTile(tileGrid.getGridSize(), in);
6976
} catch (IOException e) {
7077
Logger.global.logError("Failed to load tile " + tilePos + " (lod: " + lod + ")", e);
71-
return null;
7278
}
79+
80+
// if the tile can not be loaded, we create a new one
81+
return new LowresTile(tileGrid.getGridSize());
7382
}
7483

7584
private void saveTile(Vector2i tilePos, @Nullable LowresTile tile, RemovalCause removalCause) {

0 commit comments

Comments
 (0)