Preserved native POI ownership

- Native structure placement records pending POI repairs before block changes
- Chunk loads reconcile affected sections on their owning thread
- Matching POI records retain occupied tickets across repair
- Native capability checks preserve supported version behavior
This commit is contained in:
Brian Neumann-Fopiano committed 2026-09-06 13:34:50 -04:00
commit af42c69824
7 files changed
+474 -3

No files matched your search

@@ -245,6 +245,9 @@ public interface INMSBinding {
default void flushChunkIO(World world) {
}
default void reconcileNativeStructurePois(Chunk chunk) {
}
void injectBiomesFromMantle(Chunk e, Mantle<Matter> mantle);
ItemStack applyCustomNbt(ItemStack itemStack, KMap<String, Object> customNbt) throws IllegalArgumentException;
@@ -20,6 +20,7 @@ package art.arcane.iris.engine;
import art.arcane.iris.platform.bukkit.BukkitWorldBinding;
import art.arcane.iris.core.IrisSettings;
import art.arcane.iris.core.nms.INMS;
import art.arcane.iris.engine.data.cache.Cache;
import art.arcane.iris.engine.framework.Engine;
import art.arcane.iris.engine.framework.EngineAssignedWorldManager;
@@ -212,6 +213,8 @@ public class IrisWorldManager extends EngineAssignedWorldManager {
return;
}
INMS.get().reconcileNativeStructurePois(e);
if (cleanupServiceStopped || cleanupService == null || cleanupService.isShutdown()) {
return;
}