Isolated chunk update failures

- Treats only loading saved biome information as an engine failure
- Leaves a container without loot and warns once when its saved biome cannot be recovered
- Keeps a failed chunk unetched and retries it without stopping the rest of the level's update pass
- Ends a level's pass only when its engine or mantle is closed
- Covers the deferred, permanent and isolated update paths through updateChunk and the server tick
This commit is contained in:
Brian Neumann-Fopiano committed 2026-09-29 06:50:24 -04:00
1 parent 82fa69611e
commit dd4633ad3a
4 files changed
+203 -6

No files matched your search

@@ -34,6 +34,14 @@ public class GenerationFailuresTest {
assertFalse(GenerationFailures.isEngineFailure(new IllegalStateException("unrelated")));
}
@Test
public void permanentSavedBiomeUnavailabilityIsAContentFailure() {
assertFalse(GenerationFailures.isEngineFailure(new SavedBiomeUnavailableException(
"This chunk has no exact saved Iris biome assignment for generation 3.", false)));
assertFalse(GenerationFailures.isEngineFailure(new SavedBiomeUnavailableException(
"Unable to read the saved biome at chunk 0,0.", new IllegalArgumentException("bad header"))));
}
@Test
public void anyFailureOnAnInterruptedThreadIsAnEngineFailure() {
Thread.currentThread().interrupt();