mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2026-10-26 22:10:18 +00:00
Propagated engine failures
- GenerationClosedException covers closed history routers, stages, saved biome runtimes and admissions - It also covers ownership stores, hydrology caches and engine runtimes - GenerationFailures tells engine, lifecycle, executor and JVM failures from content failures - Engine failures rethrow from object, cave object, procedural, floating, upper and decorator catch sites - Biome layer, noise bound, rotation and mantle write catch sites rethrow them too - Only content failures are skipped - A source plan is never cached or persisted without an object a healthy engine places - A transient engine failure no longer turns imported features off
This commit is contained in:
1 parent
76a07242b5
commit
54f3595ba7
22 files changed
+357
-16
No files matched your search
+3
@@ -25,6 +25,7 @@ import art.arcane.volmlib.nativelib.terrain.feature.NativeFeatureTable;
|
||||
import art.arcane.volmlib.nativelib.minecraft26_2.modded.NativeModdedImportedFeatures;
|
||||
|
||||
import art.arcane.iris.generation.runtime.Engine;
|
||||
import art.arcane.iris.generation.runtime.GenerationFailures;
|
||||
import art.arcane.iris.generation.runtime.GenerationSessionLease;
|
||||
import art.arcane.iris.structure.nativegen.NativeFeatureGenerationPolicy;
|
||||
import art.arcane.iris.structure.nativegen.IrisImportedFeatureControl;
|
||||
@@ -163,6 +164,7 @@ final class ModdedImportedFeatureStage implements NativeModdedGeneratorPolicy.Fe
|
||||
try {
|
||||
control = NativeFeatureGenerationPolicy.control(engine);
|
||||
} catch (RuntimeException error) {
|
||||
GenerationFailures.rethrowEngineFailure(error);
|
||||
ModdedIrisLog.error("Iris could not read importedFeatures for this dimension; features off: {}",
|
||||
error.toString(), error);
|
||||
markInert(runtimeIdentity, generation);
|
||||
@@ -177,6 +179,7 @@ final class ModdedImportedFeatureStage implements NativeModdedGeneratorPolicy.Fe
|
||||
IrisContext.Scope ignored = IrisContext.open(engine, lease.sessionId(), null)) {
|
||||
built = nativeFeatures.buildTable(new ModdedImportedFeaturePolicy(engine), control, generation);
|
||||
} catch (Throwable error) {
|
||||
GenerationFailures.rethrowEngineFailure(error);
|
||||
ModdedIrisLog.error("Iris importedFeatures is off for {}: feature table construction failed: {}",
|
||||
dimensionKey(engine), error.toString(), error);
|
||||
markInert(runtimeIdentity, generation);
|
||||
|
||||
Reference in new issue
Block a user