diff --git a/core/src/main/java/art/arcane/iris/Iris.java b/core/src/main/java/art/arcane/iris/Iris.java index 0bb899af3..44c500481 100644 --- a/core/src/main/java/art/arcane/iris/Iris.java +++ b/core/src/main/java/art/arcane/iris/Iris.java @@ -527,6 +527,7 @@ public class Iris extends VolmitPlugin implements Listener { public void checkForBukkitWorlds(Predicate filter) { try { + KList deferredStartupWorlds = new KList<>(); IrisWorlds.readBukkitWorlds().forEach((s, generator) -> { try { if (Bukkit.getWorld(s) != null || !filter.test(s)) return; @@ -543,16 +544,27 @@ public class Iris extends VolmitPlugin implements Listener { INMS.get().createWorld(c); Iris.info(C.LIGHT_PURPLE + "Loaded " + s + "!"); } catch (Throwable e) { - Iris.error("Failed to load world " + s + "!"); if (containsCreateWorldUnsupportedOperation(e)) { + if (J.isFolia()) { + if (!deferredStartupWorlds.contains(s)) { + deferredStartupWorlds.add(s); + } + return; + } + Iris.error("Failed to load world " + s + "!"); Iris.error("This server denied Bukkit.createWorld for \"" + s + "\" at the current startup phase."); Iris.error("Ensure Iris is loaded at STARTUP and restart after staging worlds in bukkit.yml."); reportError(e); return; } + Iris.error("Failed to load world " + s + "!"); e.printStackTrace(); } }); + if (!deferredStartupWorlds.isEmpty()) { + Iris.warn("World init delayed on Folia until server world-init phase for staged Iris worlds: %s", String.join(", ", deferredStartupWorlds)); + Iris.warn("Bukkit.createWorld is intentionally unavailable in this startup phase. Worlds remain staged in bukkit.yml."); + } } catch (Throwable e) { e.printStackTrace(); reportError(e); diff --git a/core/src/main/java/art/arcane/iris/core/commands/CommandDeveloper.java b/core/src/main/java/art/arcane/iris/core/commands/CommandDeveloper.java index 9175432f9..837158735 100644 --- a/core/src/main/java/art/arcane/iris/core/commands/CommandDeveloper.java +++ b/core/src/main/java/art/arcane/iris/core/commands/CommandDeveloper.java @@ -31,6 +31,7 @@ import art.arcane.iris.core.service.IrisEngineSVC; import art.arcane.iris.core.service.StudioSVC; import art.arcane.iris.core.tools.IrisPackBenchmarking; import art.arcane.iris.core.tools.IrisToolbelt; +import art.arcane.iris.engine.IrisEngineMantle; import art.arcane.iris.engine.framework.Engine; import art.arcane.iris.engine.object.IrisDimension; import art.arcane.iris.engine.object.IrisPosition; @@ -41,19 +42,19 @@ import art.arcane.volmlib.util.collection.KSet; import art.arcane.iris.util.context.IrisContext; import art.arcane.iris.engine.object.IrisJigsawStructurePlacement; import art.arcane.volmlib.util.collection.KList; -import art.arcane.iris.util.decree.DecreeExecutor; +import art.arcane.iris.util.director.DirectorExecutor; import art.arcane.volmlib.util.director.DirectorOrigin; import art.arcane.volmlib.util.director.annotations.Director; import art.arcane.volmlib.util.director.annotations.Param; -import art.arcane.iris.util.decree.specialhandlers.NullableDimensionHandler; +import art.arcane.iris.util.director.specialhandlers.NullableDimensionHandler; import art.arcane.iris.util.format.C; import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.io.CountingDataInputStream; import art.arcane.volmlib.util.io.IO; -import art.arcane.iris.util.mantle.TectonicPlate; -import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.mantle.runtime.TectonicPlate; +import art.arcane.volmlib.util.math.Position2; import art.arcane.volmlib.util.math.M; -import art.arcane.iris.util.matter.Matter; +import art.arcane.volmlib.util.matter.Matter; import art.arcane.iris.util.nbt.mca.MCAFile; import art.arcane.iris.util.nbt.mca.MCAUtil; import art.arcane.iris.util.parallel.MultiBurst; @@ -82,7 +83,7 @@ import java.util.zip.GZIPInputStream; import java.util.zip.GZIPOutputStream; @Director(name = "Developer", origin = DirectorOrigin.BOTH, description = "Iris World Manager", aliases = {"dev"}) -public class CommandDeveloper implements DecreeExecutor { +public class CommandDeveloper implements DirectorExecutor { private static final long DELETE_CHUNK_HEARTBEAT_MS = 5000L; private static final int DELETE_CHUNK_MAX_ATTEMPTS = 2; private static final int DELETE_CHUNK_STACK_LIMIT = 20; @@ -313,7 +314,7 @@ public class CommandDeveloper implements DecreeExecutor { if (plate) { try (var in = CountingDataInputStream.wrap(new BufferedInputStream(new FileInputStream(base)))) { - new TectonicPlate(1088, in, true); + TectonicPlate.read(1088, in, true, IrisEngineMantle.createRuntimeDataAdapter(), IrisEngineMantle.createRuntimeHooks()); } catch (Throwable e) { e.printStackTrace(); } @@ -561,7 +562,7 @@ public class CommandDeveloper implements DecreeExecutor { return; } - art.arcane.iris.util.mantle.Mantle mantle = access.getEngine().getMantle().getMantle(); + art.arcane.volmlib.util.mantle.runtime.Mantle mantle = access.getEngine().getMantle().getMantle(); VolmitSender sender = sender(); sender.sendMessage(C.GREEN + "Deleting blocks in " + C.GOLD + totalChunks + C.GREEN + " chunk(s) with " + C.GOLD + threads + C.GREEN + " worker(s)."); @@ -634,7 +635,7 @@ public class CommandDeveloper implements DecreeExecutor { private void runDeleteChunkOrchestrator( VolmitSender sender, World world, - art.arcane.iris.util.mantle.Mantle mantle, + art.arcane.volmlib.util.mantle.runtime.Mantle mantle, List targets, int threadCount, String runId, @@ -682,7 +683,7 @@ public class CommandDeveloper implements DecreeExecutor { private DeleteChunkSummary executeDeleteChunkQueue( World world, - art.arcane.iris.util.mantle.Mantle mantle, + art.arcane.volmlib.util.mantle.runtime.Mantle mantle, List targets, ThreadPoolExecutor pool, Set workerThreads, @@ -822,7 +823,7 @@ public class CommandDeveloper implements DecreeExecutor { private DeleteChunkResult runDeleteChunkTask( DeleteChunkTask task, World world, - art.arcane.iris.util.mantle.Mantle mantle, + art.arcane.volmlib.util.mantle.runtime.Mantle mantle, ConcurrentMap activeTasks ) { String worker = Thread.currentThread().getName(); @@ -1150,7 +1151,7 @@ public class CommandDeveloper implements DecreeExecutor { service.submit(() -> { try { CountingDataInputStream raw = CountingDataInputStream.wrap(new FileInputStream(file)); - TectonicPlate plate = new TectonicPlate(height, raw, versioned); + TectonicPlate plate = TectonicPlate.read(height, raw, versioned, IrisEngineMantle.createRuntimeDataAdapter(), IrisEngineMantle.createRuntimeHooks()); raw.close(); double d1 = 0; @@ -1169,7 +1170,7 @@ public class CommandDeveloper implements DecreeExecutor { size = tmp.length(); start = System.currentTimeMillis(); CountingDataInputStream din = createInput(tmp, algorithm); - new TectonicPlate(height, din, true); + TectonicPlate.read(height, din, true, IrisEngineMantle.createRuntimeDataAdapter(), IrisEngineMantle.createRuntimeHooks()); din.close(); d2 += System.currentTimeMillis() - start; tmp.delete(); diff --git a/core/src/main/java/art/arcane/iris/core/commands/CommandEdit.java b/core/src/main/java/art/arcane/iris/core/commands/CommandEdit.java index 58b761dcc..91a10b05f 100644 --- a/core/src/main/java/art/arcane/iris/core/commands/CommandEdit.java +++ b/core/src/main/java/art/arcane/iris/core/commands/CommandEdit.java @@ -21,7 +21,7 @@ package art.arcane.iris.core.commands; import art.arcane.iris.Iris; import art.arcane.iris.core.service.StudioSVC; import art.arcane.iris.engine.object.*; -import art.arcane.iris.util.decree.DecreeExecutor; +import art.arcane.iris.util.director.DirectorExecutor; import art.arcane.volmlib.util.director.DirectorOrigin; import art.arcane.volmlib.util.director.annotations.Director; import art.arcane.volmlib.util.director.annotations.Param; @@ -31,7 +31,7 @@ import java.awt.*; @Director(name = "edit", origin = DirectorOrigin.PLAYER, studio = true, description = "Edit something") -public class CommandEdit implements DecreeExecutor { +public class CommandEdit implements DirectorExecutor { private boolean noStudio() { if (!sender().isPlayer()) { diff --git a/core/src/main/java/art/arcane/iris/core/commands/CommandFind.java b/core/src/main/java/art/arcane/iris/core/commands/CommandFind.java index 3066ca2e0..d82ee5561 100644 --- a/core/src/main/java/art/arcane/iris/core/commands/CommandFind.java +++ b/core/src/main/java/art/arcane/iris/core/commands/CommandFind.java @@ -22,15 +22,15 @@ import art.arcane.iris.engine.framework.Engine; import art.arcane.iris.engine.object.IrisBiome; import art.arcane.iris.engine.object.IrisJigsawStructure; import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.util.decree.DecreeExecutor; +import art.arcane.iris.util.director.DirectorExecutor; import art.arcane.volmlib.util.director.DirectorOrigin; import art.arcane.volmlib.util.director.annotations.Director; import art.arcane.volmlib.util.director.annotations.Param; -import art.arcane.iris.util.decree.specialhandlers.ObjectHandler; +import art.arcane.iris.util.director.specialhandlers.ObjectHandler; import art.arcane.iris.util.format.C; @Director(name = "find", origin = DirectorOrigin.PLAYER, description = "Iris Find commands", aliases = "goto") -public class CommandFind implements DecreeExecutor { +public class CommandFind implements DirectorExecutor { @Director(description = "Find a biome") public void biome( @Param(description = "The biome to look for") diff --git a/core/src/main/java/art/arcane/iris/core/commands/CommandIris.java b/core/src/main/java/art/arcane/iris/core/commands/CommandIris.java index 58e48313d..6410893b6 100644 --- a/core/src/main/java/art/arcane/iris/core/commands/CommandIris.java +++ b/core/src/main/java/art/arcane/iris/core/commands/CommandIris.java @@ -29,24 +29,25 @@ import art.arcane.iris.engine.framework.Engine; import art.arcane.iris.engine.object.IrisDimension; import art.arcane.iris.engine.platform.PlatformChunkGenerator; import art.arcane.volmlib.util.collection.KList; -import art.arcane.iris.util.decree.DecreeContext; +import art.arcane.iris.util.director.DirectorContext; import art.arcane.volmlib.util.director.DirectorParameterHandler; -import art.arcane.iris.util.decree.DecreeExecutor; +import art.arcane.iris.util.director.DirectorExecutor; import art.arcane.volmlib.util.director.DirectorOrigin; import art.arcane.volmlib.util.director.annotations.Director; import art.arcane.volmlib.util.director.annotations.Param; import art.arcane.volmlib.util.director.exceptions.DirectorParsingException; -import art.arcane.iris.util.decree.specialhandlers.NullablePlayerHandler; +import art.arcane.iris.util.director.specialhandlers.NullablePlayerHandler; import art.arcane.iris.util.format.C; import art.arcane.volmlib.util.io.IO; -import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.Position2; import art.arcane.iris.util.parallel.SyncExecutor; import art.arcane.iris.util.misc.ServerProperties; import art.arcane.iris.util.misc.RegenRuntime; -import art.arcane.iris.util.mantle.MantleChunk; +import art.arcane.volmlib.util.mantle.runtime.MantleChunk; import art.arcane.iris.util.matter.TileWrapper; import art.arcane.iris.util.plugin.VolmitSender; import art.arcane.iris.util.scheduling.J; +import art.arcane.volmlib.util.matter.Matter; import org.bukkit.Bukkit; import org.bukkit.Chunk; import org.bukkit.World; @@ -89,7 +90,7 @@ import static art.arcane.iris.util.misc.ServerProperties.BUKKIT_YML; import static org.bukkit.Bukkit.getServer; @Director(name = "iris", aliases = {"ir", "irs"}, description = "Basic Command") -public class CommandIris implements DecreeExecutor { +public class CommandIris implements DirectorExecutor { private static final long REGEN_HEARTBEAT_MS = 5000L; private static final int REGEN_MAX_ATTEMPTS = 2; private static final int REGEN_STACK_LIMIT = 20; @@ -777,7 +778,7 @@ public class CommandIris implements DecreeExecutor { try { setRegenSetupPhase(setupPhase, setupPhaseSince, "touch-context", world, runId); updateRegenSetupDisplay(display, mode, "Touching command context", 1, 6); - DecreeContext.touch(sender); + DirectorContext.touch(sender); if (mode.usesMaintenance()) { setRegenSetupPhase(setupPhase, setupPhaseSince, "enter-maintenance", world, runId); updateRegenSetupDisplay(display, mode, "Entering maintenance", 2, 6); @@ -886,7 +887,7 @@ public class CommandIris implements DecreeExecutor { if (!displayTerminal) { closeRegenDisplay(display, REGEN_DISPLAY_FINAL_TICKS); } - DecreeContext.remove(); + DirectorContext.remove(); Iris.info("Regen run closed: id=" + runId + " world=" + world.getName() + " totalMs=" + (System.currentTimeMillis() - runStart)); } } @@ -1179,7 +1180,7 @@ public class CommandIris implements DecreeExecutor { double overallProgress = ((safePassIndex - 1) + passProgress) / safePassCount; int percent = (int) Math.round(overallProgress * 100.0D); String bar = buildRegenProgressBar(overallProgress); - String statusColor = failed ? C.RED : terminal ? C.GREEN : stalled ? C.RED : C.AQUA; + C statusColor = failed ? C.RED : terminal ? C.GREEN : stalled ? C.RED : C.AQUA; String statusLabel = failed ? "FAILED" : terminal ? "DONE" : stalled ? "STALLED" : "RUN"; BarColor bossColor = failed ? BarColor.RED : terminal ? BarColor.GREEN : stalled ? BarColor.RED : BarColor.BLUE; String title = C.GOLD + "Regen " + mode.id() @@ -1202,7 +1203,8 @@ public class CommandIris implements DecreeExecutor { } if (sender.isPlayer()) { - J.runEntity(sender.player(), () -> sender.sendAction(action)); + String actionText = action; + J.runEntity(sender.player(), () -> sender.sendAction(actionText)); } return now; } @@ -1464,7 +1466,7 @@ public class CommandIris implements DecreeExecutor { } private RegenMantleChunkState inspectRegenMantleChunk(PlatformChunkGenerator platform, int chunkX, int chunkZ) { - MantleChunk chunk = platform.getEngine().getMantle().getMantle().getChunk(chunkX, chunkZ).use(); + MantleChunk chunk = platform.getEngine().getMantle().getMantle().getChunk(chunkX, chunkZ).use(); try { AtomicInteger blockDataEntries = new AtomicInteger(); AtomicInteger stringEntries = new AtomicInteger(); @@ -1528,7 +1530,7 @@ public class CommandIris implements DecreeExecutor { boolean scheduled = J.runRegion(world, chunkX, chunkZ, () -> { try { Chunk chunk = world.getChunkAt(chunkX, chunkZ); - MantleChunk mantleChunk = platform.getEngine().getMantle().getMantle().getChunk(chunkX, chunkZ).use(); + MantleChunk mantleChunk = platform.getEngine().getMantle().getMantle().getChunk(chunkX, chunkZ).use(); try { mantleChunk.iterate(String.class, (x, y, z, value) -> { if (value != null && !value.isEmpty() && value.indexOf('@') > 0) { @@ -1705,7 +1707,7 @@ public class CommandIris implements DecreeExecutor { long total = (long) (toX - fromX + 1) * (long) (toZ - fromZ + 1); long started = System.currentTimeMillis(); int resetCount = 0; - art.arcane.iris.util.mantle.Mantle mantle = platform.getEngine().getMantle().getMantle(); + art.arcane.volmlib.util.mantle.runtime.Mantle mantle = platform.getEngine().getMantle().getMantle(); AtomicReference deleteThread = new AtomicReference<>(); ThreadFactory deleteFactory = runnable -> { Thread thread = new Thread(runnable, "Iris-Regen-Reset-" + runId); diff --git a/core/src/main/java/art/arcane/iris/core/commands/CommandJigsaw.java b/core/src/main/java/art/arcane/iris/core/commands/CommandJigsaw.java index e9a972887..440beabac 100644 --- a/core/src/main/java/art/arcane/iris/core/commands/CommandJigsaw.java +++ b/core/src/main/java/art/arcane/iris/core/commands/CommandJigsaw.java @@ -27,11 +27,11 @@ import art.arcane.iris.engine.object.IrisJigsawPiece; import art.arcane.iris.engine.object.IrisJigsawStructure; import art.arcane.iris.engine.object.IrisObject; import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.iris.util.decree.DecreeExecutor; +import art.arcane.iris.util.director.DirectorExecutor; import art.arcane.volmlib.util.director.DirectorOrigin; import art.arcane.volmlib.util.director.annotations.Director; import art.arcane.volmlib.util.director.annotations.Param; -import art.arcane.iris.util.decree.specialhandlers.ObjectHandler; +import art.arcane.iris.util.director.specialhandlers.ObjectHandler; import art.arcane.iris.util.format.C; import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.math.RNG; @@ -41,7 +41,7 @@ import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import java.io.File; @Director(name = "jigsaw", origin = DirectorOrigin.PLAYER, studio = true, description = "Iris jigsaw commands") -public class CommandJigsaw implements DecreeExecutor { +public class CommandJigsaw implements DirectorExecutor { @Director(description = "Edit a jigsaw piece") public void edit( @Param(description = "The jigsaw piece to edit") diff --git a/core/src/main/java/art/arcane/iris/core/commands/CommandLazyPregen.java b/core/src/main/java/art/arcane/iris/core/commands/CommandLazyPregen.java index e799fb6fa..02a566e2b 100644 --- a/core/src/main/java/art/arcane/iris/core/commands/CommandLazyPregen.java +++ b/core/src/main/java/art/arcane/iris/core/commands/CommandLazyPregen.java @@ -24,11 +24,11 @@ import art.arcane.iris.core.gui.PregeneratorJob; import art.arcane.iris.core.pregenerator.LazyPregenerator; import art.arcane.iris.core.pregenerator.PregenTask; import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.util.decree.DecreeExecutor; +import art.arcane.iris.util.director.DirectorExecutor; import art.arcane.volmlib.util.director.annotations.Director; import art.arcane.volmlib.util.director.annotations.Param; import art.arcane.iris.util.format.C; -import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.Position2; import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.util.Vector; @@ -37,7 +37,7 @@ import java.io.File; import java.io.IOException; @Director(name = "lazypregen", aliases = "lazy", description = "Pregenerate your Iris worlds!") -public class CommandLazyPregen implements DecreeExecutor { +public class CommandLazyPregen implements DirectorExecutor { public String worldName; @Director(description = "Pregenerate a world") public void start( diff --git a/core/src/main/java/art/arcane/iris/core/commands/CommandObject.java b/core/src/main/java/art/arcane/iris/core/commands/CommandObject.java index 10e1d3395..53eb649cb 100644 --- a/core/src/main/java/art/arcane/iris/core/commands/CommandObject.java +++ b/core/src/main/java/art/arcane/iris/core/commands/CommandObject.java @@ -30,11 +30,11 @@ import art.arcane.iris.engine.object.*; import art.arcane.volmlib.util.data.Cuboid; import art.arcane.iris.util.data.IrisCustomData; import art.arcane.iris.util.data.registry.Materials; -import art.arcane.iris.util.decree.DecreeExecutor; +import art.arcane.iris.util.director.DirectorExecutor; import art.arcane.volmlib.util.director.DirectorOrigin; import art.arcane.volmlib.util.director.annotations.Director; import art.arcane.volmlib.util.director.annotations.Param; -import art.arcane.iris.util.decree.specialhandlers.ObjectHandler; +import art.arcane.iris.util.director.specialhandlers.ObjectHandler; import art.arcane.iris.util.format.C; import art.arcane.iris.util.math.Direction; import art.arcane.volmlib.util.math.RNG; @@ -50,7 +50,7 @@ import java.text.NumberFormat; import java.util.*; @Director(name = "object", aliases = "o", origin = DirectorOrigin.PLAYER, studio = true, description = "Iris object manipulation") -public class CommandObject implements DecreeExecutor { +public class CommandObject implements DirectorExecutor { private static final Set skipBlocks = Set.of(Materials.GRASS, Material.SNOW, Material.VINE, Material.TORCH, Material.DEAD_BUSH, Material.POPPY, Material.DANDELION); diff --git a/core/src/main/java/art/arcane/iris/core/commands/CommandPregen.java b/core/src/main/java/art/arcane/iris/core/commands/CommandPregen.java index 57a19f4b4..5b70a6c58 100644 --- a/core/src/main/java/art/arcane/iris/core/commands/CommandPregen.java +++ b/core/src/main/java/art/arcane/iris/core/commands/CommandPregen.java @@ -22,16 +22,16 @@ import art.arcane.iris.Iris; import art.arcane.iris.core.gui.PregeneratorJob; import art.arcane.iris.core.pregenerator.PregenTask; import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.util.decree.DecreeExecutor; +import art.arcane.iris.util.director.DirectorExecutor; import art.arcane.volmlib.util.director.annotations.Director; import art.arcane.volmlib.util.director.annotations.Param; import art.arcane.iris.util.format.C; -import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.Position2; import org.bukkit.World; import org.bukkit.util.Vector; @Director(name = "pregen", aliases = "pregenerate", description = "Pregenerate your Iris worlds!") -public class CommandPregen implements DecreeExecutor { +public class CommandPregen implements DirectorExecutor { @Director(description = "Pregenerate a world") public void start( @Param(description = "The radius of the pregen in blocks", aliases = "size") diff --git a/core/src/main/java/art/arcane/iris/core/commands/CommandSettings.java b/core/src/main/java/art/arcane/iris/core/commands/CommandSettings.java index f81ec2708..1a4889452 100644 --- a/core/src/main/java/art/arcane/iris/core/commands/CommandSettings.java +++ b/core/src/main/java/art/arcane/iris/core/commands/CommandSettings.java @@ -18,8 +18,8 @@ package art.arcane.iris.core.commands; -import art.arcane.iris.util.decree.DecreeExecutor; +import art.arcane.iris.util.director.DirectorExecutor; -public class CommandSettings implements DecreeExecutor { +public class CommandSettings implements DirectorExecutor { } diff --git a/core/src/main/java/art/arcane/iris/core/commands/CommandStudio.java b/core/src/main/java/art/arcane/iris/core/commands/CommandStudio.java index aa4cb95e9..5729f5422 100644 --- a/core/src/main/java/art/arcane/iris/core/commands/CommandStudio.java +++ b/core/src/main/java/art/arcane/iris/core/commands/CommandStudio.java @@ -33,10 +33,10 @@ import art.arcane.iris.engine.platform.PlatformChunkGenerator; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.collection.KSet; -import art.arcane.iris.util.decree.DecreeContext; -import art.arcane.iris.util.decree.DecreeExecutor; -import art.arcane.iris.util.decree.handlers.DimensionHandler; -import art.arcane.iris.util.decree.specialhandlers.NullableDimensionHandler; +import art.arcane.iris.util.director.DirectorContext; +import art.arcane.iris.util.director.DirectorExecutor; +import art.arcane.iris.util.director.handlers.DimensionHandler; +import art.arcane.iris.util.director.specialhandlers.NullableDimensionHandler; import art.arcane.volmlib.util.director.DirectorOrigin; import art.arcane.volmlib.util.director.annotations.Director; import art.arcane.volmlib.util.director.annotations.Param; @@ -48,9 +48,9 @@ import art.arcane.iris.util.interpolation.InterpolationMethod; import art.arcane.volmlib.util.io.IO; import art.arcane.volmlib.util.json.JSONArray; import art.arcane.volmlib.util.json.JSONObject; -import art.arcane.iris.util.mantle.MantleChunk; +import art.arcane.volmlib.util.mantle.runtime.MantleChunk; import art.arcane.volmlib.util.math.M; -import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.Position2; import art.arcane.volmlib.util.math.RNG; import art.arcane.volmlib.util.math.Spiraler; import art.arcane.iris.util.noise.CNG; @@ -84,7 +84,7 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Supplier; @Director(name = "studio", aliases = {"std", "s"}, description = "Studio Commands", studio = true) -public class CommandStudio implements DecreeExecutor { +public class CommandStudio implements DirectorExecutor { private CommandFind find; private CommandEdit edit; //private CommandDeepSearch deepSearch; @@ -188,7 +188,7 @@ public class CommandStudio implements DecreeExecutor { Thread orchestrator = new Thread(() -> { PlatformChunkGenerator plat = IrisToolbelt.access(world); Engine engine = plat.getEngine(); - DecreeContext.touch(sender); + DirectorContext.touch(sender); IrisToolbelt.beginWorldMaintenance(world, "studio-regen"); try (SyncExecutor executor = new SyncExecutor(20); var service = Executors.newFixedThreadPool(threadCount) @@ -256,7 +256,7 @@ public class CommandStudio implements DecreeExecutor { e.printStackTrace(); } finally { IrisToolbelt.endWorldMaintenance(world, "studio-regen"); - DecreeContext.remove(); + DirectorContext.remove(); } }, orchestratorName); orchestrator.setDaemon(true); diff --git a/core/src/main/java/art/arcane/iris/core/commands/CommandTurboPregen.java b/core/src/main/java/art/arcane/iris/core/commands/CommandTurboPregen.java index 9dbfd1e7c..459942a1f 100644 --- a/core/src/main/java/art/arcane/iris/core/commands/CommandTurboPregen.java +++ b/core/src/main/java/art/arcane/iris/core/commands/CommandTurboPregen.java @@ -22,7 +22,7 @@ import art.arcane.iris.Iris; import art.arcane.iris.core.pregenerator.LazyPregenerator; import art.arcane.iris.core.pregenerator.TurboPregenerator; import art.arcane.iris.core.pregenerator.TurboPregenerator; -import art.arcane.iris.util.decree.DecreeExecutor; +import art.arcane.iris.util.director.DirectorExecutor; import art.arcane.volmlib.util.director.annotations.Director; import art.arcane.volmlib.util.director.annotations.Param; import art.arcane.iris.util.format.C; @@ -34,7 +34,7 @@ import java.io.File; import java.io.IOException; @Director(name = "turbopregen", aliases = "turbo", description = "Pregenerate your Iris worlds!") -public class CommandTurboPregen implements DecreeExecutor { +public class CommandTurboPregen implements DirectorExecutor { public String worldName; @Director(description = "Pregenerate a world") public void start( diff --git a/core/src/main/java/art/arcane/iris/core/commands/CommandUpdater.java b/core/src/main/java/art/arcane/iris/core/commands/CommandUpdater.java index d48fa274c..97fcba6be 100644 --- a/core/src/main/java/art/arcane/iris/core/commands/CommandUpdater.java +++ b/core/src/main/java/art/arcane/iris/core/commands/CommandUpdater.java @@ -24,7 +24,7 @@ import org.bukkit.World; import art.arcane.iris.Iris; import art.arcane.iris.core.pregenerator.ChunkUpdater; import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.util.decree.DecreeExecutor; +import art.arcane.iris.util.director.DirectorExecutor; import art.arcane.volmlib.util.director.DirectorOrigin; import art.arcane.volmlib.util.director.annotations.Director; import art.arcane.volmlib.util.director.annotations.Param; @@ -32,7 +32,7 @@ import art.arcane.iris.util.format.C; import art.arcane.volmlib.util.format.Form; @Director(name = "updater", origin = DirectorOrigin.BOTH, description = "Iris World Updater") -public class CommandUpdater implements DecreeExecutor { +public class CommandUpdater implements DirectorExecutor { private final Object lock = new Object(); private transient ChunkUpdater chunkUpdater; diff --git a/core/src/main/java/art/arcane/iris/core/commands/CommandWhat.java b/core/src/main/java/art/arcane/iris/core/commands/CommandWhat.java index 77f7fda97..810fabd9f 100644 --- a/core/src/main/java/art/arcane/iris/core/commands/CommandWhat.java +++ b/core/src/main/java/art/arcane/iris/core/commands/CommandWhat.java @@ -26,7 +26,7 @@ import art.arcane.iris.engine.framework.Engine; import art.arcane.iris.engine.object.IrisBiome; import art.arcane.iris.engine.object.IrisRegion; import art.arcane.iris.util.data.B; -import art.arcane.iris.util.decree.DecreeExecutor; +import art.arcane.iris.util.director.DirectorExecutor; import art.arcane.volmlib.util.director.DirectorOrigin; import art.arcane.volmlib.util.director.annotations.Director; import art.arcane.volmlib.util.director.annotations.Param; @@ -43,7 +43,7 @@ import java.util.Objects; import java.util.concurrent.atomic.AtomicInteger; @Director(name = "what", origin = DirectorOrigin.PLAYER, studio = true, description = "Iris What?") -public class CommandWhat implements DecreeExecutor { +public class CommandWhat implements DirectorExecutor { @Director(description = "What is in my hand?", origin = DirectorOrigin.PLAYER) public void hand() { try { diff --git a/core/src/main/java/art/arcane/iris/core/gui/PregeneratorJob.java b/core/src/main/java/art/arcane/iris/core/gui/PregeneratorJob.java index fd106e383..c3bd66ea3 100644 --- a/core/src/main/java/art/arcane/iris/core/gui/PregeneratorJob.java +++ b/core/src/main/java/art/arcane/iris/core/gui/PregeneratorJob.java @@ -29,9 +29,10 @@ import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.format.MemoryMonitor; import art.arcane.volmlib.util.function.Consumer2; -import art.arcane.iris.util.mantle.Mantle; +import art.arcane.volmlib.util.mantle.runtime.Mantle; +import art.arcane.volmlib.util.matter.Matter; import art.arcane.volmlib.util.math.M; -import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.Position2; import art.arcane.volmlib.util.scheduling.ChronoLatch; import art.arcane.iris.util.scheduling.J; import org.bukkit.World; diff --git a/core/src/main/java/art/arcane/iris/core/gui/components/IrisRenderer.java b/core/src/main/java/art/arcane/iris/core/gui/components/IrisRenderer.java index 7b5554ffd..e359a5811 100644 --- a/core/src/main/java/art/arcane/iris/core/gui/components/IrisRenderer.java +++ b/core/src/main/java/art/arcane/iris/core/gui/components/IrisRenderer.java @@ -21,8 +21,7 @@ package art.arcane.iris.core.gui.components; import art.arcane.iris.engine.framework.Engine; import art.arcane.iris.engine.object.IrisBiome; import art.arcane.iris.engine.object.IrisBiomeGeneratorLink; -import art.arcane.iris.util.interpolation.IrisInterpolation; - +import art.arcane.iris.util.interpolation.IrisInterpolation; import java.awt.*; import java.awt.image.BufferedImage; import java.util.function.BiFunction; diff --git a/core/src/main/java/art/arcane/iris/core/nms/INMSBinding.java b/core/src/main/java/art/arcane/iris/core/nms/INMSBinding.java index 148e0828f..d34c31a20 100644 --- a/core/src/main/java/art/arcane/iris/core/nms/INMSBinding.java +++ b/core/src/main/java/art/arcane/iris/core/nms/INMSBinding.java @@ -27,7 +27,8 @@ import art.arcane.iris.engine.framework.Engine; import art.arcane.iris.engine.platform.PlatformChunkGenerator; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; -import art.arcane.iris.util.mantle.Mantle; +import art.arcane.volmlib.util.mantle.runtime.Mantle; +import art.arcane.volmlib.util.matter.Matter; import art.arcane.volmlib.util.math.Vector3d; import art.arcane.volmlib.util.nbt.mca.palette.MCABiomeContainer; import art.arcane.volmlib.util.nbt.mca.palette.MCAPaletteAccess; @@ -109,7 +110,7 @@ public interface INMSBinding { MCAPaletteAccess createPalette(); - void injectBiomesFromMantle(Chunk e, Mantle mantle); + void injectBiomesFromMantle(Chunk e, Mantle mantle); ItemStack applyCustomNbt(ItemStack itemStack, KMap customNbt) throws IllegalArgumentException; diff --git a/core/src/main/java/art/arcane/iris/core/nms/v1X/NMSBinding1X.java b/core/src/main/java/art/arcane/iris/core/nms/v1X/NMSBinding1X.java index c14e8de8c..80cfc281e 100644 --- a/core/src/main/java/art/arcane/iris/core/nms/v1X/NMSBinding1X.java +++ b/core/src/main/java/art/arcane/iris/core/nms/v1X/NMSBinding1X.java @@ -29,7 +29,8 @@ import art.arcane.iris.core.nms.container.StructurePlacement; import art.arcane.iris.engine.framework.Engine; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; -import art.arcane.iris.util.mantle.Mantle; +import art.arcane.volmlib.util.mantle.runtime.Mantle; +import art.arcane.volmlib.util.matter.Matter; import art.arcane.volmlib.util.math.Vector3d; import art.arcane.volmlib.util.nbt.mca.palette.MCABiomeContainer; import art.arcane.volmlib.util.nbt.mca.palette.MCAPaletteAccess; @@ -87,7 +88,7 @@ public class NMSBinding1X implements INMSBinding { @Override - public void injectBiomesFromMantle(Chunk e, Mantle mantle) { + public void injectBiomesFromMantle(Chunk e, Mantle mantle) { } diff --git a/core/src/main/java/art/arcane/iris/core/pregenerator/ChunkUpdater.java b/core/src/main/java/art/arcane/iris/core/pregenerator/ChunkUpdater.java index 0c4ae9684..602420384 100644 --- a/core/src/main/java/art/arcane/iris/core/pregenerator/ChunkUpdater.java +++ b/core/src/main/java/art/arcane/iris/core/pregenerator/ChunkUpdater.java @@ -8,7 +8,7 @@ import art.arcane.iris.engine.framework.Engine; import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.mantle.flag.MantleFlag; import art.arcane.volmlib.util.math.M; -import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.Position2; import art.arcane.volmlib.util.math.RollingSequence; import art.arcane.iris.util.plugin.chunk.TicketHolder; import art.arcane.iris.util.profile.LoadBalancer; diff --git a/core/src/main/java/art/arcane/iris/core/pregenerator/DeepSearchPregenerator.java b/core/src/main/java/art/arcane/iris/core/pregenerator/DeepSearchPregenerator.java index 00f920fd0..c19259c9b 100644 --- a/core/src/main/java/art/arcane/iris/core/pregenerator/DeepSearchPregenerator.java +++ b/core/src/main/java/art/arcane/iris/core/pregenerator/DeepSearchPregenerator.java @@ -10,7 +10,7 @@ import art.arcane.iris.util.format.C; import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.io.IO; import art.arcane.volmlib.util.math.M; -import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.Position2; import art.arcane.volmlib.util.math.RollingSequence; import art.arcane.volmlib.util.math.Spiraler; import art.arcane.volmlib.util.scheduling.ChronoLatch; diff --git a/core/src/main/java/art/arcane/iris/core/pregenerator/IrisPregenerator.java b/core/src/main/java/art/arcane/iris/core/pregenerator/IrisPregenerator.java index 5b2d0b721..23c561a1f 100644 --- a/core/src/main/java/art/arcane/iris/core/pregenerator/IrisPregenerator.java +++ b/core/src/main/java/art/arcane/iris/core/pregenerator/IrisPregenerator.java @@ -24,9 +24,10 @@ import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KSet; import art.arcane.iris.util.format.C; import art.arcane.volmlib.util.format.Form; -import art.arcane.iris.util.mantle.Mantle; +import art.arcane.volmlib.util.mantle.runtime.Mantle; +import art.arcane.volmlib.util.matter.Matter; import art.arcane.volmlib.util.math.M; -import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.Position2; import art.arcane.volmlib.util.math.RollingSequence; import art.arcane.volmlib.util.scheduling.ChronoLatch; import art.arcane.iris.util.scheduling.J; diff --git a/core/src/main/java/art/arcane/iris/core/pregenerator/LazyPregenerator.java b/core/src/main/java/art/arcane/iris/core/pregenerator/LazyPregenerator.java index 788c097e3..cc65f838e 100644 --- a/core/src/main/java/art/arcane/iris/core/pregenerator/LazyPregenerator.java +++ b/core/src/main/java/art/arcane/iris/core/pregenerator/LazyPregenerator.java @@ -6,7 +6,7 @@ import art.arcane.iris.util.format.C; import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.io.IO; import art.arcane.volmlib.util.math.M; -import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.Position2; import art.arcane.volmlib.util.math.RollingSequence; import art.arcane.volmlib.util.math.Spiraler; import art.arcane.volmlib.util.scheduling.ChronoLatch; diff --git a/core/src/main/java/art/arcane/iris/core/pregenerator/PregenTask.java b/core/src/main/java/art/arcane/iris/core/pregenerator/PregenTask.java index 1e6b0de6e..c38bb8dfd 100644 --- a/core/src/main/java/art/arcane/iris/core/pregenerator/PregenTask.java +++ b/core/src/main/java/art/arcane/iris/core/pregenerator/PregenTask.java @@ -20,7 +20,7 @@ package art.arcane.iris.core.pregenerator; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; -import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.Position2; import art.arcane.volmlib.util.math.Spiraled; import art.arcane.volmlib.util.math.Spiraler; import lombok.Builder; diff --git a/core/src/main/java/art/arcane/iris/core/pregenerator/PregeneratorMethod.java b/core/src/main/java/art/arcane/iris/core/pregenerator/PregeneratorMethod.java index 69f171c75..3bab6d252 100644 --- a/core/src/main/java/art/arcane/iris/core/pregenerator/PregeneratorMethod.java +++ b/core/src/main/java/art/arcane/iris/core/pregenerator/PregeneratorMethod.java @@ -18,7 +18,8 @@ package art.arcane.iris.core.pregenerator; -import art.arcane.iris.util.mantle.Mantle; +import art.arcane.volmlib.util.mantle.runtime.Mantle; +import art.arcane.volmlib.util.matter.Matter; /** * Represents something that is capable of generating in chunks or regions, or both diff --git a/core/src/main/java/art/arcane/iris/core/pregenerator/TurboPregenerator.java b/core/src/main/java/art/arcane/iris/core/pregenerator/TurboPregenerator.java index 303506966..9469273bb 100644 --- a/core/src/main/java/art/arcane/iris/core/pregenerator/TurboPregenerator.java +++ b/core/src/main/java/art/arcane/iris/core/pregenerator/TurboPregenerator.java @@ -8,7 +8,7 @@ import art.arcane.iris.util.format.C; import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.io.IO; import art.arcane.volmlib.util.math.M; -import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.Position2; import art.arcane.volmlib.util.math.RollingSequence; import art.arcane.volmlib.util.math.Spiraler; import art.arcane.iris.util.parallel.BurstExecutor; diff --git a/core/src/main/java/art/arcane/iris/core/pregenerator/methods/AsyncOrMedievalPregenMethod.java b/core/src/main/java/art/arcane/iris/core/pregenerator/methods/AsyncOrMedievalPregenMethod.java index bfe1971c6..ac16b7a53 100644 --- a/core/src/main/java/art/arcane/iris/core/pregenerator/methods/AsyncOrMedievalPregenMethod.java +++ b/core/src/main/java/art/arcane/iris/core/pregenerator/methods/AsyncOrMedievalPregenMethod.java @@ -20,7 +20,8 @@ package art.arcane.iris.core.pregenerator.methods; import art.arcane.iris.core.pregenerator.PregenListener; import art.arcane.iris.core.pregenerator.PregeneratorMethod; -import art.arcane.iris.util.mantle.Mantle; +import art.arcane.volmlib.util.mantle.runtime.Mantle; +import art.arcane.volmlib.util.matter.Matter; import io.papermc.lib.PaperLib; import org.bukkit.World; diff --git a/core/src/main/java/art/arcane/iris/core/pregenerator/methods/AsyncPregenMethod.java b/core/src/main/java/art/arcane/iris/core/pregenerator/methods/AsyncPregenMethod.java index f1387debe..210831955 100644 --- a/core/src/main/java/art/arcane/iris/core/pregenerator/methods/AsyncPregenMethod.java +++ b/core/src/main/java/art/arcane/iris/core/pregenerator/methods/AsyncPregenMethod.java @@ -23,7 +23,8 @@ import art.arcane.iris.core.IrisSettings; import art.arcane.iris.core.pregenerator.PregenListener; import art.arcane.iris.core.pregenerator.PregeneratorMethod; import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.util.mantle.Mantle; +import art.arcane.volmlib.util.mantle.runtime.Mantle; +import art.arcane.volmlib.util.matter.Matter; import art.arcane.volmlib.util.math.M; import art.arcane.iris.util.parallel.MultiBurst; import art.arcane.iris.util.scheduling.J; diff --git a/core/src/main/java/art/arcane/iris/core/pregenerator/methods/CachedPregenMethod.java b/core/src/main/java/art/arcane/iris/core/pregenerator/methods/CachedPregenMethod.java index 64eb9ee30..db5107b45 100644 --- a/core/src/main/java/art/arcane/iris/core/pregenerator/methods/CachedPregenMethod.java +++ b/core/src/main/java/art/arcane/iris/core/pregenerator/methods/CachedPregenMethod.java @@ -5,7 +5,8 @@ import art.arcane.iris.core.pregenerator.PregenListener; import art.arcane.iris.core.pregenerator.PregeneratorMethod; import art.arcane.iris.core.pregenerator.cache.PregenCache; import art.arcane.iris.core.service.GlobalCacheSVC; -import art.arcane.iris.util.mantle.Mantle; +import art.arcane.volmlib.util.mantle.runtime.Mantle; +import art.arcane.volmlib.util.matter.Matter; import lombok.AllArgsConstructor; @AllArgsConstructor diff --git a/core/src/main/java/art/arcane/iris/core/pregenerator/methods/DummyPregenMethod.java b/core/src/main/java/art/arcane/iris/core/pregenerator/methods/DummyPregenMethod.java index cdbd0c139..b6c8b84ee 100644 --- a/core/src/main/java/art/arcane/iris/core/pregenerator/methods/DummyPregenMethod.java +++ b/core/src/main/java/art/arcane/iris/core/pregenerator/methods/DummyPregenMethod.java @@ -20,7 +20,8 @@ package art.arcane.iris.core.pregenerator.methods; import art.arcane.iris.core.pregenerator.PregenListener; import art.arcane.iris.core.pregenerator.PregeneratorMethod; -import art.arcane.iris.util.mantle.Mantle; +import art.arcane.volmlib.util.mantle.runtime.Mantle; +import art.arcane.volmlib.util.matter.Matter; public class DummyPregenMethod implements PregeneratorMethod { @Override diff --git a/core/src/main/java/art/arcane/iris/core/pregenerator/methods/HybridPregenMethod.java b/core/src/main/java/art/arcane/iris/core/pregenerator/methods/HybridPregenMethod.java index 4bfcd9259..50e845ee2 100644 --- a/core/src/main/java/art/arcane/iris/core/pregenerator/methods/HybridPregenMethod.java +++ b/core/src/main/java/art/arcane/iris/core/pregenerator/methods/HybridPregenMethod.java @@ -20,7 +20,8 @@ package art.arcane.iris.core.pregenerator.methods; import art.arcane.iris.core.pregenerator.PregenListener; import art.arcane.iris.core.pregenerator.PregeneratorMethod; -import art.arcane.iris.util.mantle.Mantle; +import art.arcane.volmlib.util.mantle.runtime.Mantle; +import art.arcane.volmlib.util.matter.Matter; import org.bukkit.World; public class HybridPregenMethod implements PregeneratorMethod { diff --git a/core/src/main/java/art/arcane/iris/core/pregenerator/methods/MedievalPregenMethod.java b/core/src/main/java/art/arcane/iris/core/pregenerator/methods/MedievalPregenMethod.java index 4d904bcb8..b658e8a10 100644 --- a/core/src/main/java/art/arcane/iris/core/pregenerator/methods/MedievalPregenMethod.java +++ b/core/src/main/java/art/arcane/iris/core/pregenerator/methods/MedievalPregenMethod.java @@ -24,7 +24,8 @@ import art.arcane.iris.core.pregenerator.PregenListener; import art.arcane.iris.core.pregenerator.PregeneratorMethod; import art.arcane.iris.core.tools.IrisToolbelt; import art.arcane.volmlib.util.collection.KList; -import art.arcane.iris.util.mantle.Mantle; +import art.arcane.volmlib.util.mantle.runtime.Mantle; +import art.arcane.volmlib.util.matter.Matter; import art.arcane.volmlib.util.math.M; import art.arcane.iris.util.scheduling.J; import org.bukkit.Bukkit; diff --git a/core/src/main/java/art/arcane/iris/core/scripting/environment/EngineEnvironment.java b/core/src/main/java/art/arcane/iris/core/scripting/environment/EngineEnvironment.java index 4fb8c337a..5682a89c6 100644 --- a/core/src/main/java/art/arcane/iris/core/scripting/environment/EngineEnvironment.java +++ b/core/src/main/java/art/arcane/iris/core/scripting/environment/EngineEnvironment.java @@ -4,7 +4,7 @@ import art.arcane.iris.core.loader.IrisRegistrant; import art.arcane.iris.core.scripting.func.UpdateExecutor; import art.arcane.iris.core.scripting.kotlin.environment.IrisExecutionEnvironment; import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.util.mantle.MantleChunk; +import art.arcane.volmlib.util.mantle.runtime.MantleChunk; import lombok.NonNull; import org.bukkit.Chunk; import org.bukkit.Location; @@ -26,5 +26,5 @@ public interface EngineEnvironment extends PackEnvironment { void preprocessObject(@NonNull String script, @NonNull IrisRegistrant object); - void updateChunk(@NonNull String script, @NonNull MantleChunk mantleChunk, @NonNull Chunk chunk, @NonNull UpdateExecutor executor); -} \ No newline at end of file + void updateChunk(@NonNull String script, @NonNull MantleChunk mantleChunk, @NonNull Chunk chunk, @NonNull UpdateExecutor executor); +} diff --git a/core/src/main/java/art/arcane/iris/core/service/CommandSVC.java b/core/src/main/java/art/arcane/iris/core/service/CommandSVC.java index 4a0815077..32cb45731 100644 --- a/core/src/main/java/art/arcane/iris/core/service/CommandSVC.java +++ b/core/src/main/java/art/arcane/iris/core/service/CommandSVC.java @@ -23,9 +23,9 @@ import art.arcane.iris.core.IrisSettings; import art.arcane.iris.core.commands.CommandIris; import art.arcane.iris.core.tools.IrisToolbelt; import art.arcane.iris.engine.data.cache.AtomicCache; -import art.arcane.iris.util.decree.DecreeContext; -import art.arcane.iris.util.decree.DecreeContextHandler; -import art.arcane.iris.util.decree.DecreeSystem; +import art.arcane.iris.util.director.DirectorContext; +import art.arcane.iris.util.director.DirectorContextHandler; +import art.arcane.iris.util.director.DirectorSystem; import art.arcane.iris.util.format.C; import art.arcane.iris.util.plugin.IrisService; import art.arcane.iris.util.plugin.VolmitSender; @@ -100,14 +100,14 @@ public class CommandSVC implements IrisService, CommandExecutor, TabCompleter, D buildDirectorContexts(), this::dispatchDirector, this, - DecreeSystem.handlers + DirectorSystem.handlers )); } private DirectorContextRegistry buildDirectorContexts() { DirectorContextRegistry contexts = new DirectorContextRegistry(); - for (Map.Entry, DecreeContextHandler> entry : DecreeContextHandler.contextHandlers.entrySet()) { + for (Map.Entry, DirectorContextHandler> entry : DirectorContextHandler.contextHandlers.entrySet()) { registerContextHandler(contexts, entry.getKey(), entry.getValue()); } @@ -115,10 +115,10 @@ public class CommandSVC implements IrisService, CommandExecutor, TabCompleter, D } @SuppressWarnings({"rawtypes", "unchecked"}) - private void registerContextHandler(DirectorContextRegistry contexts, Class type, DecreeContextHandler handler) { + private void registerContextHandler(DirectorContextRegistry contexts, Class type, DirectorContextHandler handler) { contexts.register((Class) type, (invocation, map) -> { if (invocation.getSender() instanceof BukkitDirectorSender sender) { - return ((DecreeContextHandler) handler).handle(new VolmitSender(sender.sender())); + return ((DirectorContextHandler) handler).handle(new VolmitSender(sender.sender())); } return null; @@ -136,13 +136,13 @@ public class CommandSVC implements IrisService, CommandExecutor, TabCompleter, D @Override public void beforeInvoke(DirectorInvocation invocation, DirectorRuntimeNode node) { if (invocation.getSender() instanceof BukkitDirectorSender sender) { - DecreeContext.touch(new VolmitSender(sender.sender())); + DirectorContext.touch(new VolmitSender(sender.sender())); } } @Override public void afterInvoke(DirectorInvocation invocation, DirectorRuntimeNode node) { - DecreeContext.remove(); + DirectorContext.remove(); } @Nullable @@ -201,7 +201,7 @@ public class CommandSVC implements IrisService, CommandExecutor, TabCompleter, D } VolmitSender volmitSender = new VolmitSender(sender); - volmitSender.sendDecreeHelp(request.get().command(), request.get().page()); + volmitSender.sendDirectorHelp(request.get().command(), request.get().page()); return true; } diff --git a/core/src/main/java/art/arcane/iris/core/service/IrisEngineSVC.java b/core/src/main/java/art/arcane/iris/core/service/IrisEngineSVC.java index 978768c11..88db03995 100644 --- a/core/src/main/java/art/arcane/iris/core/service/IrisEngineSVC.java +++ b/core/src/main/java/art/arcane/iris/core/service/IrisEngineSVC.java @@ -279,7 +279,7 @@ public class IrisEngineSVC implements IrisService { if (engine == null || engine.isClosed() || engine.getMantle().getMantle().isClosed() - || !engine.getMantle().getMantle().shouldReduce(engine)) + || !shouldReduce(engine)) return; World engineWorld = engine.getWorld().realWorld(); if (engineWorld != null && IrisToolbelt.isWorldMaintenanceActive(engineWorld)) { @@ -306,7 +306,7 @@ public class IrisEngineSVC implements IrisService { if (engine == null || engine.isClosed() || engine.getMantle().getMantle().isClosed() - || !engine.getMantle().getMantle().shouldReduce(engine)) + || !shouldReduce(engine)) return; World engineWorld = engine.getWorld().realWorld(); if (engineWorld != null && IrisToolbelt.isWorldMaintenanceActive(engineWorld)) { @@ -357,5 +357,9 @@ public class IrisEngineSVC implements IrisService { if (closed) return null; return access.getEngine(); } + + private boolean shouldReduce(Engine engine) { + return !engine.isStudio() || IrisSettings.get().getPerformance().isTrimMantleInStudio(); + } } } diff --git a/core/src/main/java/art/arcane/iris/core/service/WandSVC.java b/core/src/main/java/art/arcane/iris/core/service/WandSVC.java index f0465b73c..b14f6ba31 100644 --- a/core/src/main/java/art/arcane/iris/core/service/WandSVC.java +++ b/core/src/main/java/art/arcane/iris/core/service/WandSVC.java @@ -28,7 +28,7 @@ import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.data.Cuboid; import art.arcane.iris.util.format.C; import art.arcane.volmlib.util.math.M; -import art.arcane.iris.util.matter.Matter; +import art.arcane.volmlib.util.matter.Matter; import art.arcane.iris.util.matter.WorldMatter; import art.arcane.iris.util.plugin.IrisService; import art.arcane.iris.util.plugin.VolmitSender; diff --git a/core/src/main/java/art/arcane/iris/engine/IrisEngine.java b/core/src/main/java/art/arcane/iris/engine/IrisEngine.java index 35c506e38..2d849d224 100644 --- a/core/src/main/java/art/arcane/iris/engine/IrisEngine.java +++ b/core/src/main/java/art/arcane/iris/engine/IrisEngine.java @@ -47,8 +47,8 @@ import art.arcane.volmlib.util.io.IO; import art.arcane.volmlib.util.mantle.flag.MantleFlag; import art.arcane.volmlib.util.math.M; import art.arcane.volmlib.util.math.RNG; -import art.arcane.iris.util.matter.MatterStructurePOI; -import art.arcane.iris.util.matter.slices.container.JigsawStructureContainer; +import art.arcane.volmlib.util.matter.MatterStructurePOI; +import art.arcane.volmlib.util.matter.slices.container.JigsawStructureContainer; import art.arcane.volmlib.util.scheduling.ChronoLatch; import art.arcane.iris.util.scheduling.J; import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; @@ -236,7 +236,7 @@ public class IrisEngine implements Engine { @Override public IrisJigsawStructure getStructureAt(int x, int y, int z) { var container = getMantle().getMantle().get(x, y, z, JigsawStructureContainer.class); - return container == null ? null : container.load(getData()); + return container == null ? null : getData().getJigsawStructureLoader().load(container.getLoadKey()); } private void warmupChunk(int x, int z) { diff --git a/core/src/main/java/art/arcane/iris/engine/IrisEngineMantle.java b/core/src/main/java/art/arcane/iris/engine/IrisEngineMantle.java index f9622e0d5..8d7b6d3d6 100644 --- a/core/src/main/java/art/arcane/iris/engine/IrisEngineMantle.java +++ b/core/src/main/java/art/arcane/iris/engine/IrisEngineMantle.java @@ -18,6 +18,10 @@ package art.arcane.iris.engine; +import art.arcane.iris.Iris; +import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.core.tools.IrisToolbelt; +import art.arcane.iris.engine.EnginePanic; import art.arcane.iris.core.nms.container.Pair; import art.arcane.iris.engine.data.cache.AtomicCache; import art.arcane.iris.engine.framework.Engine; @@ -29,11 +33,29 @@ import art.arcane.iris.engine.mantle.components.MantleJigsawComponent; import art.arcane.iris.engine.mantle.components.MantleObjectComponent; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; -import art.arcane.iris.util.mantle.Mantle; +import art.arcane.volmlib.util.format.Form; +import art.arcane.volmlib.util.mantle.io.Lz4IOWorkerCodecSupport; +import art.arcane.volmlib.util.mantle.runtime.IOWorker; +import art.arcane.volmlib.util.mantle.runtime.Mantle; +import art.arcane.volmlib.util.mantle.runtime.MantleDataAdapter; +import art.arcane.volmlib.util.mantle.runtime.MantleHooks; +import art.arcane.volmlib.util.mantle.runtime.TectonicPlate; import art.arcane.volmlib.util.mantle.flag.MantleFlag; +import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; +import art.arcane.iris.util.format.C; +import art.arcane.iris.util.matter.IrisMatterSupport; +import art.arcane.volmlib.util.matter.IrisMatter; +import art.arcane.volmlib.util.matter.Matter; +import art.arcane.volmlib.util.matter.MatterSlice; +import art.arcane.iris.util.parallel.HyperLock; +import art.arcane.iris.util.parallel.MultiBurst; import lombok.*; +import org.bukkit.World; +import org.bukkit.block.data.BlockData; +import org.bukkit.entity.Entity; import java.io.File; +import java.io.IOException; import java.util.Collections; import java.util.List; import java.util.Map; @@ -44,7 +66,7 @@ import java.util.Set; @ToString(exclude = "engine") public class IrisEngineMantle implements EngineMantle { private final Engine engine; - private final Mantle mantle; + private final Mantle mantle; @Getter(AccessLevel.NONE) private final KMap> components; private final KMap registeredComponents = new KMap<>(); @@ -55,7 +77,7 @@ public class IrisEngineMantle implements EngineMantle { public IrisEngineMantle(Engine engine) { this.engine = engine; - this.mantle = new Mantle(new File(engine.getWorld().worldFolder(), "mantle"), engine.getTarget().getHeight()); + this.mantle = createMantle(engine); components = new KMap<>(); registerComponent(new MantleCarvingComponent(this)); registerComponent(new MantleFluidBodyComponent(this)); @@ -147,4 +169,239 @@ public class IrisEngineMantle implements EngineMantle { public MantleObjectComponent getObjectComponent() { return object; } + + private static Mantle createMantle(Engine engine) { + IrisMatterSupport.ensureRegistered(); + File dataFolder = new File(engine.getWorld().worldFolder(), "mantle"); + int worldHeight = engine.getTarget().getHeight(); + MantleDataAdapter adapter = createRuntimeDataAdapter(); + MantleHooks hooks = createRuntimeHooks(); + art.arcane.volmlib.util.mantle.Mantle.RegionIO> regionIO = + createRegionIO(dataFolder, worldHeight, adapter, hooks); + return new Mantle<>( + dataFolder, + worldHeight, + Short.MAX_VALUE, + new HyperLock(), + MultiBurst.ioBurst, + regionIO, + adapter, + hooks + ); + } + + public static MantleDataAdapter createRuntimeDataAdapter() { + return createDataAdapter(); + } + + public static MantleHooks createRuntimeHooks() { + return createHooks(); + } + + private static MantleDataAdapter createDataAdapter() { + return new MantleDataAdapter<>() { + @Override + public Matter createSection() { + return new IrisMatter(16, 16, 16); + } + + @Override + public Matter readSection(art.arcane.volmlib.util.io.CountingDataInputStream din) throws IOException { + return Matter.readDin(din); + } + + @Override + public void writeSection(Matter section, java.io.DataOutputStream dos) throws IOException { + section.writeDos(dos); + } + + @Override + public void trimSection(Matter section) { + section.trimSlices(); + } + + @Override + public boolean isSectionEmpty(Matter section) { + return section.getSliceMap().isEmpty(); + } + + @Override + public Class classifyValue(Object value) { + if (value instanceof World) { + return World.class; + } + + if (value instanceof BlockData) { + return BlockData.class; + } + + if (value instanceof Entity) { + return Entity.class; + } + + return value.getClass(); + } + + @Override + @SuppressWarnings("unchecked") + public void set(Matter section, int x, int y, int z, Class type, T value) { + MatterSlice slice = (MatterSlice) section.slice(type); + slice.set(x, y, z, value); + } + + @Override + public void remove(Matter section, int x, int y, int z, Class type) { + MatterSlice slice = section.slice(type); + slice.set(x, y, z, null); + } + + @Override + public T get(Matter section, int x, int y, int z, Class type) { + MatterSlice slice = section.slice(type); + return slice.get(x, y, z); + } + + @Override + public void iterate(Matter section, Class type, art.arcane.volmlib.util.function.Consumer4 iterator) { + MatterSlice slice = section.getSlice(type); + if (slice != null) { + slice.iterateSync(iterator); + } + } + + @Override + public boolean hasSlice(Matter section, Class type) { + return section.hasSlice(type); + } + + @Override + public void deleteSlice(Matter section, Class type) { + section.deleteSlice(type); + } + }; + } + + private static MantleHooks createHooks() { + return new MantleHooks() { + @Override + public void onBeforeReadSection(int index) { + Iris.addPanic("read.section", "Section[" + index + "]"); + } + + @Override + public void onReadSectionFailure(int index, + long start, + long end, + art.arcane.volmlib.util.io.CountingDataInputStream din, + IOException error) { + Iris.error("Failed to read chunk section, skipping it."); + Iris.addPanic("read.byte.range", start + " " + end); + Iris.addPanic("read.byte.current", din.count() + ""); + Iris.reportError(error); + error.printStackTrace(); + Iris.panic(); + TectonicPlate.addError(); + } + + @Override + public void onBeforeReadChunk(int index) { + Iris.addPanic("read-chunk", "Chunk[" + index + "]"); + } + + @Override + public void onAfterReadChunk(int index) { + EnginePanic.saveLast(); + } + + @Override + public void onReadChunkFailure(int index, + long start, + long end, + art.arcane.volmlib.util.io.CountingDataInputStream din, + Throwable error) { + Iris.error("Failed to read chunk, creating a new chunk instead."); + Iris.addPanic("read.byte.range", start + " " + end); + Iris.addPanic("read.byte.current", din.count() + ""); + Iris.reportError(error); + error.printStackTrace(); + Iris.panic(); + } + + @Override + public boolean shouldRetainSlice(Class sliceType) { + return IrisToolbelt.isRetainingMantleDataForSlice(sliceType.getCanonicalName()); + } + + @Override + public String formatDuration(double millis) { + return Form.duration(millis, 0); + } + + @Override + public void onDebug(String message) { + Iris.debug(message); + } + + @Override + public void onWarn(String message) { + Iris.warn(message); + } + + @Override + public void onError(Throwable throwable) { + Iris.reportError(throwable); + } + }; + } + + private static art.arcane.volmlib.util.mantle.Mantle.RegionIO> createRegionIO(File root, + int worldHeight, + MantleDataAdapter adapter, + MantleHooks hooks) { + IOWorker> worker = new IOWorker<>( + root, + new Lz4IOWorkerCodecSupport(), + 128, + (name, millis) -> { + String threadName = Thread.currentThread().getName(); + String message = "Acquired Channel for " + C.DARK_GREEN + name + C.RED + " in " + Form.duration(millis, 2) + + C.GRAY + " thread=" + threadName; + if (millis >= 1000L) { + Iris.warn(message); + } else { + Iris.debug(message); + } + } + ); + + return new art.arcane.volmlib.util.mantle.Mantle.RegionIO<>() { + @Override + public TectonicPlate read(String name) throws Exception { + PrecisionStopwatch stopwatch = PrecisionStopwatch.start(); + try { + return worker.read(name, (regionName, in) -> + TectonicPlate.read(worldHeight, in, regionName.startsWith("pv."), adapter, hooks)); + } finally { + if (TectonicPlate.hasError() && IrisSettings.get().getGeneral().isDumpMantleOnError()) { + File dump = Iris.instance.getDataFolder("dump", name + ".bin"); + worker.dumpDecoded(name, dump.toPath()); + } else { + Iris.debug("Read Tectonic Plate " + C.DARK_GREEN + name + C.RED + " in " + Form.duration(stopwatch.getMilliseconds(), 2)); + } + } + } + + @Override + public void write(String name, TectonicPlate region) throws Exception { + PrecisionStopwatch stopwatch = PrecisionStopwatch.start(); + worker.write(name, "iris", ".bin", region, TectonicPlate::write); + Iris.debug("Saved Tectonic Plate " + C.DARK_GREEN + name + C.RED + " in " + Form.duration(stopwatch.getMilliseconds(), 2)); + } + + @Override + public void close() throws Exception { + worker.close(); + } + }; + } } diff --git a/core/src/main/java/art/arcane/iris/engine/IrisWorldManager.java b/core/src/main/java/art/arcane/iris/engine/IrisWorldManager.java index 09412fd6d..47fd99dfa 100644 --- a/core/src/main/java/art/arcane/iris/engine/IrisWorldManager.java +++ b/core/src/main/java/art/arcane/iris/engine/IrisWorldManager.java @@ -33,11 +33,13 @@ import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.collection.KSet; import art.arcane.volmlib.util.format.Form; -import art.arcane.iris.util.mantle.Mantle; +import art.arcane.volmlib.util.mantle.runtime.Mantle; +import art.arcane.volmlib.util.mantle.runtime.MantleChunk; import art.arcane.volmlib.util.mantle.flag.MantleFlag; import art.arcane.volmlib.util.math.M; -import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.Position2; import art.arcane.volmlib.util.math.RNG; +import art.arcane.volmlib.util.matter.Matter; import art.arcane.volmlib.util.matter.MatterMarker; import art.arcane.iris.util.parallel.MultiBurst; import art.arcane.iris.util.plugin.Chunks; @@ -245,7 +247,7 @@ public class IrisWorldManager extends EngineAssignedWorldManager { J.a(() -> { try { - Mantle mantle = getMantle(); + Mantle mantle = getMantle(); if (!mantle.hasFlag(chunkX, chunkZ, MantleFlag.DISCOVERED)) { mantle.flag(chunkX, chunkZ, MantleFlag.DISCOVERED, true); } @@ -352,7 +354,7 @@ public class IrisWorldManager extends EngineAssignedWorldManager { J.a(() -> { boolean raised = false; try { - Mantle mantle = getMantle(); + Mantle mantle = getMantle(); if (!mantle.hasFlag(chunkX, chunkZ, MantleFlag.INITIAL_SPAWNED_MARKER)) { mantle.flag(chunkX, chunkZ, MantleFlag.INITIAL_SPAWNED_MARKER, true); raised = true; @@ -680,7 +682,7 @@ public class IrisWorldManager extends EngineAssignedWorldManager { } Chunk chunkRef = world.getChunkAt(chunkX, chunkZ); - var mantleChunk = getMantle().getChunk(chunkRef).use(); + MantleChunk mantleChunk = getMantle().getChunk(chunkRef).use(); try { mantleChunk.raiseFlagUnchecked(MantleFlag.CUSTOM, () -> { mantleChunk.iterate(Identifier.class, (x, y, z, v) -> { @@ -731,7 +733,7 @@ public class IrisWorldManager extends EngineAssignedWorldManager { spawn(block, ss); } - public Mantle getMantle() { + public Mantle getMantle() { return getEngine().getMantle().getMantle(); } diff --git a/core/src/main/java/art/arcane/iris/engine/actuator/IrisBiomeActuator.java b/core/src/main/java/art/arcane/iris/engine/actuator/IrisBiomeActuator.java index 9337890df..2b506013f 100644 --- a/core/src/main/java/art/arcane/iris/engine/actuator/IrisBiomeActuator.java +++ b/core/src/main/java/art/arcane/iris/engine/actuator/IrisBiomeActuator.java @@ -27,8 +27,8 @@ import art.arcane.iris.util.context.ChunkContext; import art.arcane.volmlib.util.documentation.BlockCoordinates; import art.arcane.iris.util.hunk.Hunk; import art.arcane.volmlib.util.math.RNG; -import art.arcane.iris.util.matter.MatterBiomeInject; -import art.arcane.iris.util.matter.slices.BiomeInjectMatter; +import art.arcane.volmlib.util.matter.MatterBiomeInject; +import art.arcane.volmlib.util.matter.slices.BiomeInjectMatter; import art.arcane.volmlib.util.scheduling.ChronoLatch; import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import org.bukkit.block.Biome; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/BlockUpdater.java b/core/src/main/java/art/arcane/iris/engine/framework/BlockUpdater.java index 0ae60982c..33dcaea10 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/BlockUpdater.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/BlockUpdater.java @@ -18,8 +18,9 @@ package art.arcane.iris.engine.framework; -import art.arcane.iris.util.mantle.MantleChunk; +import art.arcane.volmlib.util.mantle.runtime.MantleChunk; import art.arcane.volmlib.util.math.RNG; +import art.arcane.volmlib.util.matter.Matter; import org.bukkit.Chunk; import org.bukkit.block.data.BlockData; @@ -29,5 +30,5 @@ public interface BlockUpdater { void updateChunk(Chunk c); - void update(int x, int y, int z, Chunk c, MantleChunk mc, RNG rf); + void update(int x, int y, int z, Chunk c, MantleChunk mc, RNG rf); } diff --git a/core/src/main/java/art/arcane/iris/engine/framework/Engine.java b/core/src/main/java/art/arcane/iris/engine/framework/Engine.java index 90a894655..c9c9db5ce 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/Engine.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/Engine.java @@ -49,16 +49,17 @@ import art.arcane.volmlib.util.documentation.ChunkCoordinates; import art.arcane.iris.util.format.C; import art.arcane.volmlib.util.function.Function2; import art.arcane.iris.util.hunk.Hunk; -import art.arcane.iris.util.mantle.MantleChunk; +import art.arcane.volmlib.util.mantle.runtime.MantleChunk; import art.arcane.volmlib.util.mantle.flag.MantleFlag; import art.arcane.volmlib.util.math.BlockPosition; import art.arcane.volmlib.util.math.M; -import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.Position2; import art.arcane.volmlib.util.math.RNG; +import art.arcane.volmlib.util.matter.Matter; import art.arcane.volmlib.util.matter.MatterCavern; import art.arcane.volmlib.util.matter.MatterUpdate; import art.arcane.iris.util.matter.TileWrapper; -import art.arcane.iris.util.matter.slices.container.JigsawPieceContainer; +import art.arcane.volmlib.util.matter.slices.container.JigsawPieceContainer; import art.arcane.iris.util.parallel.BurstExecutor; import art.arcane.iris.util.parallel.MultiBurst; import art.arcane.iris.util.reflect.W; @@ -400,7 +401,7 @@ public interface Engine extends DataProvider, Fallible, LootProvider, BlockUpdat @BlockCoordinates @Override - default void update(int x, int y, int z, Chunk c, MantleChunk mc, RNG rf) { + default void update(int x, int y, int z, Chunk c, MantleChunk mc, RNG rf) { Block block = c.getBlock(x, y, z); BlockData data = block.getBlockData(); blockUpdatedMetric(); @@ -483,7 +484,7 @@ public interface Engine extends DataProvider, Fallible, LootProvider, BlockUpdat @BlockCoordinates @Override default KList getLootTables(RNG rng, Block b) { - MantleChunk mc = getMantle().getMantle().getChunk(b.getChunk()).use(); + MantleChunk mc = getMantle().getMantle().getChunk(b.getChunk()).use(); try { return getLootTables(rng, b, mc); } finally { @@ -492,7 +493,7 @@ public interface Engine extends DataProvider, Fallible, LootProvider, BlockUpdat } @BlockCoordinates - default KList getLootTables(RNG rng, Block b, MantleChunk mc) { + default KList getLootTables(RNG rng, Block b, MantleChunk mc) { int rx = b.getX(); int rz = b.getZ(); int ry = b.getY() - getWorld().minHeight(); @@ -822,7 +823,7 @@ public interface Engine extends DataProvider, Fallible, LootProvider, BlockUpdat } default PlacedObject getObjectPlacement(int x, int y, int z) { - MantleChunk chunk = getMantle().getMantle().getChunk(x >> 4, z >> 4).use(); + MantleChunk chunk = getMantle().getMantle().getChunk(x >> 4, z >> 4).use(); try { return getObjectPlacement(x, y, z, chunk); } finally { @@ -830,7 +831,7 @@ public interface Engine extends DataProvider, Fallible, LootProvider, BlockUpdat } } - default PlacedObject getObjectPlacement(int x, int y, int z, MantleChunk chunk) { + default PlacedObject getObjectPlacement(int x, int y, int z, MantleChunk chunk) { String objectAt = chunk.get(x & 15, y, z & 15, String.class); if (objectAt == null || objectAt.isEmpty()) { return null; @@ -843,7 +844,7 @@ public interface Engine extends DataProvider, Fallible, LootProvider, BlockUpdat JigsawPieceContainer container = chunk.get(x & 15, y, z & 15, JigsawPieceContainer.class); if (container != null) { - IrisJigsawPiece piece = container.load(getData()); + IrisJigsawPiece piece = getData().getJigsawPieceLoader().load(container.getLoadKey()); if (piece.getObject().equals(object)) return new PlacedObject(piece.getPlacementOptions(), getData().getObjectLoader().load(object), id, x, z); } diff --git a/core/src/main/java/art/arcane/iris/engine/framework/EngineActuator.java b/core/src/main/java/art/arcane/iris/engine/framework/EngineActuator.java index 742f9b9b9..056a5c197 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/EngineActuator.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/EngineActuator.java @@ -21,7 +21,6 @@ package art.arcane.iris.engine.framework; import art.arcane.iris.util.context.ChunkContext; import art.arcane.volmlib.util.documentation.BlockCoordinates; import art.arcane.iris.util.hunk.Hunk; - public interface EngineActuator extends EngineComponent { @BlockCoordinates void actuate(int x, int z, Hunk output, boolean multicore, ChunkContext context); diff --git a/core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedActuator.java b/core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedActuator.java index ebf3ed5f5..0c051b76a 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedActuator.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedActuator.java @@ -21,7 +21,6 @@ package art.arcane.iris.engine.framework; import art.arcane.iris.util.context.ChunkContext; import art.arcane.volmlib.util.documentation.BlockCoordinates; import art.arcane.iris.util.hunk.Hunk; - public abstract class EngineAssignedActuator extends EngineAssignedComponent implements EngineActuator { public EngineAssignedActuator(Engine engine, String name) { super(engine, name); diff --git a/core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedBiModifier.java b/core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedBiModifier.java index b3cfcbe93..6d380e17c 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedBiModifier.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedBiModifier.java @@ -20,7 +20,6 @@ package art.arcane.iris.engine.framework; import art.arcane.iris.util.hunk.Hunk; - public abstract class EngineAssignedBiModifier extends EngineAssignedComponent implements EngineBiModifier { public EngineAssignedBiModifier(Engine engine, String name) { super(engine, name); diff --git a/core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedModifier.java b/core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedModifier.java index d3d7afd2e..6fb875917 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedModifier.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedModifier.java @@ -22,7 +22,6 @@ import art.arcane.iris.Iris; import art.arcane.iris.util.context.ChunkContext; import art.arcane.volmlib.util.documentation.BlockCoordinates; import art.arcane.iris.util.hunk.Hunk; - public abstract class EngineAssignedModifier extends EngineAssignedComponent implements EngineModifier { public EngineAssignedModifier(Engine engine, String name) { super(engine, name); diff --git a/core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedWorldManager.java b/core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedWorldManager.java index 9606a3f5d..1efac5882 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedWorldManager.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedWorldManager.java @@ -22,7 +22,7 @@ import art.arcane.iris.Iris; import art.arcane.iris.core.events.IrisEngineHotloadEvent; import art.arcane.volmlib.util.collection.KList; import art.arcane.iris.util.format.C; -import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.Position2; import art.arcane.iris.util.plugin.VolmitSender; import art.arcane.iris.util.scheduling.J; import org.bukkit.*; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/EngineBiModifier.java b/core/src/main/java/art/arcane/iris/engine/framework/EngineBiModifier.java index 811257639..13123f59a 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/EngineBiModifier.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/EngineBiModifier.java @@ -20,7 +20,6 @@ package art.arcane.iris.engine.framework; import art.arcane.iris.util.hunk.Hunk; - public interface EngineBiModifier extends EngineComponent { void modify(int x, int z, Hunk a, Hunk b); } diff --git a/core/src/main/java/art/arcane/iris/engine/framework/EngineModifier.java b/core/src/main/java/art/arcane/iris/engine/framework/EngineModifier.java index 4e8154fb6..9608cbb20 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/EngineModifier.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/EngineModifier.java @@ -21,7 +21,6 @@ package art.arcane.iris.engine.framework; import art.arcane.iris.util.context.ChunkContext; import art.arcane.volmlib.util.documentation.BlockCoordinates; import art.arcane.iris.util.hunk.Hunk; - public interface EngineModifier extends EngineComponent { @BlockCoordinates void modify(int x, int z, Hunk t, boolean multicore, ChunkContext context); diff --git a/core/src/main/java/art/arcane/iris/engine/framework/Locator.java b/core/src/main/java/art/arcane/iris/engine/framework/Locator.java index 6e3bc8e1f..228aeb204 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/Locator.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/Locator.java @@ -30,7 +30,7 @@ import art.arcane.iris.util.context.ChunkContext; import art.arcane.iris.util.format.C; import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.math.M; -import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.Position2; import art.arcane.volmlib.util.math.Spiraler; import art.arcane.volmlib.util.matter.MatterCavern; import art.arcane.iris.util.parallel.BurstExecutor; diff --git a/core/src/main/java/art/arcane/iris/engine/framework/ResultLocator.java b/core/src/main/java/art/arcane/iris/engine/framework/ResultLocator.java index d81e510a9..9945b109c 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/ResultLocator.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/ResultLocator.java @@ -4,7 +4,7 @@ import art.arcane.iris.core.IrisSettings; import art.arcane.iris.engine.object.IrisJigsawStructure; import art.arcane.iris.engine.object.IrisObject; import art.arcane.volmlib.util.collection.KList; -import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.Position2; import art.arcane.volmlib.util.math.Spiraler; import art.arcane.iris.util.parallel.BurstExecutor; import art.arcane.iris.util.parallel.MultiBurst; diff --git a/core/src/main/java/art/arcane/iris/engine/jigsaw/PlannedStructure.java b/core/src/main/java/art/arcane/iris/engine/jigsaw/PlannedStructure.java index 57d0cebbf..4f55dfc23 100644 --- a/core/src/main/java/art/arcane/iris/engine/jigsaw/PlannedStructure.java +++ b/core/src/main/java/art/arcane/iris/engine/jigsaw/PlannedStructure.java @@ -25,12 +25,13 @@ import art.arcane.iris.engine.framework.Engine; import art.arcane.iris.engine.framework.placer.WorldObjectPlacer; import art.arcane.iris.engine.object.*; import art.arcane.volmlib.util.collection.KList; -import art.arcane.iris.util.mantle.Mantle; -import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.mantle.runtime.Mantle; +import art.arcane.volmlib.util.math.Position2; import art.arcane.volmlib.util.math.RNG; -import art.arcane.iris.util.matter.slices.container.JigsawPieceContainer; -import art.arcane.iris.util.matter.slices.container.JigsawStructureContainer; -import art.arcane.iris.util.matter.slices.container.JigsawStructuresContainer; +import art.arcane.volmlib.util.matter.Matter; +import art.arcane.volmlib.util.matter.slices.container.JigsawPieceContainer; +import art.arcane.volmlib.util.matter.slices.container.JigsawStructureContainer; +import art.arcane.volmlib.util.matter.slices.container.JigsawStructuresContainer; import art.arcane.iris.util.scheduling.J; import lombok.Data; import org.bukkit.Axis; @@ -78,7 +79,7 @@ public class PlannedStructure { } } - public boolean place(IObjectPlacer placer, Mantle e, Engine eng) { + public boolean place(IObjectPlacer placer, Mantle e, Engine eng) { IrisObjectPlacement options = new IrisObjectPlacement(); options.setRotation(IrisObjectRotation.of(0,0,0)); int startHeight = pieces.get(0).getPosition().getY(); @@ -93,13 +94,13 @@ public class PlannedStructure { Position2 regionPos = new Position2(chunkPos.getX() >> 5, chunkPos.getZ() >> 5); JigsawStructuresContainer slice = e.get(regionPos.getX(), 0, regionPos.getZ(), JigsawStructuresContainer.class); if (slice == null) slice = new JigsawStructuresContainer(); - slice.add(structure, chunkPos); + slice.add(structure.getLoadKey(), chunkPos); e.set(regionPos.getX(), 0, regionPos.getZ(), slice); } return placed; } - public boolean place(PlannedPiece i, int startHeight, IrisObjectPlacement o, IObjectPlacer placer, Mantle e, Engine eng) { + public boolean place(PlannedPiece i, int startHeight, IrisObjectPlacement o, IObjectPlacer placer, Mantle e, Engine eng) { IrisObjectPlacement options = o; if (i.getPiece().getPlacementOptions() != null) { @@ -150,8 +151,8 @@ public class PlannedStructure { } int id = rng.i(0, Integer.MAX_VALUE); - JigsawPieceContainer piece = JigsawPieceContainer.toContainer(i.getPiece()); - JigsawStructureContainer structure = JigsawStructureContainer.toContainer(getStructure()); + JigsawPieceContainer piece = new JigsawPieceContainer(i.getPiece().getLoadKey()); + JigsawStructureContainer structure = new JigsawStructureContainer(getStructure().getLoadKey()); i.setRealPositions(xx, height, zz, placer); return v.place(xx, height, zz, placer, options, rng, (b, data) -> { placer.setData(b.getX(), b.getY(), b.getZ(), v.getLoadKey() + "@" + id); diff --git a/core/src/main/java/art/arcane/iris/engine/mantle/EngineMantle.java b/core/src/main/java/art/arcane/iris/engine/mantle/EngineMantle.java index df858094d..c676c5330 100644 --- a/core/src/main/java/art/arcane/iris/engine/mantle/EngineMantle.java +++ b/core/src/main/java/art/arcane/iris/engine/mantle/EngineMantle.java @@ -33,14 +33,14 @@ import art.arcane.iris.util.data.B; import art.arcane.volmlib.util.documentation.BlockCoordinates; import art.arcane.volmlib.util.documentation.ChunkCoordinates; import art.arcane.iris.util.hunk.Hunk; -import art.arcane.iris.util.mantle.Mantle; -import art.arcane.iris.util.mantle.MantleChunk; +import art.arcane.volmlib.util.mantle.runtime.Mantle; +import art.arcane.volmlib.util.mantle.runtime.MantleChunk; import art.arcane.volmlib.util.mantle.flag.MantleFlag; import art.arcane.volmlib.util.matter.MatterCavern; import art.arcane.volmlib.util.matter.MatterFluidBody; import art.arcane.volmlib.util.matter.MatterMarker; -import art.arcane.iris.util.matter.*; -import art.arcane.iris.util.matter.slices.UpdateMatter; +import art.arcane.volmlib.util.matter.Matter; +import art.arcane.volmlib.util.matter.slices.UpdateMatter; import art.arcane.iris.util.parallel.MultiBurst; import art.arcane.iris.util.scheduling.J; import org.bukkit.World; @@ -54,7 +54,7 @@ import java.util.concurrent.TimeUnit; public interface EngineMantle extends MatterGenerator { BlockData AIR = B.get("AIR"); - Mantle getMantle(); + Mantle getMantle(); Engine getEngine(); @@ -248,7 +248,7 @@ public interface EngineMantle extends MatterGenerator { default void cleanupChunk(int x, int z) { if (!isCovered(x, z)) return; - MantleChunk chunk = getMantle().getChunk(x, z).use(); + MantleChunk chunk = getMantle().getChunk(x, z).use(); try { chunk.raiseFlagUnchecked(MantleFlag.CLEANED, () -> { chunk.deleteSlices(BlockData.class); diff --git a/core/src/main/java/art/arcane/iris/engine/mantle/MantleComponent.java b/core/src/main/java/art/arcane/iris/engine/mantle/MantleComponent.java index a69eac682..6d4f63fe0 100644 --- a/core/src/main/java/art/arcane/iris/engine/mantle/MantleComponent.java +++ b/core/src/main/java/art/arcane/iris/engine/mantle/MantleComponent.java @@ -23,8 +23,9 @@ import art.arcane.iris.engine.IrisComplex; import art.arcane.iris.engine.object.IrisDimension; import art.arcane.iris.util.context.ChunkContext; import art.arcane.volmlib.util.documentation.ChunkCoordinates; -import art.arcane.iris.util.mantle.Mantle; +import art.arcane.volmlib.util.mantle.runtime.Mantle; import art.arcane.volmlib.util.mantle.flag.MantleFlag; +import art.arcane.volmlib.util.matter.Matter; import art.arcane.iris.util.parallel.BurstExecutor; import org.jetbrains.annotations.NotNull; @@ -55,7 +56,7 @@ public interface MantleComponent extends Comparable { EngineMantle getEngineMantle(); - default Mantle getMantle() { + default Mantle getMantle() { return getEngineMantle().getMantle(); } diff --git a/core/src/main/java/art/arcane/iris/engine/mantle/MantleWriter.java b/core/src/main/java/art/arcane/iris/engine/mantle/MantleWriter.java index 5baa04e15..fdfe058f0 100644 --- a/core/src/main/java/art/arcane/iris/engine/mantle/MantleWriter.java +++ b/core/src/main/java/art/arcane/iris/engine/mantle/MantleWriter.java @@ -35,10 +35,10 @@ import art.arcane.iris.util.data.B; import art.arcane.iris.util.data.IrisCustomData; import art.arcane.volmlib.util.documentation.ChunkCoordinates; import art.arcane.volmlib.util.function.Function3; -import art.arcane.iris.util.mantle.Mantle; -import art.arcane.iris.util.mantle.MantleChunk; +import art.arcane.volmlib.util.mantle.runtime.Mantle; +import art.arcane.volmlib.util.mantle.runtime.MantleChunk; import art.arcane.volmlib.util.math.RNG; -import art.arcane.iris.util.matter.Matter; +import art.arcane.volmlib.util.matter.Matter; import art.arcane.volmlib.util.matter.MatterCavern; import art.arcane.iris.util.matter.TileWrapper; import art.arcane.iris.util.noise.CNG; @@ -55,13 +55,13 @@ import static art.arcane.iris.engine.mantle.EngineMantle.AIR; @Data public class MantleWriter implements IObjectPlacer, AutoCloseable { private final EngineMantle engineMantle; - private final Mantle mantle; - private final Map cachedChunks; + private final Mantle mantle; + private final Map> cachedChunks; private final int radius; private final int x; private final int z; - public MantleWriter(EngineMantle engineMantle, Mantle mantle, int x, int z, int radius, boolean multicore) { + public MantleWriter(EngineMantle engineMantle, Mantle mantle, int x, int z, int radius, boolean multicore) { this.engineMantle = engineMantle; this.mantle = mantle; this.radius = radius * 2; @@ -76,7 +76,7 @@ public class MantleWriter implements IObjectPlacer, AutoCloseable { if (foliaMaintenance && IrisSettings.get().getGeneral().isDebug()) { Iris.info("MantleWriter using sequential chunk prefetch for maintenance regen at " + x + "," + z + "."); } - final var map = multicore ? cachedChunks : new KMap(d * d, 1f, parallelism); + final var map = multicore ? cachedChunks : new KMap>(d * d, 1f, parallelism); mantle.getChunks( x - radius, x + radius, @@ -163,7 +163,7 @@ public class MantleWriter implements IObjectPlacer, AutoCloseable { return; } - MantleChunk chunk = acquireChunk(cx, cz); + MantleChunk chunk = acquireChunk(cx, cz); if (chunk == null) return; Matter matter = chunk.getOrCreate(y >> 4); @@ -178,7 +178,7 @@ public class MantleWriter implements IObjectPlacer, AutoCloseable { return null; } - MantleChunk chunk = acquireChunk(cx, cz); + MantleChunk chunk = acquireChunk(cx, cz); if (chunk == null) { return null; } @@ -189,14 +189,14 @@ public class MantleWriter implements IObjectPlacer, AutoCloseable { } @ChunkCoordinates - public MantleChunk acquireChunk(int cx, int cz) { + public MantleChunk acquireChunk(int cx, int cz) { if (cx < this.x - radius || cx > this.x + radius || cz < this.z - radius || cz > this.z + radius) { Iris.error("Mantle Writer Accessed chunk out of bounds" + cx + "," + cz); return null; } final Long key = Cache.key(cx, cz); - MantleChunk chunk = cachedChunks.get(key); + MantleChunk chunk = cachedChunks.get(key); if (chunk == null) { chunk = mantle.getChunk(cx, cz).use(); var old = cachedChunks.put(key, chunk); diff --git a/core/src/main/java/art/arcane/iris/engine/mantle/components/MantleJigsawComponent.java b/core/src/main/java/art/arcane/iris/engine/mantle/components/MantleJigsawComponent.java index b2812f359..e9d0fdb42 100644 --- a/core/src/main/java/art/arcane/iris/engine/mantle/components/MantleJigsawComponent.java +++ b/core/src/main/java/art/arcane/iris/engine/mantle/components/MantleJigsawComponent.java @@ -31,9 +31,9 @@ import art.arcane.iris.util.context.ChunkContext; import art.arcane.volmlib.util.documentation.BlockCoordinates; import art.arcane.volmlib.util.documentation.ChunkCoordinates; import art.arcane.volmlib.util.mantle.flag.ReservedFlag; -import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.Position2; import art.arcane.volmlib.util.math.RNG; -import art.arcane.iris.util.matter.slices.container.JigsawStructuresContainer; +import art.arcane.volmlib.util.matter.slices.container.JigsawStructuresContainer; import art.arcane.iris.util.noise.CNG; import org.jetbrains.annotations.Nullable; @@ -68,7 +68,7 @@ public class MantleJigsawComponent extends IrisMantleComponent { for (Position2 pos : poss) { if (x == pos.getX() >> 4 && z == pos.getZ() >> 4) { IrisJigsawStructure structure = getData().getJigsawStructureLoader().load(getDimension().getStronghold()); - place(writer, pos.toIris(), structure, new RNG(seed), true); + place(writer, new IrisPosition(pos.getX(), 23, pos.getZ()), structure, new RNG(seed), true); return; } } @@ -113,7 +113,8 @@ public class MantleJigsawComponent extends IrisMantleComponent { JigsawStructuresContainer container = getMantle().get(pos.getX(), 0, pos.getZ(), JigsawStructuresContainer.class); if (container == null) continue; for (String key : container.getStructures()) { - cache.computeIfAbsent(key, k -> new KSet<>()).addAll(container.getPositions(key)); + KSet positions = cache.computeIfAbsent(key, k -> new KSet<>()); + container.getPositions(key).forEach(p -> positions.add(new Position2(p.getX(), p.getZ()))); } } } diff --git a/core/src/main/java/art/arcane/iris/engine/mantle/components/MantleObjectComponent.java b/core/src/main/java/art/arcane/iris/engine/mantle/components/MantleObjectComponent.java index 471e6bf25..7d604473e 100644 --- a/core/src/main/java/art/arcane/iris/engine/mantle/components/MantleObjectComponent.java +++ b/core/src/main/java/art/arcane/iris/engine/mantle/components/MantleObjectComponent.java @@ -37,7 +37,7 @@ import art.arcane.volmlib.util.documentation.ChunkCoordinates; import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.mantle.flag.ReservedFlag; import art.arcane.volmlib.util.math.RNG; -import art.arcane.iris.util.matter.MatterStructurePOI; +import art.arcane.volmlib.util.matter.MatterStructurePOI; import art.arcane.iris.util.noise.CNG; import art.arcane.iris.util.noise.NoiseType; import art.arcane.iris.util.parallel.BurstExecutor; diff --git a/core/src/main/java/art/arcane/iris/engine/modifier/IrisCarveModifier.java b/core/src/main/java/art/arcane/iris/engine/modifier/IrisCarveModifier.java index 37995d1f9..5c8dad816 100644 --- a/core/src/main/java/art/arcane/iris/engine/modifier/IrisCarveModifier.java +++ b/core/src/main/java/art/arcane/iris/engine/modifier/IrisCarveModifier.java @@ -30,12 +30,13 @@ import art.arcane.iris.util.data.B; import art.arcane.volmlib.util.documentation.ChunkCoordinates; import art.arcane.volmlib.util.function.Consumer4; import art.arcane.iris.util.hunk.Hunk; -import art.arcane.iris.util.mantle.Mantle; -import art.arcane.iris.util.mantle.MantleChunk; +import art.arcane.volmlib.util.mantle.runtime.Mantle; +import art.arcane.volmlib.util.mantle.runtime.MantleChunk; import art.arcane.volmlib.util.math.M; import art.arcane.volmlib.util.math.RNG; +import art.arcane.volmlib.util.matter.Matter; import art.arcane.volmlib.util.matter.MatterCavern; -import art.arcane.iris.util.matter.slices.MarkerMatter; +import art.arcane.volmlib.util.matter.slices.MarkerMatter; import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; import lombok.Data; import org.bukkit.Material; @@ -57,8 +58,8 @@ public class IrisCarveModifier extends EngineAssignedModifier { @ChunkCoordinates public void onModify(int x, int z, Hunk output, boolean multicore, ChunkContext context) { PrecisionStopwatch p = PrecisionStopwatch.start(); - Mantle mantle = getEngine().getMantle().getMantle(); - MantleChunk mc = mantle.getChunk(x, z).use(); + Mantle mantle = getEngine().getMantle().getMantle(); + MantleChunk mc = mantle.getChunk(x, z).use(); KMap> positions = new KMap<>(); KMap walls = new KMap<>(); Consumer4 iterator = (xx, yy, zz, c) -> { @@ -170,7 +171,7 @@ public class IrisCarveModifier extends EngineAssignedModifier { mc.release(); } - private void processZone(Hunk output, MantleChunk mc, Mantle mantle, CaveZone zone, int rx, int rz, int xx, int zz) { + private void processZone(Hunk output, MantleChunk mc, Mantle mantle, CaveZone zone, int rx, int rz, int xx, int zz) { boolean decFloor = B.isSolid(output.getClosest(rx, zone.floor - 1, rz)); boolean decCeiling = B.isSolid(output.getClosest(rx, zone.ceiling + 1, rz)); int center = (zone.floor + zone.ceiling) / 2; diff --git a/core/src/main/java/art/arcane/iris/engine/modifier/IrisDepositModifier.java b/core/src/main/java/art/arcane/iris/engine/modifier/IrisDepositModifier.java index 6d8d5d3a4..3e15b42ee 100644 --- a/core/src/main/java/art/arcane/iris/engine/modifier/IrisDepositModifier.java +++ b/core/src/main/java/art/arcane/iris/engine/modifier/IrisDepositModifier.java @@ -25,7 +25,7 @@ import art.arcane.iris.util.context.ChunkContext; import art.arcane.iris.util.data.B; import art.arcane.volmlib.util.data.HeightMap; import art.arcane.iris.util.hunk.Hunk; -import art.arcane.iris.util.mantle.MantleChunk; +import art.arcane.volmlib.util.mantle.runtime.MantleChunk; import art.arcane.volmlib.util.math.RNG; import art.arcane.volmlib.util.matter.MatterCavern; import art.arcane.iris.util.parallel.BurstExecutor; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IRare.java b/core/src/main/java/art/arcane/iris/engine/object/IRare.java index 3c517cb5b..5502fc5e6 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IRare.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IRare.java @@ -21,7 +21,6 @@ package art.arcane.iris.engine.object; import art.arcane.volmlib.util.collection.KList; import art.arcane.iris.util.stream.ProceduralStream; import art.arcane.iris.util.stream.interpolation.Interpolated; - import java.util.List; public interface IRare { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisDimension.java b/core/src/main/java/art/arcane/iris/engine/object/IrisDimension.java index b6f5dcaaa..9c067c63d 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisDimension.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisDimension.java @@ -36,9 +36,9 @@ import art.arcane.iris.util.data.DataProvider; import art.arcane.volmlib.util.io.IO; import art.arcane.volmlib.util.json.JSONObject; import art.arcane.volmlib.util.mantle.flag.MantleFlag; -import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.Position2; import art.arcane.volmlib.util.math.RNG; -import art.arcane.iris.util.noise.CNG; +import art.arcane.iris.util.noise.CNG; import art.arcane.iris.util.plugin.VolmitSender; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisDirection.java b/core/src/main/java/art/arcane/iris/engine/object/IrisDirection.java index f685d175e..6ac9e7202 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisDirection.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisDirection.java @@ -24,7 +24,7 @@ import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.data.Cuboid.CuboidDirection; import art.arcane.volmlib.util.math.DOP; -import art.arcane.iris.util.math.VectorMath; +import art.arcane.volmlib.util.math.VectorMath; import org.bukkit.Axis; import org.bukkit.block.BlockFace; import org.bukkit.block.data.type.Jigsaw; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisElipsoid.java b/core/src/main/java/art/arcane/iris/engine/object/IrisElipsoid.java index 540f88ccc..d3ae1e130 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisElipsoid.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisElipsoid.java @@ -24,7 +24,7 @@ import art.arcane.iris.engine.mantle.MantleWriter; import art.arcane.iris.engine.object.annotations.*; import art.arcane.volmlib.util.math.RNG; import art.arcane.volmlib.util.matter.MatterCavern; -import art.arcane.iris.util.matter.slices.CavernMatter; +import art.arcane.volmlib.util.matter.slices.CavernMatter; import lombok.Data; @Snippet("carving-elipsoid") diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisEngineStreamType.java b/core/src/main/java/art/arcane/iris/engine/object/IrisEngineStreamType.java index cc6d3e128..deddd1b06 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisEngineStreamType.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisEngineStreamType.java @@ -21,7 +21,6 @@ package art.arcane.iris.engine.object; import art.arcane.iris.engine.framework.Engine; import art.arcane.iris.engine.object.annotations.Desc; import art.arcane.iris.util.stream.ProceduralStream; - import java.util.function.Function; @Desc("Represents a stream from the engine") diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisEntitySpawn.java b/core/src/main/java/art/arcane/iris/engine/object/IrisEntitySpawn.java index 84459a2d6..231324e14 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisEntitySpawn.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisEntitySpawn.java @@ -27,7 +27,7 @@ import art.arcane.iris.util.format.C; import art.arcane.volmlib.util.math.RNG; import art.arcane.volmlib.util.math.Vector3d; import art.arcane.volmlib.util.matter.MatterMarker; -import art.arcane.iris.util.matter.slices.MarkerMatter; +import art.arcane.volmlib.util.matter.slices.MarkerMatter; import art.arcane.iris.util.scheduling.J; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisLoot.java b/core/src/main/java/art/arcane/iris/engine/object/IrisLoot.java index 3223aad30..c98ed9cfc 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisLoot.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisLoot.java @@ -30,7 +30,7 @@ import art.arcane.iris.util.data.B; import art.arcane.iris.util.format.C; import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.math.RNG; -import art.arcane.iris.util.noise.CNG; +import art.arcane.iris.util.noise.CNG; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisObject.java b/core/src/main/java/art/arcane/iris/engine/object/IrisObject.java index a1c95e452..c8e8ee613 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisObject.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisObject.java @@ -35,6 +35,7 @@ import art.arcane.volmlib.util.format.Form; import art.arcane.iris.util.interpolation.IrisInterpolation; import art.arcane.volmlib.util.json.JSONObject; import art.arcane.volmlib.util.math.BlockPosition; +import art.arcane.volmlib.util.math.Position2; import art.arcane.volmlib.util.math.RNG; import art.arcane.iris.util.math.*; import art.arcane.volmlib.util.matter.MatterMarker; diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisPyramid.java b/core/src/main/java/art/arcane/iris/engine/object/IrisPyramid.java index 90ee49d55..f3904d8ce 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisPyramid.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisPyramid.java @@ -24,7 +24,7 @@ import art.arcane.iris.engine.mantle.MantleWriter; import art.arcane.iris.engine.object.annotations.*; import art.arcane.volmlib.util.math.RNG; import art.arcane.volmlib.util.matter.MatterCavern; -import art.arcane.iris.util.matter.slices.CavernMatter; +import art.arcane.volmlib.util.matter.slices.CavernMatter; import lombok.Data; @Snippet("carving-pyramid") diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisSphere.java b/core/src/main/java/art/arcane/iris/engine/object/IrisSphere.java index f6b3ed918..b917eb86f 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisSphere.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisSphere.java @@ -24,7 +24,7 @@ import art.arcane.iris.engine.mantle.MantleWriter; import art.arcane.iris.engine.object.annotations.*; import art.arcane.volmlib.util.math.RNG; import art.arcane.volmlib.util.matter.MatterCavern; -import art.arcane.iris.util.matter.slices.CavernMatter; +import art.arcane.volmlib.util.matter.slices.CavernMatter; import lombok.Data; @Snippet("carving-sphere") diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisStructurePopulator.java b/core/src/main/java/art/arcane/iris/engine/object/IrisStructurePopulator.java index 335973c83..7546aad94 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisStructurePopulator.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisStructurePopulator.java @@ -4,7 +4,7 @@ import art.arcane.iris.engine.framework.Engine; import art.arcane.iris.engine.framework.EngineAssignedComponent; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.documentation.ChunkCoordinates; -import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.Position2; import art.arcane.volmlib.util.math.RNG; import art.arcane.iris.util.noise.CNG; import org.jetbrains.annotations.Nullable; diff --git a/core/src/main/java/art/arcane/iris/engine/object/NoiseStyle.java b/core/src/main/java/art/arcane/iris/engine/object/NoiseStyle.java index 595bf45b2..b64c60fd1 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/NoiseStyle.java +++ b/core/src/main/java/art/arcane/iris/engine/object/NoiseStyle.java @@ -24,7 +24,6 @@ import art.arcane.iris.util.noise.CNG; import art.arcane.iris.util.noise.CNGFactory; import art.arcane.iris.util.noise.NoiseType; import art.arcane.iris.util.stream.ProceduralStream; - @Desc("Styles of noise") public enum NoiseStyle { @Desc("White Noise is like static. Useful for block scattering but not terrain.") diff --git a/core/src/main/java/art/arcane/iris/engine/object/matter/IrisMatterObject.java b/core/src/main/java/art/arcane/iris/engine/object/matter/IrisMatterObject.java index 274039b0e..5d6152453 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/matter/IrisMatterObject.java +++ b/core/src/main/java/art/arcane/iris/engine/object/matter/IrisMatterObject.java @@ -2,9 +2,10 @@ package art.arcane.iris.engine.object.matter; import art.arcane.iris.core.loader.IrisRegistrant; import art.arcane.iris.engine.object.IrisObject; +import art.arcane.iris.util.matter.IrisMatterSupport; import art.arcane.volmlib.util.json.JSONObject; -import art.arcane.iris.util.matter.IrisMatter; -import art.arcane.iris.util.matter.Matter; +import art.arcane.volmlib.util.matter.IrisMatter; +import art.arcane.volmlib.util.matter.Matter; import art.arcane.iris.util.plugin.VolmitSender; import lombok.Data; import lombok.EqualsAndHashCode; @@ -22,21 +23,28 @@ public class IrisMatterObject extends IrisRegistrant { } public IrisMatterObject(int w, int h, int d) { - this(new IrisMatter(w, h, d)); + this(createMatter(w, h, d)); } public IrisMatterObject(Matter matter) { + IrisMatterSupport.ensureRegistered(); this.matter = matter; } public static IrisMatterObject from(IrisObject object) { - return new IrisMatterObject(Matter.from(object)); + return new IrisMatterObject(IrisMatterSupport.from(object)); } public static IrisMatterObject from(File j) throws IOException, ClassNotFoundException { + IrisMatterSupport.ensureRegistered(); return new IrisMatterObject(Matter.read(j)); } + private static Matter createMatter(int w, int h, int d) { + IrisMatterSupport.ensureRegistered(); + return new IrisMatter(w, h, d); + } + @Override public String getFolderName() { return "matter"; diff --git a/core/src/main/java/art/arcane/iris/engine/object/matter/IrisMatterPlacement.java b/core/src/main/java/art/arcane/iris/engine/object/matter/IrisMatterPlacement.java index 7fde87095..e275e2691 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/matter/IrisMatterPlacement.java +++ b/core/src/main/java/art/arcane/iris/engine/object/matter/IrisMatterPlacement.java @@ -24,9 +24,10 @@ import art.arcane.iris.engine.object.IRare; import art.arcane.iris.engine.object.IrisStyledRange; import art.arcane.iris.engine.object.annotations.*; import art.arcane.volmlib.util.collection.KList; -import art.arcane.iris.util.mantle.Mantle; +import art.arcane.volmlib.util.mantle.runtime.Mantle; +import art.arcane.volmlib.util.matter.Matter; import art.arcane.volmlib.util.math.RNG; -import art.arcane.iris.util.matter.MatterSlice; +import art.arcane.volmlib.util.matter.MatterSlice; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; diff --git a/core/src/main/java/art/arcane/iris/engine/platform/BukkitChunkGenerator.java b/core/src/main/java/art/arcane/iris/engine/platform/BukkitChunkGenerator.java index 6dcbfe673..4d078ffb6 100644 --- a/core/src/main/java/art/arcane/iris/engine/platform/BukkitChunkGenerator.java +++ b/core/src/main/java/art/arcane/iris/engine/platform/BukkitChunkGenerator.java @@ -37,7 +37,7 @@ import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.data.IrisBiomeStorage; import art.arcane.iris.util.hunk.view.BiomeGridHunkHolder; import art.arcane.iris.util.hunk.view.ChunkDataHunkHolder; -import art.arcane.iris.util.io.ReactiveFolder; +import art.arcane.volmlib.util.io.ReactiveFolder; import art.arcane.volmlib.util.scheduling.ChronoLatch; import art.arcane.iris.util.scheduling.J; import art.arcane.volmlib.util.scheduling.Looper; @@ -103,7 +103,13 @@ public class BukkitChunkGenerator extends ChunkGenerator implements PlatformChun this.studio = studio; this.dataLocation = dataLocation; this.dimensionKey = dimensionKey; - this.folder = new ReactiveFolder(dataLocation, (_a, _b, _c) -> hotload()); + this.folder = new ReactiveFolder( + dataLocation, + (_a, _b, _c) -> hotload(), + new KList<>(".iob", ".json", ".kts"), + new KList<>(".iris"), + new KList<>(".gradle.kts") + ); Bukkit.getServer().getPluginManager().registerEvents(this, Iris.instance); } diff --git a/core/src/main/java/art/arcane/iris/util/common/cache/WorldCache2D.java b/core/src/main/java/art/arcane/iris/util/common/cache/WorldCache2D.java deleted file mode 100644 index 01ae14af9..000000000 --- a/core/src/main/java/art/arcane/iris/util/common/cache/WorldCache2D.java +++ /dev/null @@ -1,34 +0,0 @@ -package art.arcane.iris.util.cache; - -import art.arcane.volmlib.util.cache.ChunkCache2D; - -import com.googlecode.concurrentlinkedhashmap.ConcurrentLinkedHashMap; -import art.arcane.iris.engine.data.cache.Cache; -import art.arcane.volmlib.util.function.Function2; - -public class WorldCache2D { - private final ConcurrentLinkedHashMap> chunks; - private final Function2 resolver; - - public WorldCache2D(Function2 resolver, int size) { - this.resolver = resolver; - chunks = new ConcurrentLinkedHashMap.Builder>() - .initialCapacity(size) - .maximumWeightedCapacity(size) - .concurrencyLevel(Math.max(32, Runtime.getRuntime().availableProcessors() * 4)) - .build(); - } - - public T get(int x, int z) { - ChunkCache2D chunk = chunks.computeIfAbsent(Cache.key(x >> 4, z >> 4), $ -> new ChunkCache2D<>("iris")); - return chunk.get(x, z, resolver); - } - - public long getSize() { - return chunks.size() * 256L; - } - - public long getMaxSize() { - return chunks.capacity() * 256L; - } -} diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/DecreeContextHandler.java b/core/src/main/java/art/arcane/iris/util/common/decree/DecreeContextHandler.java deleted file mode 100644 index 0b56bf0a2..000000000 --- a/core/src/main/java/art/arcane/iris/util/common/decree/DecreeContextHandler.java +++ /dev/null @@ -1,23 +0,0 @@ -package art.arcane.iris.util.decree; - -import art.arcane.volmlib.util.director.context.DirectorContextHandlers; -import art.arcane.volmlib.util.director.context.DirectorContextHandlerType; -import art.arcane.iris.Iris; -import art.arcane.iris.util.plugin.VolmitSender; - -import java.util.Map; - -public interface DecreeContextHandler extends DirectorContextHandlerType { - Map, DecreeContextHandler> contextHandlers = buildContextHandlers(); - - static Map, DecreeContextHandler> buildContextHandlers() { - return DirectorContextHandlers.buildOrEmpty( - Iris.initialize("art.arcane.iris.util.decree.context"), - DecreeContextHandler.class, - h -> ((DecreeContextHandler) h).getType(), - e -> { - Iris.reportError(e); - e.printStackTrace(); - }); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/DecreeParameterHandler.java b/core/src/main/java/art/arcane/iris/util/common/decree/DecreeParameterHandler.java deleted file mode 100644 index 833216f19..000000000 --- a/core/src/main/java/art/arcane/iris/util/common/decree/DecreeParameterHandler.java +++ /dev/null @@ -1,5 +0,0 @@ -package art.arcane.iris.util.decree; - -public interface DirectorParameterHandler - extends DecreeExecutor, art.arcane.volmlib.util.director.DirectorParameterHandler { -} diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/DecreeContext.java b/core/src/main/java/art/arcane/iris/util/common/director/DirectorContext.java similarity index 86% rename from core/src/main/java/art/arcane/iris/util/common/decree/DecreeContext.java rename to core/src/main/java/art/arcane/iris/util/common/director/DirectorContext.java index f5653ccf2..a9b86e4f3 100644 --- a/core/src/main/java/art/arcane/iris/util/common/decree/DecreeContext.java +++ b/core/src/main/java/art/arcane/iris/util/common/director/DirectorContext.java @@ -1,9 +1,9 @@ -package art.arcane.iris.util.decree; +package art.arcane.iris.util.director; import art.arcane.volmlib.util.director.context.DirectorContextBase; import art.arcane.iris.util.plugin.VolmitSender; -public class DecreeContext { +public class DirectorContext { private static final DirectorContextBase context = new DirectorContextBase<>(); public static VolmitSender get() { diff --git a/core/src/main/java/art/arcane/iris/util/common/director/DirectorContextHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/DirectorContextHandler.java new file mode 100644 index 000000000..5a58a1e6b --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/director/DirectorContextHandler.java @@ -0,0 +1,23 @@ +package art.arcane.iris.util.director; + +import art.arcane.volmlib.util.director.context.DirectorContextHandlers; +import art.arcane.volmlib.util.director.context.DirectorContextHandlerType; +import art.arcane.iris.Iris; +import art.arcane.iris.util.plugin.VolmitSender; + +import java.util.Map; + +public interface DirectorContextHandler extends DirectorContextHandlerType { + Map, DirectorContextHandler> contextHandlers = buildContextHandlers(); + + static Map, DirectorContextHandler> buildContextHandlers() { + return DirectorContextHandlers.buildOrEmpty( + Iris.initialize("art.arcane.iris.util.director.context"), + DirectorContextHandler.class, + h -> ((DirectorContextHandler) h).getType(), + e -> { + Iris.reportError(e); + e.printStackTrace(); + }); + } +} diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/DecreeExecutor.java b/core/src/main/java/art/arcane/iris/util/common/director/DirectorExecutor.java similarity index 93% rename from core/src/main/java/art/arcane/iris/util/common/decree/DecreeExecutor.java rename to core/src/main/java/art/arcane/iris/util/common/director/DirectorExecutor.java index 17269dfc7..e53c565b7 100644 --- a/core/src/main/java/art/arcane/iris/util/common/decree/DecreeExecutor.java +++ b/core/src/main/java/art/arcane/iris/util/common/director/DirectorExecutor.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.decree; +package art.arcane.iris.util.director; import art.arcane.volmlib.util.director.DirectorExecutorBase; import art.arcane.iris.core.loader.IrisData; @@ -26,9 +26,9 @@ import art.arcane.iris.engine.platform.PlatformChunkGenerator; import art.arcane.iris.util.plugin.VolmitSender; import org.bukkit.entity.Player; -public interface DecreeExecutor extends DirectorExecutorBase { +public interface DirectorExecutor extends DirectorExecutorBase { default VolmitSender sender() { - return DecreeContext.get(); + return DirectorContext.get(); } default Player player() { diff --git a/core/src/main/java/art/arcane/iris/util/common/director/DirectorParameterHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/DirectorParameterHandler.java new file mode 100644 index 000000000..9a9888aa5 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/common/director/DirectorParameterHandler.java @@ -0,0 +1,5 @@ +package art.arcane.iris.util.director; + +public interface DirectorParameterHandler + extends DirectorExecutor, art.arcane.volmlib.util.director.DirectorParameterHandler { +} diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/DecreeSystem.java b/core/src/main/java/art/arcane/iris/util/common/director/DirectorSystem.java similarity index 67% rename from core/src/main/java/art/arcane/iris/util/common/decree/DecreeSystem.java rename to core/src/main/java/art/arcane/iris/util/common/director/DirectorSystem.java index 4b499433a..6810f78a1 100644 --- a/core/src/main/java/art/arcane/iris/util/common/decree/DecreeSystem.java +++ b/core/src/main/java/art/arcane/iris/util/common/director/DirectorSystem.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.decree; +package art.arcane.iris.util.director; import art.arcane.volmlib.util.director.DirectorSystemSupport; import art.arcane.iris.Iris; import art.arcane.volmlib.util.collection.KList; -public final class DecreeSystem { - public static final KList> handlers = Iris.initialize("art.arcane.iris.util.decree.handlers", null).convert((i) -> (DirectorParameterHandler) i); +public final class DirectorSystem { + public static final KList> handlers = Iris.initialize("art.arcane.iris.util.director.handlers", null).convert((i) -> (art.arcane.volmlib.util.director.DirectorParameterHandler) i); - private DecreeSystem() { + private DirectorSystem() { } /** @@ -33,8 +33,8 @@ public final class DecreeSystem { * @param type The type to handle * @return The corresponding {@link DirectorParameterHandler}, or null */ - public static DirectorParameterHandler getHandler(Class type) { - DirectorParameterHandler handler = DirectorSystemSupport.getHandler(handlers, type, (h, t) -> h.supports(t)); + public static art.arcane.volmlib.util.director.DirectorParameterHandler getHandler(Class type) { + art.arcane.volmlib.util.director.DirectorParameterHandler handler = DirectorSystemSupport.getHandler(handlers, type, (h, t) -> h.supports(t)); if (handler != null) { return handler; } diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/context/BiomeContextHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/context/BiomeContextHandler.java similarity index 88% rename from core/src/main/java/art/arcane/iris/util/common/decree/context/BiomeContextHandler.java rename to core/src/main/java/art/arcane/iris/util/common/director/context/BiomeContextHandler.java index 26c460fa3..dc29c4c49 100644 --- a/core/src/main/java/art/arcane/iris/util/common/decree/context/BiomeContextHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/director/context/BiomeContextHandler.java @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.decree.context; +package art.arcane.iris.util.director.context; import art.arcane.iris.core.tools.IrisToolbelt; import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.util.decree.DecreeContextHandler; +import art.arcane.iris.util.director.DirectorContextHandler; import art.arcane.iris.util.plugin.VolmitSender; -public class BiomeContextHandler implements DecreeContextHandler { +public class BiomeContextHandler implements DirectorContextHandler { public Class getType() { return IrisBiome.class; } diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/context/DimensionContextHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/context/DimensionContextHandler.java similarity index 87% rename from core/src/main/java/art/arcane/iris/util/common/decree/context/DimensionContextHandler.java rename to core/src/main/java/art/arcane/iris/util/common/director/context/DimensionContextHandler.java index f90d11951..cc3485837 100644 --- a/core/src/main/java/art/arcane/iris/util/common/decree/context/DimensionContextHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/director/context/DimensionContextHandler.java @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.decree.context; +package art.arcane.iris.util.director.context; import art.arcane.iris.core.tools.IrisToolbelt; import art.arcane.iris.engine.object.IrisDimension; -import art.arcane.iris.util.decree.DecreeContextHandler; +import art.arcane.iris.util.director.DirectorContextHandler; import art.arcane.iris.util.plugin.VolmitSender; -public class DimensionContextHandler implements DecreeContextHandler { +public class DimensionContextHandler implements DirectorContextHandler { public Class getType() { return IrisDimension.class; } diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/context/GeneratorContextHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/context/GeneratorContextHandler.java similarity index 89% rename from core/src/main/java/art/arcane/iris/util/common/decree/context/GeneratorContextHandler.java rename to core/src/main/java/art/arcane/iris/util/common/director/context/GeneratorContextHandler.java index 440409e04..c53fe0bb4 100644 --- a/core/src/main/java/art/arcane/iris/util/common/decree/context/GeneratorContextHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/director/context/GeneratorContextHandler.java @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.decree.context; +package art.arcane.iris.util.director.context; import art.arcane.iris.core.tools.IrisToolbelt; import art.arcane.iris.engine.framework.Engine; import art.arcane.iris.engine.object.IrisGenerator; -import art.arcane.iris.util.decree.DecreeContextHandler; +import art.arcane.iris.util.director.DirectorContextHandler; import art.arcane.iris.util.plugin.VolmitSender; -public class GeneratorContextHandler implements DecreeContextHandler { +public class GeneratorContextHandler implements DirectorContextHandler { @Override public Class getType() { return IrisGenerator.class; diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/context/RegionContextHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/context/RegionContextHandler.java similarity index 88% rename from core/src/main/java/art/arcane/iris/util/common/decree/context/RegionContextHandler.java rename to core/src/main/java/art/arcane/iris/util/common/director/context/RegionContextHandler.java index ddef39345..50cc52150 100644 --- a/core/src/main/java/art/arcane/iris/util/common/decree/context/RegionContextHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/director/context/RegionContextHandler.java @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.decree.context; +package art.arcane.iris.util.director.context; import art.arcane.iris.core.tools.IrisToolbelt; import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.util.decree.DecreeContextHandler; +import art.arcane.iris.util.director.DirectorContextHandler; import art.arcane.iris.util.plugin.VolmitSender; -public class RegionContextHandler implements DecreeContextHandler { +public class RegionContextHandler implements DirectorContextHandler { public Class getType() { return IrisRegion.class; } diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/context/VectorContextHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/context/VectorContextHandler.java similarity index 83% rename from core/src/main/java/art/arcane/iris/util/common/decree/context/VectorContextHandler.java rename to core/src/main/java/art/arcane/iris/util/common/director/context/VectorContextHandler.java index 56859a452..08c8bee06 100644 --- a/core/src/main/java/art/arcane/iris/util/common/decree/context/VectorContextHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/director/context/VectorContextHandler.java @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.decree.context; +package art.arcane.iris.util.director.context; -import art.arcane.iris.util.decree.DecreeContextHandler; +import art.arcane.iris.util.director.DirectorContextHandler; import art.arcane.iris.util.plugin.VolmitSender; import org.bukkit.util.Vector; -public class VectorContextHandler implements DecreeContextHandler { +public class VectorContextHandler implements DirectorContextHandler { public Class getType() { return Vector.class; } diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/context/WorldContextHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/context/WorldContextHandler.java similarity index 72% rename from core/src/main/java/art/arcane/iris/util/common/decree/context/WorldContextHandler.java rename to core/src/main/java/art/arcane/iris/util/common/director/context/WorldContextHandler.java index b2cfc9c3b..f0f3a66c2 100644 --- a/core/src/main/java/art/arcane/iris/util/common/decree/context/WorldContextHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/director/context/WorldContextHandler.java @@ -1,11 +1,11 @@ -package art.arcane.iris.util.decree.context; +package art.arcane.iris.util.director.context; import art.arcane.volmlib.util.director.context.WorldContextHandlerBase; -import art.arcane.iris.util.decree.DecreeContextHandler; +import art.arcane.iris.util.director.DirectorContextHandler; import art.arcane.iris.util.plugin.VolmitSender; import org.bukkit.World; -public class WorldContextHandler extends WorldContextHandlerBase implements DecreeContextHandler { +public class WorldContextHandler extends WorldContextHandlerBase implements DirectorContextHandler { @Override protected boolean isPlayer(VolmitSender sender) { return sender.isPlayer(); diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/BiomeHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/handlers/BiomeHandler.java similarity index 89% rename from core/src/main/java/art/arcane/iris/util/common/decree/handlers/BiomeHandler.java rename to core/src/main/java/art/arcane/iris/util/common/director/handlers/BiomeHandler.java index ec277dda1..e61e21587 100644 --- a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/BiomeHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/director/handlers/BiomeHandler.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.decree.handlers; +package art.arcane.iris.util.director.handlers; import art.arcane.iris.engine.object.IrisBiome; -import art.arcane.iris.util.decree.specialhandlers.RegistrantHandler; +import art.arcane.iris.util.director.specialhandlers.RegistrantHandler; public class BiomeHandler extends RegistrantHandler { public BiomeHandler() { diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/BlockVectorHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/handlers/BlockVectorHandler.java similarity index 56% rename from core/src/main/java/art/arcane/iris/util/common/decree/handlers/BlockVectorHandler.java rename to core/src/main/java/art/arcane/iris/util/common/director/handlers/BlockVectorHandler.java index cd4c8c78a..b0b00ca8a 100644 --- a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/BlockVectorHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/director/handlers/BlockVectorHandler.java @@ -1,8 +1,8 @@ -package art.arcane.iris.util.decree.handlers; +package art.arcane.iris.util.director.handlers; -import art.arcane.iris.util.decree.DecreeContext; -import art.arcane.iris.util.decree.DirectorParameterHandler; -import art.arcane.iris.util.decree.DecreeSystem; +import art.arcane.iris.util.director.DirectorContext; +import art.arcane.volmlib.util.director.DirectorParameterHandler; +import art.arcane.iris.util.director.DirectorSystem; import art.arcane.volmlib.util.director.handlers.base.BlockVectorHandlerBase; import art.arcane.volmlib.util.format.Form; import org.bukkit.FluidCollisionMode; @@ -14,22 +14,22 @@ import java.util.List; public class BlockVectorHandler extends BlockVectorHandlerBase implements DirectorParameterHandler { @Override protected boolean isSenderPlayer() { - return DecreeContext.get().isPlayer(); + return DirectorContext.get().isPlayer(); } @Override protected BlockVector getSenderBlockVector() { - return DecreeContext.get().player().getLocation().toVector().toBlockVector(); + return DirectorContext.get().player().getLocation().toVector().toBlockVector(); } @Override protected BlockVector getLookBlockVector() { - return DecreeContext.get().player().getTargetBlockExact(256, FluidCollisionMode.NEVER).getLocation().toVector().toBlockVector(); + return DirectorContext.get().player().getTargetBlockExact(256, FluidCollisionMode.NEVER).getLocation().toVector().toBlockVector(); } @Override protected List playerPossibilities(String query) { - return DecreeSystem.getHandler(Player.class).getPossibilities(query); + return DirectorSystem.getHandler(Player.class).getPossibilities(query); } @Override diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/BooleanHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/handlers/BooleanHandler.java similarity index 61% rename from core/src/main/java/art/arcane/iris/util/common/decree/handlers/BooleanHandler.java rename to core/src/main/java/art/arcane/iris/util/common/director/handlers/BooleanHandler.java index ef6631a69..702251455 100644 --- a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/BooleanHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/director/handlers/BooleanHandler.java @@ -1,7 +1,7 @@ -package art.arcane.iris.util.decree.handlers; +package art.arcane.iris.util.director.handlers; import art.arcane.volmlib.util.director.handlers.base.BooleanHandlerBase; -import art.arcane.iris.util.decree.DirectorParameterHandler; +import art.arcane.volmlib.util.director.DirectorParameterHandler; public class BooleanHandler extends BooleanHandlerBase implements DirectorParameterHandler { } diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/ByteHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/handlers/ByteHandler.java similarity index 59% rename from core/src/main/java/art/arcane/iris/util/common/decree/handlers/ByteHandler.java rename to core/src/main/java/art/arcane/iris/util/common/director/handlers/ByteHandler.java index c61ba3ec7..45b85fa73 100644 --- a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/ByteHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/director/handlers/ByteHandler.java @@ -1,7 +1,7 @@ -package art.arcane.iris.util.decree.handlers; +package art.arcane.iris.util.director.handlers; import art.arcane.volmlib.util.director.handlers.base.ByteHandlerBase; -import art.arcane.iris.util.decree.DirectorParameterHandler; +import art.arcane.volmlib.util.director.DirectorParameterHandler; public class ByteHandler extends ByteHandlerBase implements DirectorParameterHandler { } diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/CaveHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/handlers/CaveHandler.java similarity index 89% rename from core/src/main/java/art/arcane/iris/util/common/decree/handlers/CaveHandler.java rename to core/src/main/java/art/arcane/iris/util/common/director/handlers/CaveHandler.java index ae217fa89..9338d3350 100644 --- a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/CaveHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/director/handlers/CaveHandler.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.decree.handlers; +package art.arcane.iris.util.director.handlers; import art.arcane.iris.engine.object.IrisCave; -import art.arcane.iris.util.decree.specialhandlers.RegistrantHandler; +import art.arcane.iris.util.director.specialhandlers.RegistrantHandler; public class CaveHandler extends RegistrantHandler { public CaveHandler() { diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/DataVersionHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/handlers/DataVersionHandler.java similarity index 90% rename from core/src/main/java/art/arcane/iris/util/common/decree/handlers/DataVersionHandler.java rename to core/src/main/java/art/arcane/iris/util/common/director/handlers/DataVersionHandler.java index 909a2d3bd..6d6e013d4 100644 --- a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/DataVersionHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/director/handlers/DataVersionHandler.java @@ -1,8 +1,8 @@ -package art.arcane.iris.util.decree.handlers; +package art.arcane.iris.util.director.handlers; import art.arcane.iris.core.nms.datapack.DataVersion; import art.arcane.volmlib.util.collection.KList; -import art.arcane.iris.util.decree.DirectorParameterHandler; +import art.arcane.volmlib.util.director.DirectorParameterHandler; import art.arcane.volmlib.util.director.exceptions.DirectorParsingException; public class DataVersionHandler implements DirectorParameterHandler { diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/DimensionHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/handlers/DimensionHandler.java similarity index 96% rename from core/src/main/java/art/arcane/iris/util/common/decree/handlers/DimensionHandler.java rename to core/src/main/java/art/arcane/iris/util/common/director/handlers/DimensionHandler.java index efd307782..023a1afed 100644 --- a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/DimensionHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/director/handlers/DimensionHandler.java @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.decree.handlers; +package art.arcane.iris.util.director.handlers; import art.arcane.iris.core.IrisSettings; import art.arcane.iris.core.tools.IrisToolbelt; import art.arcane.iris.engine.object.IrisDimension; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.director.exceptions.DirectorParsingException; -import art.arcane.iris.util.decree.specialhandlers.RegistrantHandler; +import art.arcane.iris.util.director.specialhandlers.RegistrantHandler; import java.util.Locale; diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/DoubleHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/handlers/DoubleHandler.java similarity index 60% rename from core/src/main/java/art/arcane/iris/util/common/decree/handlers/DoubleHandler.java rename to core/src/main/java/art/arcane/iris/util/common/director/handlers/DoubleHandler.java index 6f1eff983..a0bfe7a59 100644 --- a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/DoubleHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/director/handlers/DoubleHandler.java @@ -1,7 +1,7 @@ -package art.arcane.iris.util.decree.handlers; +package art.arcane.iris.util.director.handlers; import art.arcane.volmlib.util.director.handlers.base.DoubleHandlerBase; -import art.arcane.iris.util.decree.DirectorParameterHandler; +import art.arcane.volmlib.util.director.DirectorParameterHandler; public class DoubleHandler extends DoubleHandlerBase implements DirectorParameterHandler { } diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/EntityHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/handlers/EntityHandler.java similarity index 89% rename from core/src/main/java/art/arcane/iris/util/common/decree/handlers/EntityHandler.java rename to core/src/main/java/art/arcane/iris/util/common/director/handlers/EntityHandler.java index 7b4e1b88f..2f0ce7436 100644 --- a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/EntityHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/director/handlers/EntityHandler.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.decree.handlers; +package art.arcane.iris.util.director.handlers; import art.arcane.iris.engine.object.IrisEntity; -import art.arcane.iris.util.decree.specialhandlers.RegistrantHandler; +import art.arcane.iris.util.director.specialhandlers.RegistrantHandler; public class EntityHandler extends RegistrantHandler { diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/FloatHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/handlers/FloatHandler.java similarity index 60% rename from core/src/main/java/art/arcane/iris/util/common/decree/handlers/FloatHandler.java rename to core/src/main/java/art/arcane/iris/util/common/director/handlers/FloatHandler.java index 87e214308..2642efd0b 100644 --- a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/FloatHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/director/handlers/FloatHandler.java @@ -1,7 +1,7 @@ -package art.arcane.iris.util.decree.handlers; +package art.arcane.iris.util.director.handlers; import art.arcane.volmlib.util.director.handlers.base.FloatHandlerBase; -import art.arcane.iris.util.decree.DirectorParameterHandler; +import art.arcane.volmlib.util.director.DirectorParameterHandler; public class FloatHandler extends FloatHandlerBase implements DirectorParameterHandler { } diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/GeneratorHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/handlers/GeneratorHandler.java similarity index 89% rename from core/src/main/java/art/arcane/iris/util/common/decree/handlers/GeneratorHandler.java rename to core/src/main/java/art/arcane/iris/util/common/director/handlers/GeneratorHandler.java index 19fa0b8a8..e02d3b885 100644 --- a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/GeneratorHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/director/handlers/GeneratorHandler.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.decree.handlers; +package art.arcane.iris.util.director.handlers; import art.arcane.iris.engine.object.IrisGenerator; -import art.arcane.iris.util.decree.specialhandlers.RegistrantHandler; +import art.arcane.iris.util.director.specialhandlers.RegistrantHandler; public class GeneratorHandler extends RegistrantHandler { public GeneratorHandler() { diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/IntegerHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/handlers/IntegerHandler.java similarity index 61% rename from core/src/main/java/art/arcane/iris/util/common/decree/handlers/IntegerHandler.java rename to core/src/main/java/art/arcane/iris/util/common/director/handlers/IntegerHandler.java index 2fa88b88a..9bda2cddb 100644 --- a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/IntegerHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/director/handlers/IntegerHandler.java @@ -1,7 +1,7 @@ -package art.arcane.iris.util.decree.handlers; +package art.arcane.iris.util.director.handlers; import art.arcane.volmlib.util.director.handlers.base.IntegerHandlerBase; -import art.arcane.iris.util.decree.DirectorParameterHandler; +import art.arcane.volmlib.util.director.DirectorParameterHandler; public class IntegerHandler extends IntegerHandlerBase implements DirectorParameterHandler { } diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/JigsawPieceHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/handlers/JigsawPieceHandler.java similarity index 89% rename from core/src/main/java/art/arcane/iris/util/common/decree/handlers/JigsawPieceHandler.java rename to core/src/main/java/art/arcane/iris/util/common/director/handlers/JigsawPieceHandler.java index e49e3d772..b342d1c29 100644 --- a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/JigsawPieceHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/director/handlers/JigsawPieceHandler.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.decree.handlers; +package art.arcane.iris.util.director.handlers; import art.arcane.iris.engine.object.IrisJigsawPiece; -import art.arcane.iris.util.decree.specialhandlers.RegistrantHandler; +import art.arcane.iris.util.director.specialhandlers.RegistrantHandler; public class JigsawPieceHandler extends RegistrantHandler { public JigsawPieceHandler() { diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/JigsawPoolHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/handlers/JigsawPoolHandler.java similarity index 89% rename from core/src/main/java/art/arcane/iris/util/common/decree/handlers/JigsawPoolHandler.java rename to core/src/main/java/art/arcane/iris/util/common/director/handlers/JigsawPoolHandler.java index 46181e1c6..e1ed7cd65 100644 --- a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/JigsawPoolHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/director/handlers/JigsawPoolHandler.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.decree.handlers; +package art.arcane.iris.util.director.handlers; import art.arcane.iris.engine.object.IrisJigsawPool; -import art.arcane.iris.util.decree.specialhandlers.RegistrantHandler; +import art.arcane.iris.util.director.specialhandlers.RegistrantHandler; public class JigsawPoolHandler extends RegistrantHandler { public JigsawPoolHandler() { diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/JigsawStructureHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/handlers/JigsawStructureHandler.java similarity index 90% rename from core/src/main/java/art/arcane/iris/util/common/decree/handlers/JigsawStructureHandler.java rename to core/src/main/java/art/arcane/iris/util/common/director/handlers/JigsawStructureHandler.java index 8e1b8bf0f..02e75e30f 100644 --- a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/JigsawStructureHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/director/handlers/JigsawStructureHandler.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.decree.handlers; +package art.arcane.iris.util.director.handlers; import art.arcane.iris.engine.object.IrisJigsawStructure; -import art.arcane.iris.util.decree.specialhandlers.RegistrantHandler; +import art.arcane.iris.util.director.specialhandlers.RegistrantHandler; public class JigsawStructureHandler extends RegistrantHandler { public JigsawStructureHandler() { diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/LongHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/handlers/LongHandler.java similarity index 59% rename from core/src/main/java/art/arcane/iris/util/common/decree/handlers/LongHandler.java rename to core/src/main/java/art/arcane/iris/util/common/director/handlers/LongHandler.java index cf175ce23..e09d7992e 100644 --- a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/LongHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/director/handlers/LongHandler.java @@ -1,7 +1,7 @@ -package art.arcane.iris.util.decree.handlers; +package art.arcane.iris.util.director.handlers; import art.arcane.volmlib.util.director.handlers.base.LongHandlerBase; -import art.arcane.iris.util.decree.DirectorParameterHandler; +import art.arcane.volmlib.util.director.DirectorParameterHandler; public class LongHandler extends LongHandlerBase implements DirectorParameterHandler { } diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/PlayerHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/handlers/PlayerHandler.java similarity index 89% rename from core/src/main/java/art/arcane/iris/util/common/decree/handlers/PlayerHandler.java rename to core/src/main/java/art/arcane/iris/util/common/director/handlers/PlayerHandler.java index 7bded1c1f..39523032e 100644 --- a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/PlayerHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/director/handlers/PlayerHandler.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.decree.handlers; +package art.arcane.iris.util.director.handlers; import art.arcane.volmlib.util.director.handlers.base.BukkitPlayerHandlerBase; -import art.arcane.iris.util.decree.DirectorParameterHandler; +import art.arcane.volmlib.util.director.DirectorParameterHandler; import org.bukkit.entity.Player; public class PlayerHandler extends BukkitPlayerHandlerBase implements DirectorParameterHandler { diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/RegionHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/handlers/RegionHandler.java similarity index 89% rename from core/src/main/java/art/arcane/iris/util/common/decree/handlers/RegionHandler.java rename to core/src/main/java/art/arcane/iris/util/common/director/handlers/RegionHandler.java index 0bb3b39d1..d7e7671e4 100644 --- a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/RegionHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/director/handlers/RegionHandler.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.decree.handlers; +package art.arcane.iris.util.director.handlers; import art.arcane.iris.engine.object.IrisRegion; -import art.arcane.iris.util.decree.specialhandlers.RegistrantHandler; +import art.arcane.iris.util.director.specialhandlers.RegistrantHandler; public class RegionHandler extends RegistrantHandler { public RegionHandler() { diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/ScriptHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/handlers/ScriptHandler.java similarity index 89% rename from core/src/main/java/art/arcane/iris/util/common/decree/handlers/ScriptHandler.java rename to core/src/main/java/art/arcane/iris/util/common/director/handlers/ScriptHandler.java index ac9d1d9da..d26b56322 100644 --- a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/ScriptHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/director/handlers/ScriptHandler.java @@ -16,10 +16,10 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.decree.handlers; +package art.arcane.iris.util.director.handlers; import art.arcane.iris.engine.object.IrisScript; -import art.arcane.iris.util.decree.specialhandlers.RegistrantHandler; +import art.arcane.iris.util.director.specialhandlers.RegistrantHandler; public class ScriptHandler extends RegistrantHandler { public ScriptHandler() { diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/ShortHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/handlers/ShortHandler.java similarity index 60% rename from core/src/main/java/art/arcane/iris/util/common/decree/handlers/ShortHandler.java rename to core/src/main/java/art/arcane/iris/util/common/director/handlers/ShortHandler.java index 517529882..a93cf3bb1 100644 --- a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/ShortHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/director/handlers/ShortHandler.java @@ -1,7 +1,7 @@ -package art.arcane.iris.util.decree.handlers; +package art.arcane.iris.util.director.handlers; import art.arcane.volmlib.util.director.handlers.base.ShortHandlerBase; -import art.arcane.iris.util.decree.DirectorParameterHandler; +import art.arcane.volmlib.util.director.DirectorParameterHandler; public class ShortHandler extends ShortHandlerBase implements DirectorParameterHandler { } diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/StringHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/handlers/StringHandler.java similarity index 60% rename from core/src/main/java/art/arcane/iris/util/common/decree/handlers/StringHandler.java rename to core/src/main/java/art/arcane/iris/util/common/director/handlers/StringHandler.java index 5564c8728..6b4b553c2 100644 --- a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/StringHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/director/handlers/StringHandler.java @@ -1,7 +1,7 @@ -package art.arcane.iris.util.decree.handlers; +package art.arcane.iris.util.director.handlers; import art.arcane.volmlib.util.director.handlers.StringHandlerBase; -import art.arcane.iris.util.decree.DirectorParameterHandler; +import art.arcane.volmlib.util.director.DirectorParameterHandler; public class StringHandler extends StringHandlerBase implements DirectorParameterHandler { } diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/VectorHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/handlers/VectorHandler.java similarity index 56% rename from core/src/main/java/art/arcane/iris/util/common/decree/handlers/VectorHandler.java rename to core/src/main/java/art/arcane/iris/util/common/director/handlers/VectorHandler.java index 906e5910f..b319b6cec 100644 --- a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/VectorHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/director/handlers/VectorHandler.java @@ -1,8 +1,8 @@ -package art.arcane.iris.util.decree.handlers; +package art.arcane.iris.util.director.handlers; -import art.arcane.iris.util.decree.DecreeContext; -import art.arcane.iris.util.decree.DirectorParameterHandler; -import art.arcane.iris.util.decree.DecreeSystem; +import art.arcane.iris.util.director.DirectorContext; +import art.arcane.volmlib.util.director.DirectorParameterHandler; +import art.arcane.iris.util.director.DirectorSystem; import art.arcane.volmlib.util.director.handlers.base.VectorHandlerBase; import art.arcane.volmlib.util.format.Form; import org.bukkit.FluidCollisionMode; @@ -14,22 +14,22 @@ import java.util.List; public class VectorHandler extends VectorHandlerBase implements DirectorParameterHandler { @Override protected boolean isSenderPlayer() { - return DecreeContext.get().isPlayer(); + return DirectorContext.get().isPlayer(); } @Override protected Vector getSenderVector() { - return DecreeContext.get().player().getLocation().toVector(); + return DirectorContext.get().player().getLocation().toVector(); } @Override protected Vector getLookVector() { - return DecreeContext.get().player().getTargetBlockExact(256, FluidCollisionMode.NEVER).getLocation().toVector(); + return DirectorContext.get().player().getTargetBlockExact(256, FluidCollisionMode.NEVER).getLocation().toVector(); } @Override protected List playerPossibilities(String query) { - return DecreeSystem.getHandler(Player.class).getPossibilities(query); + return DirectorSystem.getHandler(Player.class).getPossibilities(query); } @Override diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/WorldHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/handlers/WorldHandler.java similarity index 71% rename from core/src/main/java/art/arcane/iris/util/common/decree/handlers/WorldHandler.java rename to core/src/main/java/art/arcane/iris/util/common/director/handlers/WorldHandler.java index 932109dc6..276f1b70a 100644 --- a/core/src/main/java/art/arcane/iris/util/common/decree/handlers/WorldHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/director/handlers/WorldHandler.java @@ -1,7 +1,7 @@ -package art.arcane.iris.util.decree.handlers; +package art.arcane.iris.util.director.handlers; import art.arcane.volmlib.util.director.handlers.base.WorldHandlerBase; -import art.arcane.iris.util.decree.DirectorParameterHandler; +import art.arcane.volmlib.util.director.DirectorParameterHandler; import org.bukkit.World; public class WorldHandler extends WorldHandlerBase implements DirectorParameterHandler { diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/specialhandlers/DummyHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/DummyHandler.java similarity index 58% rename from core/src/main/java/art/arcane/iris/util/common/decree/specialhandlers/DummyHandler.java rename to core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/DummyHandler.java index 9a14a3909..28ddc3594 100644 --- a/core/src/main/java/art/arcane/iris/util/common/decree/specialhandlers/DummyHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/DummyHandler.java @@ -1,7 +1,7 @@ -package art.arcane.iris.util.decree.specialhandlers; +package art.arcane.iris.util.director.specialhandlers; import art.arcane.volmlib.util.director.handlers.base.DummyHandlerBase; -import art.arcane.iris.util.decree.DirectorParameterHandler; +import art.arcane.volmlib.util.director.DirectorParameterHandler; public class DummyHandler extends DummyHandlerBase implements DirectorParameterHandler { } diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/specialhandlers/NullableDimensionHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/NullableDimensionHandler.java similarity index 98% rename from core/src/main/java/art/arcane/iris/util/common/decree/specialhandlers/NullableDimensionHandler.java rename to core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/NullableDimensionHandler.java index 889ba7374..b2f4c181a 100644 --- a/core/src/main/java/art/arcane/iris/util/common/decree/specialhandlers/NullableDimensionHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/NullableDimensionHandler.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.decree.specialhandlers; +package art.arcane.iris.util.director.specialhandlers; import art.arcane.iris.core.IrisSettings; import art.arcane.iris.core.tools.IrisToolbelt; diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/specialhandlers/NullablePlayerHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/NullablePlayerHandler.java similarity index 72% rename from core/src/main/java/art/arcane/iris/util/common/decree/specialhandlers/NullablePlayerHandler.java rename to core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/NullablePlayerHandler.java index d0a4191a1..3b4e51962 100644 --- a/core/src/main/java/art/arcane/iris/util/common/decree/specialhandlers/NullablePlayerHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/NullablePlayerHandler.java @@ -1,9 +1,9 @@ -package art.arcane.iris.util.decree.specialhandlers; +package art.arcane.iris.util.director.specialhandlers; import art.arcane.volmlib.util.director.handlers.base.NullablePlayerHandlerBase; import art.arcane.volmlib.util.director.exceptions.DirectorParsingException; -import art.arcane.iris.util.decree.DirectorParameterHandler; -import art.arcane.iris.util.decree.handlers.PlayerHandler; +import art.arcane.volmlib.util.director.DirectorParameterHandler; +import art.arcane.iris.util.director.handlers.PlayerHandler; import org.bukkit.entity.Player; public class NullablePlayerHandler extends PlayerHandler implements DirectorParameterHandler { diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/specialhandlers/ObjectHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/ObjectHandler.java similarity index 95% rename from core/src/main/java/art/arcane/iris/util/common/decree/specialhandlers/ObjectHandler.java rename to core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/ObjectHandler.java index 461d375a3..2111bed30 100644 --- a/core/src/main/java/art/arcane/iris/util/common/decree/specialhandlers/ObjectHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/ObjectHandler.java @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package art.arcane.iris.util.decree.specialhandlers; +package art.arcane.iris.util.director.specialhandlers; import art.arcane.iris.Iris; import art.arcane.iris.core.loader.IrisData; import art.arcane.volmlib.util.collection.KList; -import art.arcane.iris.util.decree.DirectorParameterHandler; +import art.arcane.iris.util.director.DirectorParameterHandler; import art.arcane.volmlib.util.director.exceptions.DirectorParsingException; import java.io.File; diff --git a/core/src/main/java/art/arcane/iris/util/common/decree/specialhandlers/RegistrantHandler.java b/core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/RegistrantHandler.java similarity index 95% rename from core/src/main/java/art/arcane/iris/util/common/decree/specialhandlers/RegistrantHandler.java rename to core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/RegistrantHandler.java index a18aa5b50..e58e24fac 100644 --- a/core/src/main/java/art/arcane/iris/util/common/decree/specialhandlers/RegistrantHandler.java +++ b/core/src/main/java/art/arcane/iris/util/common/director/specialhandlers/RegistrantHandler.java @@ -1,10 +1,10 @@ -package art.arcane.iris.util.decree.specialhandlers; +package art.arcane.iris.util.director.specialhandlers; import art.arcane.iris.Iris; import art.arcane.iris.core.loader.IrisData; import art.arcane.iris.core.loader.IrisRegistrant; import art.arcane.volmlib.util.collection.KList; -import art.arcane.iris.util.decree.DirectorParameterHandler; +import art.arcane.iris.util.director.DirectorParameterHandler; import art.arcane.volmlib.util.director.exceptions.DirectorParsingException; import java.io.File; diff --git a/core/src/main/java/art/arcane/iris/util/common/io/ReactiveFolder.java b/core/src/main/java/art/arcane/iris/util/common/io/ReactiveFolder.java deleted file mode 100644 index 43eb1ab81..000000000 --- a/core/src/main/java/art/arcane/iris/util/common/io/ReactiveFolder.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.io; - -import art.arcane.volmlib.util.collection.KList; -import art.arcane.volmlib.util.function.Consumer3; -import art.arcane.volmlib.util.io.FolderWatcher; - -import java.io.File; - -public class ReactiveFolder { - private final File folder; - private final Consumer3, KList, KList> hotload; - private FolderWatcher fw; - private int checkCycle = 0; - - public ReactiveFolder(File folder, Consumer3, KList, KList> hotload) { - this.folder = folder; - this.hotload = hotload; - this.fw = new FolderWatcher(folder); - fw.checkModified(); - } - - public void checkIgnore() { - fw = new FolderWatcher(folder); - } - - public boolean check() { - checkCycle++; - boolean modified = false; - - if (checkCycle % 3 == 0 ? fw.checkModified() : fw.checkModifiedFast()) { - for (File i : fw.getCreated()) { - if (i.getName().endsWith(".iob") || i.getName().endsWith(".json") || i.getName().endsWith(".kts")) { - if (i.getPath().contains(".iris") || i.getName().endsWith(".gradle.kts")) { - continue; - } - - modified = true; - break; - } - } - - if (!modified) { - for (File i : fw.getChanged()) { - if (i.getPath().contains(".iris") || i.getName().endsWith(".gradle.kts")) { - continue; - } - - if (i.getName().endsWith(".iob") || i.getName().endsWith(".json") || i.getName().endsWith(".kts")) { - modified = true; - break; - } - } - } - - if (!modified) { - for (File i : fw.getDeleted()) { - if (i.getPath().contains(".iris") || i.getName().endsWith(".gradle.kts")) { - continue; - } - - if (i.getName().endsWith(".iob") || i.getName().endsWith(".json") || i.getName().endsWith(".kts")) { - modified = true; - break; - } - } - } - } - - if (modified) { - hotload.accept(fw.getCreated(), fw.getChanged(), fw.getDeleted()); - } - - return fw.checkModified(); - } - - public void clear() { - fw.clear(); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/common/mantle/Mantle.java b/core/src/main/java/art/arcane/iris/util/common/mantle/Mantle.java deleted file mode 100644 index 00403096f..000000000 --- a/core/src/main/java/art/arcane/iris/util/common/mantle/Mantle.java +++ /dev/null @@ -1,162 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.mantle; - -import art.arcane.volmlib.util.documentation.BlockCoordinates; -import art.arcane.volmlib.util.documentation.ChunkCoordinates; -import art.arcane.volmlib.util.function.Consumer4; -import art.arcane.iris.Iris; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.engine.framework.Engine; -import art.arcane.iris.engine.mantle.EngineMantle; -import art.arcane.iris.engine.mantle.MantleWriter; -import art.arcane.volmlib.util.format.Form; -import art.arcane.volmlib.util.io.IO; -import art.arcane.iris.util.mantle.io.IOWorker; -import art.arcane.iris.util.matter.Matter; -import art.arcane.iris.util.matter.MatterSlice; -import art.arcane.iris.util.parallel.HyperLock; -import art.arcane.iris.util.parallel.MultiBurst; - -import java.io.File; -import java.io.IOException; - -/** - * Iris adapter over shared mantle runtime. - */ -public class Mantle extends art.arcane.volmlib.util.mantle.Mantle { - private static final int LOCK_SIZE = Short.MAX_VALUE; - - @BlockCoordinates - public Mantle(File dataFolder, int worldHeight) { - super(dataFolder, worldHeight, LOCK_SIZE, new HyperLock(), MultiBurst.ioBurst, new IOWorkerRegionIO(dataFolder, worldHeight)); - } - - @ChunkCoordinates - public MantleWriter write(EngineMantle engineMantle, int x, int z, int radius, boolean multicore) { - return new MantleWriter(engineMantle, this, x, z, radius, multicore); - } - - @Override - protected TectonicPlate createRegion(int x, int z) { - return new TectonicPlate(getWorldHeight(), x, z); - } - - @Override - protected void setChunkValue(MantleChunk chunk, int x, int y, int z, T value) { - Matter matter = chunk.getOrCreate(y >> 4); - matter.slice(matter.getClass(value)).set(x & 15, y & 15, z & 15, value); - } - - @Override - protected void removeChunkValue(MantleChunk chunk, int x, int y, int z, Class type) { - Matter matter = chunk.getOrCreate(y >> 4); - matter.slice(type).set(x & 15, y & 15, z & 15, null); - } - - @Override - @SuppressWarnings("unchecked") - protected T getChunkValue(MantleChunk chunk, int x, int y, int z, Class type) { - return (T) chunk.getOrCreate(y >> 4) - .slice(type) - .get(x & 15, y & 15, z & 15); - } - - @Override - protected void iterateChunkValues(MantleChunk chunk, Class type, Consumer4 iterator) { - chunk.iterate(type, iterator); - } - - @Override - protected void deleteChunkSlice(MantleChunk chunk, Class type) { - chunk.deleteSlices(type); - } - - @Override - protected boolean shouldRetainSlice(Class sliceType) { - return IrisToolbelt.isRetainingMantleDataForSlice(sliceType.getCanonicalName()); - } - - @Override - protected String formatDuration(double millis) { - return Form.duration(millis, 0); - } - - @Override - protected void onDebug(String message) { - Iris.debug(message); - } - - @Override - protected void onWarn(String message) { - Iris.warn(message); - } - - @Override - protected void onError(Throwable throwable) { - Iris.reportError(throwable); - } - - @Override - protected void deleteTemporaryFiles() { - IO.delete(new File(getDataFolder(), ".tmp")); - } - - public void set(int x, int y, int z, Matter matter) { - for (MatterSlice slice : matter.getSliceMap().values()) { - slice.iterate((mx, my, mz, v) -> set(mx + x, my + y, mz + z, v)); - } - } - - public void set(int x, int y, int z, MatterSlice slice) { - if (slice.isEmpty()) { - return; - } - - slice.iterateSync((xx, yy, zz, t) -> set(x + xx, y + yy, z + zz, t)); - } - - public boolean shouldReduce(Engine engine) { - return !engine.isStudio() || IrisSettings.get().getPerformance().isTrimMantleInStudio(); - } - - private static final class IOWorkerRegionIO implements RegionIO { - private final IOWorker worker; - - private IOWorkerRegionIO(File root, int worldHeight) { - this.worker = new IOWorker(root, worldHeight); - } - - @Override - public TectonicPlate read(String name) throws IOException { - return worker.read(name); - } - - @Override - public void write(String name, TectonicPlate region) throws IOException { - worker.write(name, region); - } - - @Override - public void close() throws IOException { - worker.close(); - } - } -} diff --git a/core/src/main/java/art/arcane/iris/util/common/mantle/MantleChunk.java b/core/src/main/java/art/arcane/iris/util/common/mantle/MantleChunk.java deleted file mode 100644 index 5060d572a..000000000 --- a/core/src/main/java/art/arcane/iris/util/common/mantle/MantleChunk.java +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.mantle; - -import art.arcane.volmlib.util.documentation.ChunkCoordinates; -import art.arcane.volmlib.util.documentation.ChunkRelativeBlockCoordinates; -import art.arcane.volmlib.util.function.Consumer4; -import art.arcane.volmlib.util.io.CountingDataInputStream; -import art.arcane.iris.Iris; -import art.arcane.iris.core.tools.IrisToolbelt; -import art.arcane.iris.util.matter.IrisMatter; -import art.arcane.iris.util.matter.Matter; -import art.arcane.iris.util.matter.MatterSlice; -import org.jetbrains.annotations.Nullable; - -import java.io.DataOutputStream; -import java.io.IOException; - -/** - * Represents a mantle chunk. Mantle chunks contain sections of matter (see matter api) - * Mantle Chunks are fully atomic & thread safe - */ -public class MantleChunk extends art.arcane.volmlib.util.mantle.MantleChunk { - @ChunkCoordinates - public MantleChunk(int sectionHeight, int x, int z) { - super(sectionHeight, x, z); - } - - public MantleChunk(int version, int sectionHeight, CountingDataInputStream din) throws IOException { - super(version, sectionHeight, din); - } - - @Override - protected void onBeforeReadSection(int index) { - Iris.addPanic("read.section", "Section[" + index + "]"); - } - - @Override - protected void onReadSectionFailure(int index, long start, long end, CountingDataInputStream din, IOException e) { - Iris.error("Failed to read chunk section, skipping it."); - Iris.addPanic("read.byte.range", start + " " + end); - Iris.addPanic("read.byte.current", din.count() + ""); - Iris.reportError(e); - e.printStackTrace(); - Iris.panic(); - TectonicPlate.addError(); - } - - @Override - protected Matter createSection() { - return new IrisMatter(16, 16, 16); - } - - @Override - protected Matter readSection(CountingDataInputStream din) throws IOException { - return Matter.readDin(din); - } - - @Override - protected void writeSection(Matter section, DataOutputStream dos) throws IOException { - section.writeDos(dos); - } - - @Override - protected void trimSection(Matter section) { - section.trimSlices(); - } - - @Override - protected boolean isSectionEmpty(Matter section) { - return section.getSliceMap().isEmpty(); - } - - @Override - public MantleChunk use() { - super.use(); - return this; - } - - public void copyFrom(MantleChunk chunk) { - super.copyFrom(chunk); - } - - @Nullable - @ChunkRelativeBlockCoordinates - @SuppressWarnings("unchecked") - public T get(int x, int y, int z, Class type) { - return (T) getOrCreate(y >> 4) - .slice(type) - .get(x & 15, y & 15, z & 15); - } - - public void iterate(Class type, Consumer4 iterator) { - for (int i = 0; i < sectionCount(); i++) { - int bs = (i << 4); - Matter matter = get(i); - - if (matter != null) { - MatterSlice t = matter.getSlice(type); - - if (t != null) { - t.iterateSync((a, b, c, f) -> iterator.accept(a, b + bs, c, f)); - } - } - } - } - - public void deleteSlices(Class c) { - if (IrisToolbelt.isRetainingMantleDataForSlice(c.getCanonicalName())) { - return; - } - - for (int i = 0; i < sectionCount(); i++) { - Matter m = get(i); - if (m != null && m.hasSlice(c)) { - m.deleteSlice(c); - } - } - } - - public void trimSlices() { - trimSections(); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/common/mantle/TectonicPlate.java b/core/src/main/java/art/arcane/iris/util/common/mantle/TectonicPlate.java deleted file mode 100644 index d2b3420fd..000000000 --- a/core/src/main/java/art/arcane/iris/util/common/mantle/TectonicPlate.java +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.mantle; - -import art.arcane.volmlib.util.io.CountingDataInputStream; -import art.arcane.iris.Iris; -import art.arcane.iris.engine.EnginePanic; - -import java.io.DataOutputStream; -import java.io.IOException; - -/** - * Tectonic Plates are essentially representations of regions in minecraft. - * Tectonic Plates are fully atomic & thread safe - */ -public class TectonicPlate extends art.arcane.volmlib.util.mantle.TectonicPlate { - public static final int MISSING = art.arcane.volmlib.util.mantle.TectonicPlate.MISSING; - public static final int CURRENT = art.arcane.volmlib.util.mantle.TectonicPlate.CURRENT; - - public TectonicPlate(int worldHeight, int x, int z) { - super(worldHeight, x, z); - } - - public TectonicPlate(int worldHeight, CountingDataInputStream din, boolean versioned) throws IOException { - super(worldHeight, din, versioned); - } - - @Override - protected void beforeReadChunk(int index) { - Iris.addPanic("read-chunk", "Chunk[" + index + "]"); - } - - @Override - protected void afterReadChunk(int index) { - EnginePanic.saveLast(); - } - - @Override - protected void onReadChunkFailure(int index, long start, long end, CountingDataInputStream din, Throwable e) { - Iris.error("Failed to read chunk, creating a new chunk instead."); - Iris.addPanic("read.byte.range", start + " " + end); - Iris.addPanic("read.byte.current", din.count() + ""); - Iris.reportError(e); - e.printStackTrace(); - Iris.panic(); - } - - @Override - protected MantleChunk readChunk(int version, int sectionHeight, CountingDataInputStream din) throws IOException { - return new MantleChunk(version, sectionHeight, din); - } - - @Override - protected MantleChunk createChunk(int sectionHeight, int x, int z) { - return new MantleChunk(sectionHeight, x, z); - } - - @Override - protected boolean isChunkInUse(MantleChunk chunk) { - return chunk.inUse(); - } - - @Override - protected void closeChunk(MantleChunk chunk) { - chunk.close(); - } - - @Override - protected void writeChunk(MantleChunk chunk, DataOutputStream dos) throws IOException { - chunk.write(dos); - } - - public static void addError() { - art.arcane.volmlib.util.mantle.TectonicPlate.addError(); - } - - public static boolean hasError() { - return art.arcane.volmlib.util.mantle.TectonicPlate.hasError(); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/common/mantle/io/IOWorker.java b/core/src/main/java/art/arcane/iris/util/common/mantle/io/IOWorker.java deleted file mode 100644 index bebbb1572..000000000 --- a/core/src/main/java/art/arcane/iris/util/common/mantle/io/IOWorker.java +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.mantle.io; - -import art.arcane.volmlib.util.mantle.io.IOWorkerCodecSupport; -import art.arcane.volmlib.util.mantle.io.IOWorkerRuntimeSupport; -import art.arcane.volmlib.util.mantle.io.IOWorkerSupport; -import art.arcane.iris.Iris; -import art.arcane.iris.core.IrisSettings; -import art.arcane.iris.util.format.C; -import art.arcane.volmlib.util.format.Form; -import art.arcane.iris.util.mantle.TectonicPlate; -import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; -import net.jpountz.lz4.LZ4BlockInputStream; -import net.jpountz.lz4.LZ4BlockOutputStream; - -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; - -public class IOWorker { - private static final IOWorkerCodecSupport LZ4_CODEC = new IOWorkerCodecSupport() { - @Override - public InputStream decode(InputStream input) throws IOException { - return new LZ4BlockInputStream(input); - } - - @Override - public OutputStream encode(OutputStream output) throws IOException { - return new LZ4BlockOutputStream(output); - } - }; - - private final int worldHeight; - private final IOWorkerSupport support; - private final IOWorkerRuntimeSupport runtime; - - public IOWorker(File root, int worldHeight) { - this.worldHeight = worldHeight; - this.support = new IOWorkerSupport(root, 128, (name, millis) -> { - String threadName = Thread.currentThread().getName(); - String msg = "Acquired Channel for " + C.DARK_GREEN + name + C.RED + " in " + Form.duration(millis, 2) - + C.GRAY + " thread=" + threadName; - if (millis >= 1000L) { - Iris.warn(msg); - } else { - Iris.debug(msg); - } - }); - this.runtime = new IOWorkerRuntimeSupport(support, LZ4_CODEC); - } - - public TectonicPlate read(final String name) throws IOException { - PrecisionStopwatch p = PrecisionStopwatch.start(); - try { - return runtime.read(name, (regionName, in) -> new TectonicPlate(worldHeight, in, regionName.startsWith("pv."))); - } finally { - if (TectonicPlate.hasError() && IrisSettings.get().getGeneral().isDumpMantleOnError()) { - File dump = Iris.instance.getDataFolder("dump", name + ".bin"); - runtime.dumpDecoded(name, dump.toPath()); - } else { - Iris.debug("Read Tectonic Plate " + C.DARK_GREEN + name + C.RED + " in " + Form.duration(p.getMilliseconds(), 2)); - } - } - } - - public void write(final String name, final TectonicPlate plate) throws IOException { - PrecisionStopwatch p = PrecisionStopwatch.start(); - runtime.writeAtomically(name, "iris", ".bin", plate, TectonicPlate::write); - - Iris.debug("Saved Tectonic Plate " + C.DARK_GREEN + name + C.RED + " in " + Form.duration(p.getMilliseconds(), 2)); - } - - public void close() throws IOException { - support.close(); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/common/math/Position2.java b/core/src/main/java/art/arcane/iris/util/common/math/Position2.java deleted file mode 100644 index dcbc1a150..000000000 --- a/core/src/main/java/art/arcane/iris/util/common/math/Position2.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.math; - -import art.arcane.iris.engine.object.IrisPosition; -import org.bukkit.util.Vector; - -public class Position2 extends art.arcane.volmlib.util.math.Position2 { - public Position2(int x, int z) { - super(x, z); - } - - public Position2(Vector center) { - super(center); - } - - @Override - public Position2 regionToChunk() { - return new Position2(getX() << 5, getZ() << 5); - } - - @Override - public Position2 add(int x, int z) { - return new Position2(getX() + x, getZ() + z); - } - - @Override - public Position2 blockToChunk() { - return new Position2(getX() >> 4, getZ() >> 4); - } - - public IrisPosition toIris() { - return new IrisPosition(getX(), 23, getZ()); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/common/math/Spiral.java b/core/src/main/java/art/arcane/iris/util/common/math/Spiral.java deleted file mode 100644 index d0f4581bc..000000000 --- a/core/src/main/java/art/arcane/iris/util/common/math/Spiral.java +++ /dev/null @@ -1,52 +0,0 @@ -package art.arcane.iris.util.math; - -import org.jetbrains.annotations.NotNull; - -import java.util.Iterator; - -public class Spiral implements Iterable { - private final Position2 start; - private final long max; - private final art.arcane.volmlib.util.math.Spiral delegate; - - public Spiral(Position2 start, long max) { - this.start = start; - this.max = max; - this.delegate = new art.arcane.volmlib.util.math.Spiral(start, max); - } - - public static Position2 next(Position2 p) { - art.arcane.volmlib.util.math.Position2 n = art.arcane.volmlib.util.math.Spiral.next(p); - return new Position2(n.getX(), n.getZ()); - } - - public static Spiral from(Position2 p, long iterations) { - return new Spiral(p, iterations); - } - - public Position2 getStart() { - return start; - } - - public long getMax() { - return max; - } - - @NotNull - @Override - public Iterator iterator() { - Iterator it = delegate.iterator(); - return new Iterator<>() { - @Override - public boolean hasNext() { - return it.hasNext(); - } - - @Override - public Position2 next() { - art.arcane.volmlib.util.math.Position2 p = it.next(); - return new Position2(p.getX(), p.getZ()); - } - }; - } -} diff --git a/core/src/main/java/art/arcane/iris/util/common/nbt/mca/MCAFile.java b/core/src/main/java/art/arcane/iris/util/common/nbt/mca/MCAFile.java index 68792e271..1b5e1c47c 100644 --- a/core/src/main/java/art/arcane/iris/util/common/nbt/mca/MCAFile.java +++ b/core/src/main/java/art/arcane/iris/util/common/nbt/mca/MCAFile.java @@ -21,7 +21,7 @@ package art.arcane.iris.util.nbt.mca; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.nbt.mca.MCAFileSupport; import art.arcane.volmlib.util.nbt.mca.LoadFlags; -import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.Position2; import art.arcane.iris.util.scheduling.J; import java.io.IOException; diff --git a/core/src/main/java/art/arcane/iris/util/common/nbt/mca/MCAUtil.java b/core/src/main/java/art/arcane/iris/util/common/nbt/mca/MCAUtil.java index 8c50f9cd0..67aa4a994 100644 --- a/core/src/main/java/art/arcane/iris/util/common/nbt/mca/MCAUtil.java +++ b/core/src/main/java/art/arcane/iris/util/common/nbt/mca/MCAUtil.java @@ -21,7 +21,7 @@ package art.arcane.iris.util.nbt.mca; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.nbt.mca.LoadFlags; import art.arcane.volmlib.util.nbt.mca.MCAUtilSupport; -import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.Position2; import java.io.File; import java.io.IOException; diff --git a/core/src/main/java/art/arcane/iris/util/common/parallel/BurstedHunk.java b/core/src/main/java/art/arcane/iris/util/common/parallel/BurstedHunk.java index f88031bb7..353397691 100644 --- a/core/src/main/java/art/arcane/iris/util/common/parallel/BurstedHunk.java +++ b/core/src/main/java/art/arcane/iris/util/common/parallel/BurstedHunk.java @@ -20,6 +20,5 @@ package art.arcane.iris.util.parallel; import art.arcane.iris.util.hunk.Hunk; - public interface BurstedHunk extends Hunk, art.arcane.volmlib.util.parallel.BurstedHunk { } diff --git a/core/src/main/java/art/arcane/iris/util/common/parallel/StreamUtils.java b/core/src/main/java/art/arcane/iris/util/common/parallel/StreamUtils.java index e78e18ac4..4702e0daf 100644 --- a/core/src/main/java/art/arcane/iris/util/common/parallel/StreamUtils.java +++ b/core/src/main/java/art/arcane/iris/util/common/parallel/StreamUtils.java @@ -1,7 +1,7 @@ package art.arcane.iris.util.parallel; import art.arcane.volmlib.util.parallel.StreamUtilsSupport; -import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.Position2; import org.jetbrains.annotations.Nullable; import java.util.function.Consumer; diff --git a/core/src/main/java/art/arcane/iris/util/common/plugin/VolmitSender.java b/core/src/main/java/art/arcane/iris/util/common/plugin/VolmitSender.java index 91427855a..6d50212aa 100644 --- a/core/src/main/java/art/arcane/iris/util/common/plugin/VolmitSender.java +++ b/core/src/main/java/art/arcane/iris/util/common/plugin/VolmitSender.java @@ -451,14 +451,14 @@ public class VolmitSender implements CommandSender { sendHeader(name, 44); } - public void sendDecreeHelp(DirectorVisualCommand v) { - sendDecreeHelp(v, 0); + public void sendDirectorHelp(DirectorVisualCommand v) { + sendDirectorHelp(v, 0); } - public void sendDecreeHelp(DirectorVisualCommand v, int page) { + public void sendDirectorHelp(DirectorVisualCommand v, int page) { if (!isPlayer()) { for (DirectorVisualCommand i : v.getNodes()) { - sendDecreeHelpNode(i); + sendDirectorHelpNode(i); } return; @@ -474,7 +474,7 @@ public class VolmitSender implements CommandSender { AtomicBoolean next = new AtomicBoolean(false); for (DirectorVisualCommand i : paginate(v.getNodes(), 17, page, next)) { - sendDecreeHelpNode(i); + sendDirectorHelpNode(i); } String s = ""; @@ -496,7 +496,7 @@ public class VolmitSender implements CommandSender { } } - public void sendDecreeHelpNode(DirectorVisualCommand i) { + public void sendDirectorHelpNode(DirectorVisualCommand i) { if (isPlayer() || s instanceof CommandDummy) { sendMessageRaw(helpCache.computeIfAbsent(i.getPath(), (k) -> { String newline = "\n"; diff --git a/core/src/main/java/art/arcane/iris/util/project/hunk/SharedHunkAdapter.java b/core/src/main/java/art/arcane/iris/util/project/hunk/SharedHunkAdapter.java index 67c2e71b9..300965476 100644 --- a/core/src/main/java/art/arcane/iris/util/project/hunk/SharedHunkAdapter.java +++ b/core/src/main/java/art/arcane/iris/util/project/hunk/SharedHunkAdapter.java @@ -1,7 +1,6 @@ package art.arcane.iris.util.hunk; import art.arcane.volmlib.util.hunk.HunkLike; - final class SharedHunkAdapter implements Hunk { private final HunkLike delegate; diff --git a/core/src/main/java/art/arcane/iris/util/project/hunk/storage/PaletteOrHunk.java b/core/src/main/java/art/arcane/iris/util/project/hunk/storage/PaletteOrHunk.java index 3da0956dc..8cfcb0dfb 100644 --- a/core/src/main/java/art/arcane/iris/util/project/hunk/storage/PaletteOrHunk.java +++ b/core/src/main/java/art/arcane/iris/util/project/hunk/storage/PaletteOrHunk.java @@ -5,7 +5,6 @@ import art.arcane.volmlib.util.function.Consumer4IO; import art.arcane.iris.util.hunk.Hunk; import art.arcane.volmlib.util.hunk.bits.DataContainer; import art.arcane.volmlib.util.hunk.bits.Writable; - import java.io.IOException; import java.util.function.Supplier; diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/IrisMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/IrisMatter.java deleted file mode 100644 index 56a426dd7..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/matter/IrisMatter.java +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.matter; - -import art.arcane.iris.Iris; -import art.arcane.iris.core.loader.IrisRegistrant; -import art.arcane.volmlib.util.collection.KMap; -import art.arcane.volmlib.util.json.JSONObject; -import art.arcane.iris.util.plugin.VolmitSender; -import lombok.Getter; - -import java.util.Objects; - -public class IrisMatter extends IrisRegistrant implements Matter { - protected static final KMap, MatterSlice> slicers = buildSlicers(); - - @Getter - private final MatterHeader header; - - @Getter - private final int width; - - @Getter - private final int height; - - @Getter - private final int depth; - - @Getter - private final KMap, MatterSlice> sliceMap; - - public IrisMatter(int width, int height, int depth) { - if (width < 1 || height < 1 || depth < 1) { - throw new RuntimeException("Invalid Matter Size " + width + "x" + height + "x" + depth); - } - - this.width = width; - this.height = height; - this.depth = depth; - this.header = new MatterHeader(); - this.sliceMap = new KMap<>(); - } - - private static KMap, MatterSlice> buildSlicers() { - KMap, MatterSlice> c = new KMap<>(); - for (Object i : Iris.initialize("art.arcane.iris.util.matter.slices", Sliced.class)) { - MatterSlice s = (MatterSlice) i; - c.put(s.getType(), s); - } - - return c; - } - - @Override - @SuppressWarnings("unchecked") - public MatterSlice slice(Class c) { - return (MatterSlice) sliceMap.computeIfAbsent(c, $ -> Objects.requireNonNull(createSlice(c, this), "Bad slice " + c.getCanonicalName())); - } - - @Override - public MatterSlice createSlice(Class type, Matter m) { - MatterSlice slice = slicers.get(type); - - if (slice == null) { - return null; - } - - try { - return slice.getClass().getConstructor(int.class, int.class, int.class).newInstance(getWidth(), getHeight(), getDepth()); - } catch (Throwable e) { - e.printStackTrace(); - } - - return null; - } - - @Override - public String getFolderName() { - return "matter"; - } - - @Override - public String getTypeName() { - return "matter"; - } - - @Override - public void scanForErrors(JSONObject p, VolmitSender sender) { - - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/IrisMatterSupport.java b/core/src/main/java/art/arcane/iris/util/project/matter/IrisMatterSupport.java new file mode 100644 index 000000000..46c4f4b66 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/util/project/matter/IrisMatterSupport.java @@ -0,0 +1,100 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2022 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package art.arcane.iris.util.matter; + +import art.arcane.iris.Iris; +import art.arcane.iris.engine.object.IrisObject; +import art.arcane.iris.util.matter.slices.EntityMatter; +import art.arcane.iris.util.matter.slices.IdentifierMatter; +import art.arcane.iris.util.matter.slices.SpawnerMatter; +import art.arcane.iris.util.matter.slices.TileMatter; +import art.arcane.volmlib.util.matter.IrisMatter; +import art.arcane.volmlib.util.matter.Matter; +import org.bukkit.block.data.BlockData; +import org.bukkit.util.BlockVector; + +import java.io.File; + +public final class IrisMatterSupport { + private static boolean registered; + + private IrisMatterSupport() { + } + + public static synchronized void ensureRegistered() { + if (registered) { + return; + } + + IrisMatter.registerSliceType(new EntityMatter()); + IrisMatter.registerSliceType(new IdentifierMatter()); + IrisMatter.registerSliceType(new SpawnerMatter()); + IrisMatter.registerSliceType(new TileMatter()); + registered = true; + } + + public static Matter from(IrisObject object) { + ensureRegistered(); + object.clean(); + object.shrinkwrap(); + BlockVector min = new BlockVector(); + Matter matter = new IrisMatter(Math.max(object.getW(), 1) + 1, Math.max(object.getH(), 1) + 1, Math.max(object.getD(), 1) + 1); + + for (BlockVector i : object.getBlocks().keys()) { + min.setX(Math.min(min.getX(), i.getX())); + min.setY(Math.min(min.getY(), i.getY())); + min.setZ(Math.min(min.getZ(), i.getZ())); + } + + for (BlockVector i : object.getBlocks().keys()) { + matter.slice(BlockData.class).set(i.getBlockX() - min.getBlockX(), i.getBlockY() - min.getBlockY(), i.getBlockZ() - min.getBlockZ(), object.getBlocks().get(i)); + } + + return matter; + } + + public static long convert(File folder) { + if (folder.isDirectory()) { + long total = 0; + File[] files = folder.listFiles(); + if (files == null) { + return total; + } + + for (File file : files) { + total += convert(file); + } + + return total; + } + + IrisObject object = new IrisObject(1, 1, 1); + try { + long oldSize = folder.length(); + object.read(folder); + from(object).write(folder); + Iris.info("Converted " + folder.getPath() + " Saved " + (oldSize - folder.length())); + } catch (Throwable e) { + Iris.error("Failed to convert " + folder.getPath()); + e.printStackTrace(); + } + + return 0; + } +} diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/Matter.java b/core/src/main/java/art/arcane/iris/util/project/matter/Matter.java deleted file mode 100644 index d4695e2d2..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/matter/Matter.java +++ /dev/null @@ -1,459 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.matter; - -import art.arcane.iris.Iris; -import art.arcane.iris.engine.object.IrisObject; -import art.arcane.iris.engine.object.IrisPosition; -import art.arcane.volmlib.util.collection.KSet; -import art.arcane.iris.util.hunk.Hunk; -import art.arcane.volmlib.util.io.CountingDataInputStream; -import art.arcane.iris.util.mantle.TectonicPlate; -import art.arcane.volmlib.util.math.BlockPosition; -import org.bukkit.World; -import org.bukkit.block.data.BlockData; -import org.bukkit.entity.Entity; -import org.bukkit.util.BlockVector; - -import java.io.*; -import java.util.Map; -import java.util.Set; -import java.util.function.Function; - -/** - * When Red Matter isn't enough - *

- * UVI width - * UVI height - * UVI depth - * UVI sliceCount - * UTF author - * UVL createdAt - * UVI version - * UTF sliceType (canonical class name) - * UVI nodeCount (for each slice) - * UVI position [(z * w * h) + (y * w) + x] - * ??? nodeData - */ -public interface Matter { - int VERSION = 1; - - static long convert(File folder) { - if (folder.isDirectory()) { - long v = 0; - - for (File i : folder.listFiles()) { - v += convert(i); - } - - return v; - } else { - IrisObject object = new IrisObject(1, 1, 1); - try { - long fs = folder.length(); - object.read(folder); - Matter.from(object).write(folder); - Iris.info("Converted " + folder.getPath() + " Saved " + (fs - folder.length())); - } catch (Throwable e) { - Iris.error("Failed to convert " + folder.getPath()); - e.printStackTrace(); - } - } - - return 0; - } - - static Matter from(IrisObject object) { - object.clean(); - object.shrinkwrap(); - BlockVector min = new BlockVector(); - Matter m = new IrisMatter(Math.max(object.getW(), 1) + 1, Math.max(object.getH(), 1) + 1, Math.max(object.getD(), 1) + 1); - - for (BlockVector i : object.getBlocks().keys()) { - min.setX(Math.min(min.getX(), i.getX())); - min.setY(Math.min(min.getY(), i.getY())); - min.setZ(Math.min(min.getZ(), i.getZ())); - } - - for (BlockVector i : object.getBlocks().keys()) { - m.slice(BlockData.class).set(i.getBlockX() - min.getBlockX(), i.getBlockY() - min.getBlockY(), i.getBlockZ() - min.getBlockZ(), object.getBlocks().get(i)); - } - - return m; - } - - static Matter read(File f) throws IOException { - try (var in = new FileInputStream(f)) { - return read(in); - } - } - - static Matter read(InputStream in) throws IOException { - return read(in, (b) -> new IrisMatter(b.getX(), b.getY(), b.getZ())); - } - - static Matter readDin(CountingDataInputStream in) throws IOException { - return readDin(in, (b) -> new IrisMatter(b.getX(), b.getY(), b.getZ())); - } - - /** - * Reads the input stream into a matter object using a matter factory. - * Does not close the input stream. Be a man, close it yourself. - * - * @param in the input stream - * @param matterFactory the matter factory (size) -> new MatterImpl(size); - * @return the matter object - * @throws IOException shit happens yo - */ - static Matter read(InputStream in, Function matterFactory) throws IOException { - return readDin(CountingDataInputStream.wrap(in), matterFactory); - } - - static Matter readDin(CountingDataInputStream din, Function matterFactory) throws IOException { - Matter matter = matterFactory.apply(new BlockPosition( - din.readInt(), - din.readInt(), - din.readInt())); - Iris.addPanic("read.matter.size", matter.getWidth() + "x" + matter.getHeight() + "x" + matter.getDepth()); - int sliceCount = din.readByte(); - Iris.addPanic("read.matter.slicecount", sliceCount + ""); - - matter.getHeader().read(din); - Iris.addPanic("read.matter.header", matter.getHeader().toString()); - - for (int i = 0; i < sliceCount; i++) { - long size = din.readInt(); - if (size == 0) continue; - long start = din.count(); - long end = start + size; - - Iris.addPanic("read.matter.slice", i + ""); - try { - String cn = din.readUTF(); - Iris.addPanic("read.matter.slice.class", cn); - - Class type = Class.forName(cn); - MatterSlice slice = matter.createSlice(type, matter); - slice.read(din); - if (din.count() < end) throw new IOException("Matter slice read size mismatch!"); - matter.putSlice(type, slice); - } catch (Throwable e) { - if (!(e instanceof ClassNotFoundException)) { - Iris.error("Failed to read matter slice, skipping it."); - Iris.addPanic("read.byte.range", start + " " + end); - Iris.addPanic("read.byte.current", din.count() + ""); - Iris.reportError(e); - e.printStackTrace(); - Iris.panic(); - TectonicPlate.addError(); - } - din.skipTo(end); - } - - if (din.count() != end) { - throw new IOException("Matter slice read size mismatch!"); - } - } - - return matter; - } - - default Matter copy() { - Matter m = new IrisMatter(getWidth(), getHeight(), getDepth()); - getSliceMap().forEach((k, v) -> m.slice(k).forceInject(v)); - return m; - } - - /** - * Get the header information - * - * @return the header info - */ - MatterHeader getHeader(); - - /** - * Get the width of this matter - * - * @return the width - */ - int getWidth(); - - /** - * Get the height of this matter - * - * @return the height - */ - int getHeight(); - - /** - * Get the depth of this matter - * - * @return the depth - */ - int getDepth(); - - /** - * Get the center of this matter - * - * @return the center - */ - default BlockPosition getCenter() { - return new BlockPosition(getCenterX(), getCenterY(), getCenterZ()); - } - - /** - * Create a slice from the given type (full is false) - * - * @param type the type class - * @param matter the matter this slice will go into (size provider) - * @param the type - * @return the slice (or null if not supported) - */ - MatterSlice createSlice(Class type, Matter matter); - - /** - * Get the size of this matter - * - * @return the size - */ - default BlockPosition getSize() { - return new BlockPosition(getWidth(), getHeight(), getDepth()); - } - - /** - * Get the center X of this matter - * - * @return the center X - */ - default int getCenterX() { - return (int) Math.round(getWidth() / 2D); - } - - /** - * Get the center Y of this matter - * - * @return the center Y - */ - default int getCenterY() { - return (int) Math.round(getHeight() / 2D); - } - - /** - * Get the center Z of this matter - * - * @return the center Z - */ - default int getCenterZ() { - return (int) Math.round(getDepth() / 2D); - } - - /** - * Return the slice for the given type - * - * @param t the type class - * @param the type - * @return the slice or null - */ - default MatterSlice getSlice(Class t) { - return (MatterSlice) getSliceMap().get(t); - } - - /** - * Delete the slice for the given type - * - * @param c the type class - * @param the type - * @return the deleted slice, or null if it diddn't exist - */ - default MatterSlice deleteSlice(Class c) { - return (MatterSlice) getSliceMap().remove(c); - } - - /** - * Put a given slice type - * - * @param c the slice type class - * @param slice the slice to assign to the type - * @param the slice type - * @return the overwritten slice if there was an existing slice of that type - */ - default MatterSlice putSlice(Class c, MatterSlice slice) { - return (MatterSlice) getSliceMap().put(c, slice); - } - - default Class getClass(Object w) { - Class c = w.getClass(); - - if (w instanceof World) { - c = World.class; - } else if (w instanceof BlockData) { - c = BlockData.class; - } else if (w instanceof Entity) { - c = Entity.class; - } - - return c; - } - - default MatterSlice slice(Class c) { - MatterSlice slice = (MatterSlice) getSlice(c); - if (slice == null) { - slice = (MatterSlice) createSlice(c, this); - - if (slice == null) { - try { - throw new RuntimeException("Bad slice " + c.getCanonicalName()); - } catch (Throwable e) { - e.printStackTrace(); - } - - return null; - } - - putSlice(c, slice); - } - - return slice; - } - - /** - * Rotate a matter object into a new object - * - * @param x the x rotation (degrees) - * @param y the y rotation (degrees) - * @param z the z rotation (degrees) - * @return the new rotated matter object - */ - default Matter rotate(double x, double y, double z) { - IrisPosition rs = Hunk.rotatedBounding(getWidth(), getHeight(), getDepth(), x, y, z); - Matter n = new IrisMatter(rs.getX(), rs.getY(), rs.getZ()); - n.getHeader().setAuthor(getHeader().getAuthor()); - n.getHeader().setCreatedAt(getHeader().getCreatedAt()); - - for (Class i : getSliceTypes()) { - getSlice(i).rotateSliceInto(n, x, y, z); - } - - return n; - } - - /** - * Check if a slice exists for a given type - * - * @param c the slice class type - * @return true if it exists - */ - default boolean hasSlice(Class c) { - return getSlice(c) != null; - } - - /** - * Remove all slices - */ - default void clearSlices() { - getSliceMap().clear(); - } - - /** - * Get the set backing the slice map keys (slice types) - * - * @return the slice types - */ - default Set> getSliceTypes() { - return getSliceMap().keySet(); - } - - /** - * Get all slices - * - * @return the real slice map - */ - Map, MatterSlice> getSliceMap(); - - default void write(File f) throws IOException { - OutputStream out = new FileOutputStream(f); - write(out); - out.close(); - } - - /** - * Remove any slices that are empty - */ - default void trimSlices() { - Set> drop = null; - - for (Class i : getSliceTypes()) { - if (getSlice(i).getEntryCount() == 0) { - if (drop == null) { - drop = new KSet<>(); - } - - drop.add(i); - } - } - - if (drop != null) { - for (Class i : drop) { - deleteSlice(i); - } - } - } - - /** - * Writes the data to the output stream. The data will be flushed to the provided output - * stream however the provided stream will NOT BE CLOSED, so be sure to actually close it - * - * @param out the output stream - * @throws IOException shit happens yo - */ - default void write(OutputStream out) throws IOException { - writeDos(new DataOutputStream(out)); - } - - default void writeDos(DataOutputStream dos) throws IOException { - trimSlices(); - dos.writeInt(getWidth()); - dos.writeInt(getHeight()); - dos.writeInt(getDepth()); - dos.writeByte(getSliceTypes().size()); - getHeader().write(dos); - - var bytes = new ByteArrayOutputStream(1024); - var sub = new DataOutputStream(bytes); - for (Class i : getSliceTypes()) { - try { - getSlice(i).write(sub); - dos.writeInt(bytes.size()); - bytes.writeTo(dos); - } finally { - bytes.reset(); - } - } - } - - default int getTotalCount() { - int m = 0; - - for (MatterSlice i : getSliceMap().values()) { - m += i.getEntryCount(); - } - - return m; - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/MatterBiomeInject.java b/core/src/main/java/art/arcane/iris/util/project/matter/MatterBiomeInject.java deleted file mode 100644 index e1b91de14..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/matter/MatterBiomeInject.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.matter; - -import lombok.AllArgsConstructor; -import lombok.Data; -import org.bukkit.block.Biome; - -@Data -@AllArgsConstructor -public class MatterBiomeInject { - private final boolean custom; - private final Integer biomeId; - private final Biome biome; -} diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/MatterEntityGroup.java b/core/src/main/java/art/arcane/iris/util/project/matter/MatterEntityGroup.java deleted file mode 100644 index 3a5523fb6..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/matter/MatterEntityGroup.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.matter; - -import art.arcane.volmlib.util.collection.KList; -import art.arcane.volmlib.util.matter.MatterEntity; -import lombok.Data; - -@Data -public class MatterEntityGroup { - private final KList entities = new KList<>(); -} diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/MatterHeader.java b/core/src/main/java/art/arcane/iris/util/project/matter/MatterHeader.java deleted file mode 100644 index 8d79bad22..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/matter/MatterHeader.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.matter; - -import art.arcane.volmlib.util.math.M; -import lombok.Data; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; - -@Data -public class MatterHeader { - private String author = ""; - private long createdAt = M.ms(); - private int version = Matter.VERSION; - - public void write(DataOutputStream out) throws IOException { - out.writeUTF(author); - out.writeLong(createdAt); - out.writeShort(version); - } - - public void read(DataInputStream din) throws IOException { - setAuthor(din.readUTF()); - setCreatedAt(din.readLong()); - setVersion(din.readShort()); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/MatterPalette.java b/core/src/main/java/art/arcane/iris/util/project/matter/MatterPalette.java deleted file mode 100644 index 144282808..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/matter/MatterPalette.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.matter; - -import art.arcane.volmlib.util.data.DataPalette; -import art.arcane.volmlib.util.data.IOAdapter; -import art.arcane.volmlib.util.data.Varint; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; - -public class MatterPalette implements IOAdapter { - private final MatterSlice slice; - private final DataPalette palette; - - public MatterPalette(MatterSlice slice) { - this.slice = slice; - palette = new DataPalette(); - } - - public MatterPalette(MatterSlice slice, DataInputStream din) throws IOException { - this.slice = slice; - palette = DataPalette.getPalette(this, din); - } - - public void writeNode(T t, DataOutputStream dos) throws IOException { - Varint.writeUnsignedVarInt(palette.getIndex(t), dos); - } - - public T readNode(DataInputStream din) throws IOException { - return palette.get(Varint.readUnsignedVarInt(din)); - } - - public void writePalette(DataOutputStream dos) throws IOException { - palette.write(this, dos); - } - - @Override - public void write(T t, DataOutputStream dos) throws IOException { - slice.writeNode(t, dos); - } - - @Override - public T read(DataInputStream din) throws IOException { - return slice.readNode(din); - } - - public void assign(T b) { - palette.getIndex(b); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/MatterPlacer.java b/core/src/main/java/art/arcane/iris/util/project/matter/MatterPlacer.java deleted file mode 100644 index 49e4a954d..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/matter/MatterPlacer.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.matter; - -import art.arcane.iris.util.mantle.Mantle; - -public interface MatterPlacer { - int getHeight(int x, int z, boolean ignoreFluid); - - Mantle getMantle(); - - default void set(int x, int y, int z, T t) { - getMantle().set(x, y, z, t); - } - - default T get(int x, int y, int z, Class t) { - return getMantle().get(x, y, z, t); - } - - default void set(int x, int y, int z, Matter matter) { - for (MatterSlice i : matter.getSliceMap().values()) { - set(x, y, z, i); - } - } - - default void set(int x, int y, int z, MatterSlice slice) { - getMantle().set(x, y, z, slice); - } - - default int getHeight(int x, int z) { - return getHeight(x, z, true); - } - - default int getHeightOrFluid(int x, int z) { - return getHeight(x, z, false); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/MatterSlice.java b/core/src/main/java/art/arcane/iris/util/project/matter/MatterSlice.java deleted file mode 100644 index dc1cf7f78..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/matter/MatterSlice.java +++ /dev/null @@ -1,226 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.matter; - -import art.arcane.volmlib.util.matter.MatterFilter; -import art.arcane.volmlib.util.matter.MatterReader; -import art.arcane.volmlib.util.matter.MatterWriter; -import art.arcane.iris.engine.data.cache.Cache; -import art.arcane.volmlib.util.data.Varint; -import art.arcane.iris.util.data.palette.Palette; -import art.arcane.iris.util.data.palette.PaletteType; -import art.arcane.iris.util.hunk.Hunk; -import art.arcane.volmlib.util.hunk.bits.DataContainer; -import art.arcane.volmlib.util.hunk.bits.Writable; -import art.arcane.iris.util.hunk.storage.PaletteOrHunk; -import org.bukkit.Location; -import org.bukkit.World; -import org.bukkit.block.data.BlockData; -import org.bukkit.entity.Entity; -import org.bukkit.util.BlockVector; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; - -public interface MatterSlice extends Hunk, PaletteType, Writable { - Class getType(); - - Palette getGlobalPalette(); - - @Override - default void writePaletteNode(DataOutputStream dos, T s) throws IOException { - writeNode(s, dos); - } - - @Override - default void writeNodeData(DataOutputStream dos, T s) throws IOException { - writeNode(s, dos); - } - - @Override - default T readPaletteNode(DataInputStream din) throws IOException { - return readNode(din); - } - - @Override - default T readNodeData(DataInputStream din) throws IOException { - return readNode(din); - } - - default void applyFilter(MatterFilter filter) { - updateSync(filter::update); - } - - default void inject(MatterSlice slice) { - iterateSync(slice::set); - } - - default void forceInject(MatterSlice slice) { - inject((MatterSlice) slice); - } - - void writeNode(T b, DataOutputStream dos) throws IOException; - - T readNode(DataInputStream din) throws IOException; - - MatterWriter writeInto(Class mediumType); - - MatterReader readFrom(Class mediumType); - - default Class getClass(Object w) { - Class c = w.getClass(); - - if (w instanceof World) { - c = World.class; - } else if (w instanceof BlockData) { - c = BlockData.class; - } else if (w instanceof Entity) { - c = Entity.class; - } - - return c; - } - - default boolean writeInto(Location location) { - return writeInto(location.getWorld(), location.getBlockX(), location.getBlockY(), location.getBlockZ()); - } - - default boolean writeInto(W w, int x, int y, int z) { - MatterWriter injector = (MatterWriter) writeInto(getClass(w)); - - if (injector == null) { - return false; - } - - iterateSync((a, b, c, t) -> injector.writeMatter(w, t, a + x, b + y, c + z)); - - return true; - } - - default boolean readFrom(Location location) { - return readFrom(location.getWorld(), location.getBlockX(), location.getBlockY(), location.getBlockZ()); - } - - default boolean readFrom(W w, int x, int y, int z) { - MatterReader ejector = (MatterReader) readFrom(getClass(w)); - - if (ejector == null) { - return false; - } - - for (int i = x; i < x + getWidth(); i++) { - for (int j = y; j < y + getHeight(); j++) { - for (int k = z; k < z + getDepth(); k++) { - T v = ejector.readMatter(w, i, j, k); - - if (v != null) { - set(i - x, j - y, k - z, v); - } - } - } - } - - return true; - } - - default boolean canWrite(Class mediumType) { - return writeInto(mediumType) != null; - } - - default boolean canRead(Class mediumType) { - return readFrom(mediumType) != null; - } - - default int getBitsPer(int needed) { - int target = 1; - for (int i = 1; i < 8; i++) { - if (Math.pow(2, i) > needed) { - target = i; - break; - } - } - - return target; - } - - default void write(DataOutputStream dos) throws IOException { - dos.writeUTF(getType().getCanonicalName()); - - if ((this instanceof PaletteOrHunk f && f.isPalette())) { - f.palette().writeDos(dos); - return; - } - - int w = getWidth(); - int h = getHeight(); - MatterPalette palette = new MatterPalette(this); - iterateSync((x, y, z, b) -> palette.assign(b)); - palette.writePalette(dos); - dos.writeBoolean(isMapped()); - - if (isMapped()) { - Varint.writeUnsignedVarInt(getEntryCount(), dos); - iterateSyncIO((x, y, z, b) -> { - Varint.writeUnsignedVarInt(Cache.to1D(x, y, z, w, h), dos); - palette.writeNode(b, dos); - }); - } else { - iterateSyncIO((x, y, z, b) -> palette.writeNode(b, dos)); - } - } - - default void read(DataInputStream din) throws IOException { - if ((this instanceof PaletteOrHunk f && f.isPalette())) { - f.setPalette(new DataContainer<>(din, this)); - return; - } - - int w = getWidth(); - int h = getHeight(); - MatterPalette palette = new MatterPalette(this, din); - if (din.readBoolean()) { - int nodes = Varint.readUnsignedVarInt(din); - int[] pos; - - while (nodes-- > 0) { - pos = Cache.to3D(Varint.readUnsignedVarInt(din), w, h); - setRaw(pos[0], pos[1], pos[2], palette.readNode(din)); - } - } else { - iterateSyncIO((x, y, z, b) -> setRaw(x, y, z, palette.readNode(din))); - } - } - - default void rotateSliceInto(Matter n, double x, double y, double z) { - rotate(x, y, z, (_x, _y, _z) -> n.slice(getType())); - } - - default boolean containsKey(BlockVector v) { - return get(v.getBlockX(), v.getBlockY(), v.getBlockZ()) != null; - } - - default void put(BlockVector v, T d) { - set(v.getBlockX(), v.getBlockY(), v.getBlockZ(), d); - } - - default T get(BlockVector v) { - return get(v.getBlockX(), v.getBlockY(), v.getBlockZ()); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/MatterStructurePOI.java b/core/src/main/java/art/arcane/iris/util/project/matter/MatterStructurePOI.java deleted file mode 100644 index 29e685bcf..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/matter/MatterStructurePOI.java +++ /dev/null @@ -1,23 +0,0 @@ -package art.arcane.iris.util.matter; - -import lombok.Data; - -import java.util.Map; - -@Data -public class MatterStructurePOI { - - public static final MatterStructurePOI BURIED_TREASURE = new MatterStructurePOI("buried_treasure"); - - private static final MatterStructurePOI UNKNOWN = new MatterStructurePOI("unknown"); - private static final Map VALUES = Map.of( - "buried_treasure", BURIED_TREASURE - ); - - private final String type; - - public static MatterStructurePOI get(String id) { - MatterStructurePOI poi = VALUES.get(id); - return poi != null ? poi : new MatterStructurePOI(id); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/Sliced.java b/core/src/main/java/art/arcane/iris/util/project/matter/Sliced.java deleted file mode 100644 index 6e33cd0ec..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/matter/Sliced.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.matter; - -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; - -@Retention(RetentionPolicy.RUNTIME) -public @interface Sliced { - -} diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/WorldMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/WorldMatter.java index f209ba4df..38be2bdf7 100644 --- a/core/src/main/java/art/arcane/iris/util/project/matter/WorldMatter.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/WorldMatter.java @@ -21,11 +21,15 @@ package art.arcane.iris.util.matter; import art.arcane.iris.Iris; import art.arcane.iris.engine.object.TileData; import art.arcane.volmlib.util.data.Cuboid; +import art.arcane.volmlib.util.matter.IrisMatter; +import art.arcane.volmlib.util.matter.Matter; +import art.arcane.volmlib.util.matter.MatterEntityGroup; import org.bukkit.Location; import org.bukkit.block.data.BlockData; public class WorldMatter { public static void placeMatter(Matter matter, Location at) { + IrisMatterSupport.ensureRegistered(); if (matter.hasSlice(BlockData.class)) { matter.slice(BlockData.class).writeInto(at); } @@ -40,6 +44,7 @@ public class WorldMatter { } public static Matter createMatter(String author, Location a, Location b) { + IrisMatterSupport.ensureRegistered(); Cuboid c = new Cuboid(a, b); Matter s = new IrisMatter(c.getSizeX(), c.getSizeY(), c.getSizeZ()); Iris.info(s.getWidth() + " " + s.getHeight() + " " + s.getDepth()); diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/slices/BiomeInjectMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/BiomeInjectMatter.java deleted file mode 100644 index 2ff7ceb5b..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/matter/slices/BiomeInjectMatter.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.matter.slices; - -import art.arcane.iris.util.data.palette.Palette; -import art.arcane.iris.util.matter.MatterBiomeInject; -import art.arcane.iris.util.matter.Sliced; -import org.bukkit.block.Biome; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; - -@Sliced -public class BiomeInjectMatter extends RawMatter { - public BiomeInjectMatter() { - this(1, 1, 1); - } - - public BiomeInjectMatter(int width, int height, int depth) { - super(width, height, depth, MatterBiomeInject.class); - } - - public static MatterBiomeInject get(Biome biome) { - return get(false, 0, biome); - } - - public static MatterBiomeInject get(int customBiome) { - return get(true, customBiome, null); - } - - public static MatterBiomeInject get(boolean custom, int customBiome, Biome biome) { - return new MatterBiomeInject(custom, customBiome, biome); - } - - @Override - public Palette getGlobalPalette() { - return null; - } - - @Override - public void writeNode(MatterBiomeInject b, DataOutputStream dos) throws IOException { - dos.writeBoolean(b.isCustom()); - - if (b.isCustom()) { - dos.writeShort(b.getBiomeId()); - } else { - dos.writeByte(b.getBiome().ordinal()); - } - } - - @Override - public MatterBiomeInject readNode(DataInputStream din) throws IOException { - boolean b = din.readBoolean(); - int id = b ? din.readShort() : 0; - Biome biome = !b ? Biome.values()[din.readByte()] : Biome.PLAINS; - - return new MatterBiomeInject(b, id, biome); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/slices/BlockMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/BlockMatter.java deleted file mode 100644 index b1a0a3174..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/matter/slices/BlockMatter.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.matter.slices; - -import art.arcane.iris.util.data.B; -import art.arcane.iris.util.data.IrisCustomData; -import art.arcane.iris.util.data.palette.Palette; -import art.arcane.iris.util.matter.Sliced; -import org.bukkit.Material; -import org.bukkit.World; -import org.bukkit.block.data.BlockData; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; - -@Sliced -public class BlockMatter extends RawMatter { - public static final BlockData AIR = Material.AIR.createBlockData(); - - public BlockMatter() { - this(1, 1, 1); - } - - public BlockMatter(int width, int height, int depth) { - super(width, height, depth, BlockData.class); - registerWriter(World.class, ((w, d, x, y, z) -> { - if (d instanceof IrisCustomData c) - w.getBlockAt(x, y, z).setBlockData(c.getBase()); - else w.getBlockAt(x, y, z).setBlockData(d); - })); - registerReader(World.class, (w, x, y, z) -> { - BlockData d = w.getBlockAt(x, y, z).getBlockData(); - return d.getMaterial().isAir() ? null : d; - }); - } - - @Override - public Palette getGlobalPalette() { - return null; - } - - @Override - public void writeNode(BlockData b, DataOutputStream dos) throws IOException { - dos.writeUTF(b.getAsString(true)); - } - - @Override - public BlockData readNode(DataInputStream din) throws IOException { - return B.get(din.readUTF()); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/slices/BooleanMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/BooleanMatter.java deleted file mode 100644 index 194c88d39..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/matter/slices/BooleanMatter.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.matter.slices; - -import art.arcane.iris.util.data.palette.Palette; -import art.arcane.iris.util.matter.Sliced; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; - -@Sliced -public class BooleanMatter extends RawMatter { - public BooleanMatter() { - this(1, 1, 1); - } - - public BooleanMatter(int width, int height, int depth) { - super(width, height, depth, Boolean.class); - } - - @Override - public Palette getGlobalPalette() { - return null; - } - - @Override - public void writeNode(Boolean b, DataOutputStream dos) throws IOException { - dos.writeBoolean(b); - } - - @Override - public Boolean readNode(DataInputStream din) throws IOException { - return din.readBoolean(); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/slices/CavernMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/CavernMatter.java deleted file mode 100644 index d91abe241..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/matter/slices/CavernMatter.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.matter.slices; - -import art.arcane.iris.util.data.palette.Palette; -import art.arcane.volmlib.util.matter.MatterCavern; -import art.arcane.iris.util.matter.Sliced; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; - -@Sliced -public class CavernMatter extends RawMatter { - public static final MatterCavern EMPTY = new MatterCavern(false, "", (byte) 0); - public static final MatterCavern BASIC = new MatterCavern(true, "", (byte) 0); - - public CavernMatter() { - this(1, 1, 1); - } - - public CavernMatter(int width, int height, int depth) { - super(width, height, depth, MatterCavern.class); - } - - public static MatterCavern get(String customBiome, int liquid) { - return new MatterCavern(true, customBiome, (byte) liquid); - } - - @Override - public Palette getGlobalPalette() { - return null; - } - - @Override - public void writeNode(MatterCavern b, DataOutputStream dos) throws IOException { - dos.writeBoolean(b.isCavern()); - dos.writeUTF(b.getCustomBiome()); - dos.writeByte(b.getLiquid()); - } - - @Override - public MatterCavern readNode(DataInputStream din) throws IOException { - boolean b = din.readBoolean(); - String v = din.readUTF(); - byte l = din.readByte(); - - return new MatterCavern(b, v, l); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/slices/CompoundMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/CompoundMatter.java deleted file mode 100644 index 6d2316e95..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/matter/slices/CompoundMatter.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.matter.slices; - -import art.arcane.iris.util.matter.Sliced; -import art.arcane.volmlib.util.nbt.tag.CompoundTag; - -@Sliced -public class CompoundMatter extends NBTMatter { - public static final CompoundTag EMPTY = new CompoundTag(); - - public CompoundMatter() { - this(1, 1, 1); - } - - public CompoundMatter(int width, int height, int depth) { - super(width, height, depth, CompoundTag.class, EMPTY); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/slices/EntityMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/EntityMatter.java index 3b814a967..010c5dcd0 100644 --- a/core/src/main/java/art/arcane/iris/util/project/matter/slices/EntityMatter.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/slices/EntityMatter.java @@ -23,11 +23,12 @@ import art.arcane.iris.engine.object.IrisPosition; import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.data.Varint; -import art.arcane.iris.util.data.palette.Palette; +import art.arcane.volmlib.util.data.palette.Palette; import art.arcane.volmlib.util.matter.MatterEntity; -import art.arcane.iris.util.matter.MatterEntityGroup; +import art.arcane.volmlib.util.matter.MatterEntityGroup; import art.arcane.volmlib.util.matter.MatterReader; -import art.arcane.iris.util.matter.Sliced; +import art.arcane.volmlib.util.matter.Sliced; +import art.arcane.volmlib.util.matter.slices.RawMatter; import art.arcane.volmlib.util.nbt.io.NBTUtil; import art.arcane.volmlib.util.nbt.tag.CompoundTag; import org.bukkit.Location; diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/slices/IdentifierMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/IdentifierMatter.java index 93c1a1b24..cc9699fc7 100644 --- a/core/src/main/java/art/arcane/iris/util/project/matter/slices/IdentifierMatter.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/slices/IdentifierMatter.java @@ -1,8 +1,9 @@ package art.arcane.iris.util.matter.slices; import art.arcane.iris.core.link.Identifier; -import art.arcane.iris.util.data.palette.Palette; -import art.arcane.iris.util.matter.Sliced; +import art.arcane.volmlib.util.data.palette.Palette; +import art.arcane.volmlib.util.matter.Sliced; +import art.arcane.volmlib.util.matter.slices.RawMatter; import java.io.DataInputStream; import java.io.DataOutputStream; diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/slices/IntMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/IntMatter.java deleted file mode 100644 index eb3ce286e..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/matter/slices/IntMatter.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.matter.slices; - -import art.arcane.volmlib.util.data.Varint; -import art.arcane.iris.util.data.palette.Palette; -import art.arcane.iris.util.matter.Sliced; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; - -@Sliced -public class IntMatter extends RawMatter { - public IntMatter() { - this(1, 1, 1); - } - - public IntMatter(int width, int height, int depth) { - super(width, height, depth, Integer.class); - } - - @Override - public Palette getGlobalPalette() { - return null; - } - - @Override - public void writeNode(Integer b, DataOutputStream dos) throws IOException { - Varint.writeSignedVarInt(b, dos); - } - - @Override - public Integer readNode(DataInputStream din) throws IOException { - return Varint.readSignedVarInt(din); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/slices/JigsawPieceMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/JigsawPieceMatter.java deleted file mode 100644 index ae6bcbb2a..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/matter/slices/JigsawPieceMatter.java +++ /dev/null @@ -1,35 +0,0 @@ -package art.arcane.iris.util.matter.slices; - -import art.arcane.iris.util.data.palette.Palette; -import art.arcane.iris.util.matter.Sliced; -import art.arcane.iris.util.matter.slices.container.JigsawPieceContainer; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; - -@Sliced -public class JigsawPieceMatter extends RawMatter { - public JigsawPieceMatter() { - this(1,1,1); - } - - public JigsawPieceMatter(int width, int height, int depth) { - super(width, height, depth, JigsawPieceContainer.class); - } - - @Override - public Palette getGlobalPalette() { - return null; - } - - @Override - public void writeNode(JigsawPieceContainer b, DataOutputStream dos) throws IOException { - dos.writeUTF(b.getLoadKey()); - } - - @Override - public JigsawPieceContainer readNode(DataInputStream din) throws IOException { - return new JigsawPieceContainer(din.readUTF()); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/slices/JigsawStructureMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/JigsawStructureMatter.java deleted file mode 100644 index 228ed49a6..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/matter/slices/JigsawStructureMatter.java +++ /dev/null @@ -1,35 +0,0 @@ -package art.arcane.iris.util.matter.slices; - -import art.arcane.iris.util.data.palette.Palette; -import art.arcane.iris.util.matter.Sliced; -import art.arcane.iris.util.matter.slices.container.JigsawStructureContainer; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; - -@Sliced -public class JigsawStructureMatter extends RawMatter { - public JigsawStructureMatter() { - this(1,1,1); - } - - public JigsawStructureMatter(int width, int height, int depth) { - super(width, height, depth, JigsawStructureContainer.class); - } - - @Override - public Palette getGlobalPalette() { - return null; - } - - @Override - public void writeNode(JigsawStructureContainer b, DataOutputStream dos) throws IOException { - dos.writeUTF(b.getLoadKey()); - } - - @Override - public JigsawStructureContainer readNode(DataInputStream din) throws IOException { - return new JigsawStructureContainer(din.readUTF()); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/slices/JigsawStructuresMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/JigsawStructuresMatter.java deleted file mode 100644 index 0594baabe..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/matter/slices/JigsawStructuresMatter.java +++ /dev/null @@ -1,35 +0,0 @@ -package art.arcane.iris.util.matter.slices; - -import art.arcane.iris.util.data.palette.Palette; -import art.arcane.iris.util.matter.Sliced; -import art.arcane.iris.util.matter.slices.container.JigsawStructuresContainer; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; - -@Sliced -public class JigsawStructuresMatter extends RawMatter { - public JigsawStructuresMatter() { - this(1, 1, 1); - } - - public JigsawStructuresMatter(int width, int height, int depth) { - super(width, height, depth, JigsawStructuresContainer.class); - } - - @Override - public Palette getGlobalPalette() { - return null; - } - - @Override - public void writeNode(JigsawStructuresContainer b, DataOutputStream dos) throws IOException { - b.write(dos); - } - - @Override - public JigsawStructuresContainer readNode(DataInputStream din) throws IOException { - return new JigsawStructuresContainer(din); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/slices/LongMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/LongMatter.java deleted file mode 100644 index 904cdf340..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/matter/slices/LongMatter.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.matter.slices; - -import art.arcane.volmlib.util.data.Varint; -import art.arcane.iris.util.data.palette.Palette; -import art.arcane.iris.util.matter.Sliced; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; - -@Sliced -public class LongMatter extends RawMatter { - public LongMatter() { - this(1, 1, 1); - } - - public LongMatter(int width, int height, int depth) { - super(width, height, depth, Long.class); - } - - @Override - public Palette getGlobalPalette() { - return null; - } - - @Override - public void writeNode(Long b, DataOutputStream dos) throws IOException { - Varint.writeSignedVarLong(b, dos); - } - - @Override - public Long readNode(DataInputStream din) throws IOException { - return Varint.readSignedVarLong(din); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/slices/MarkerMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/MarkerMatter.java deleted file mode 100644 index c8d2cf562..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/matter/slices/MarkerMatter.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.matter.slices; - -import art.arcane.volmlib.util.collection.KMap; -import art.arcane.iris.util.data.palette.Palette; -import art.arcane.volmlib.util.matter.MatterMarker; -import art.arcane.iris.util.matter.Sliced; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; - -@Sliced -public class MarkerMatter extends RawMatter { - public static final MatterMarker NONE = new MatterMarker("none"); - public static final MatterMarker CAVE_FLOOR = new MatterMarker("cave_floor"); - public static final MatterMarker CAVE_CEILING = new MatterMarker("cave_ceiling"); - private static final KMap markers = new KMap<>(); - - public MarkerMatter() { - this(1, 1, 1); - } - - public MarkerMatter(int width, int height, int depth) { - super(width, height, depth, MatterMarker.class); - } - - @Override - public Palette getGlobalPalette() { - return null; - } - - @Override - public void writeNode(MatterMarker b, DataOutputStream dos) throws IOException { - dos.writeUTF(b.getTag()); - } - - @Override - public MatterMarker readNode(DataInputStream din) throws IOException { - return markers.computeIfAbsent(din.readUTF(), MatterMarker::new); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/slices/NBTMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/NBTMatter.java deleted file mode 100644 index 9e57a0754..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/matter/slices/NBTMatter.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.matter.slices; - -import art.arcane.iris.util.data.palette.Palette; -import art.arcane.volmlib.util.nbt.io.NBTUtil; -import art.arcane.volmlib.util.nbt.tag.Tag; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; - -public class NBTMatter> extends RawMatter { - public NBTMatter(int width, int height, int depth, Class c, T e) { - super(width, height, depth, c); - } - - @Override - public Palette getGlobalPalette() { - return null; - } - - @Override - public void writeNode(T b, DataOutputStream dos) throws IOException { - NBTUtil.write(b, dos, false); - } - - @Override - public T readNode(DataInputStream din) throws IOException { - return (T) NBTUtil.read(din, false).getTag(); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/slices/RawMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/RawMatter.java deleted file mode 100644 index 2c7628b7d..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/matter/slices/RawMatter.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.matter.slices; - -import art.arcane.volmlib.util.collection.KMap; -import art.arcane.iris.util.hunk.Hunk; -import art.arcane.iris.util.hunk.storage.PaletteOrHunk; -import art.arcane.volmlib.util.matter.MatterReader; -import art.arcane.iris.util.matter.MatterSlice; -import art.arcane.volmlib.util.matter.MatterWriter; -import lombok.Getter; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; - -public abstract class RawMatter extends PaletteOrHunk implements MatterSlice { - protected final KMap, MatterWriter> writers; - protected final KMap, MatterReader> readers; - @Getter - private final Class type; - - public RawMatter(int width, int height, int depth, Class type) { - super(width, height, depth, true, () -> Hunk.adapt(new art.arcane.volmlib.util.hunk.storage.MappedHunk<>(width, height, depth))); - writers = new KMap<>(); - readers = new KMap<>(); - this.type = type; - } - - protected void registerWriter(Class mediumType, MatterWriter injector) { - writers.put(mediumType, injector); - } - - protected void registerReader(Class mediumType, MatterReader injector) { - readers.put(mediumType, injector); - } - - @Override - public MatterWriter writeInto(Class mediumType) { - return (MatterWriter) writers.get(mediumType); - } - - @Override - public MatterReader readFrom(Class mediumType) { - return (MatterReader) readers.get(mediumType); - } - - @Override - public abstract void writeNode(T b, DataOutputStream dos) throws IOException; - - @Override - public abstract T readNode(DataInputStream din) throws IOException; -} diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/slices/RegistryMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/RegistryMatter.java index 0e7ed8704..4a65f06f1 100644 --- a/core/src/main/java/art/arcane/iris/util/project/matter/slices/RegistryMatter.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/slices/RegistryMatter.java @@ -20,7 +20,8 @@ package art.arcane.iris.util.matter.slices; import art.arcane.iris.core.loader.IrisRegistrant; import art.arcane.iris.util.context.IrisContext; -import art.arcane.iris.util.data.palette.Palette; +import art.arcane.volmlib.util.data.palette.Palette; +import art.arcane.volmlib.util.matter.slices.RawMatter; import java.io.DataInputStream; import java.io.DataOutputStream; diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/slices/SpawnerMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/SpawnerMatter.java index c607d1f7f..0315072f2 100644 --- a/core/src/main/java/art/arcane/iris/util/project/matter/slices/SpawnerMatter.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/slices/SpawnerMatter.java @@ -19,7 +19,7 @@ package art.arcane.iris.util.matter.slices; import art.arcane.iris.engine.object.IrisSpawner; -import art.arcane.iris.util.matter.Sliced; +import art.arcane.volmlib.util.matter.Sliced; @Sliced public class SpawnerMatter extends RegistryMatter { diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/slices/StringMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/StringMatter.java deleted file mode 100644 index 8e0f6b954..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/matter/slices/StringMatter.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.matter.slices; - -import art.arcane.iris.util.data.palette.Palette; -import art.arcane.iris.util.matter.Sliced; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; - -@Sliced -public class StringMatter extends RawMatter { - public StringMatter() { - this(1, 1, 1); - } - - public StringMatter(int width, int height, int depth) { - super(width, height, depth, String.class); - } - - @Override - public Palette getGlobalPalette() { - return null; - } - - @Override - public void writeNode(String b, DataOutputStream dos) throws IOException { - dos.writeUTF(b); - } - - @Override - public String readNode(DataInputStream din) throws IOException { - return din.readUTF(); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/slices/StructurePOIMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/StructurePOIMatter.java deleted file mode 100644 index 64b2c8aed..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/matter/slices/StructurePOIMatter.java +++ /dev/null @@ -1,30 +0,0 @@ -package art.arcane.iris.util.matter.slices; - -import art.arcane.iris.util.data.palette.Palette; -import art.arcane.iris.util.matter.MatterStructurePOI; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; - -public class StructurePOIMatter extends RawMatter { - - public StructurePOIMatter() { - super(1, 1, 1, MatterStructurePOI.class); - } - - @Override - public Palette getGlobalPalette() { - return null; - } - - @Override - public void writeNode(MatterStructurePOI b, DataOutputStream dos) throws IOException { - dos.writeUTF(b.getType()); - } - - @Override - public MatterStructurePOI readNode(DataInputStream din) throws IOException { - return MatterStructurePOI.get(din.readUTF()); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/slices/TileMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/TileMatter.java index 25177bbd6..9c3ca14a4 100644 --- a/core/src/main/java/art/arcane/iris/util/project/matter/slices/TileMatter.java +++ b/core/src/main/java/art/arcane/iris/util/project/matter/slices/TileMatter.java @@ -19,9 +19,10 @@ package art.arcane.iris.util.matter.slices; import art.arcane.iris.engine.object.TileData; -import art.arcane.iris.util.data.palette.Palette; -import art.arcane.iris.util.matter.Sliced; import art.arcane.iris.util.matter.TileWrapper; +import art.arcane.volmlib.util.data.palette.Palette; +import art.arcane.volmlib.util.matter.Sliced; +import art.arcane.volmlib.util.matter.slices.RawMatter; import org.bukkit.Location; import org.bukkit.World; diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/slices/UpdateMatter.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/UpdateMatter.java deleted file mode 100644 index 1ee9254cb..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/matter/slices/UpdateMatter.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2022 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package art.arcane.iris.util.matter.slices; - -import art.arcane.iris.util.data.palette.GlobalPalette; -import art.arcane.iris.util.data.palette.Palette; -import art.arcane.volmlib.util.matter.MatterUpdate; -import art.arcane.iris.util.matter.Sliced; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; - -@Sliced -public class UpdateMatter extends RawMatter { - public static final MatterUpdate ON = new MatterUpdate(true); - public static final MatterUpdate OFF = new MatterUpdate(false); - private static final Palette GLOBAL = new GlobalPalette<>(OFF, ON); - - public UpdateMatter() { - this(1, 1, 1); - } - - public UpdateMatter(int width, int height, int depth) { - super(width, height, depth, MatterUpdate.class); - } - - @Override - public Palette getGlobalPalette() { - return GLOBAL; - } - - @Override - public void writeNode(MatterUpdate b, DataOutputStream dos) throws IOException { - dos.writeBoolean(b.isUpdate()); - } - - @Override - public MatterUpdate readNode(DataInputStream din) throws IOException { - return din.readBoolean() ? ON : OFF; - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/slices/container/JigsawPieceContainer.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/container/JigsawPieceContainer.java deleted file mode 100644 index 08df33c88..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/matter/slices/container/JigsawPieceContainer.java +++ /dev/null @@ -1,13 +0,0 @@ -package art.arcane.iris.util.matter.slices.container; - -import art.arcane.iris.engine.object.IrisJigsawPiece; - -public class JigsawPieceContainer extends RegistrantContainer { - public JigsawPieceContainer(String loadKey) { - super(IrisJigsawPiece.class, loadKey); - } - - public static JigsawPieceContainer toContainer(IrisJigsawPiece piece) { - return new JigsawPieceContainer(piece.getLoadKey()); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/slices/container/JigsawStructureContainer.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/container/JigsawStructureContainer.java deleted file mode 100644 index 940e21413..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/matter/slices/container/JigsawStructureContainer.java +++ /dev/null @@ -1,13 +0,0 @@ -package art.arcane.iris.util.matter.slices.container; - -import art.arcane.iris.engine.object.IrisJigsawStructure; - -public class JigsawStructureContainer extends RegistrantContainer { - public JigsawStructureContainer(String loadKey) { - super(IrisJigsawStructure.class, loadKey); - } - - public static JigsawStructureContainer toContainer(IrisJigsawStructure structure) { - return new JigsawStructureContainer(structure.getLoadKey()); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/slices/container/JigsawStructuresContainer.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/container/JigsawStructuresContainer.java deleted file mode 100644 index 39c6195aa..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/matter/slices/container/JigsawStructuresContainer.java +++ /dev/null @@ -1,62 +0,0 @@ -package art.arcane.iris.util.matter.slices.container; - -import art.arcane.iris.engine.object.IrisJigsawStructure; -import art.arcane.volmlib.util.collection.KList; -import art.arcane.volmlib.util.collection.KMap; -import art.arcane.volmlib.util.documentation.ChunkCoordinates; -import art.arcane.iris.util.math.Position2; -import org.jetbrains.annotations.Unmodifiable; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.Set; - -public class JigsawStructuresContainer { - private final Map> map = new KMap<>(); - - public JigsawStructuresContainer() {} - - public JigsawStructuresContainer(DataInputStream din) throws IOException { - int s0 = din.readInt(); - for (int i = 0; i < s0; i++) { - int s1 = din.readInt(); - KList list = new KList<>(s1); - for (int j = 0; j < s1; j++) { - list.add(new Position2(din.readInt(), din.readInt())); - } - map.put(din.readUTF(), list); - } - } - - public void write(DataOutputStream dos) throws IOException { - dos.writeInt(map.size()); - for (String key : map.keySet()) { - List list = map.get(key); - dos.writeInt(list.size()); - for (Position2 pos : list) { - dos.writeInt(pos.getX()); - dos.writeInt(pos.getZ()); - } - dos.writeUTF(key); - } - } - - @Unmodifiable - public Set getStructures() { - return Collections.unmodifiableSet(map.keySet()); - } - - @Unmodifiable - public List getPositions(String structure) { - return Collections.unmodifiableList(map.get(structure)); - } - - @ChunkCoordinates - public void add(IrisJigsawStructure structure, Position2 pos) { - map.computeIfAbsent(structure.getLoadKey(), k -> new KList<>()).add(pos); - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/matter/slices/container/RegistrantContainer.java b/core/src/main/java/art/arcane/iris/util/project/matter/slices/container/RegistrantContainer.java deleted file mode 100644 index c61f7fc48..000000000 --- a/core/src/main/java/art/arcane/iris/util/project/matter/slices/container/RegistrantContainer.java +++ /dev/null @@ -1,22 +0,0 @@ -package art.arcane.iris.util.matter.slices.container; - -import art.arcane.iris.core.loader.IrisData; -import art.arcane.iris.core.loader.IrisRegistrant; - -public abstract class RegistrantContainer { - private final Class type; - private final String loadKey; - - public RegistrantContainer(Class type, String loadKey) { - this.type = type; - this.loadKey = loadKey; - } - - public T load(IrisData data) { - return (T) data.getLoaders().get(type).load(loadKey); - } - - public String getLoadKey() { - return loadKey; - } -} diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/CachedNoiseMap.java b/core/src/main/java/art/arcane/iris/util/project/noise/CachedNoiseMap.java index c685169ee..414a04579 100644 --- a/core/src/main/java/art/arcane/iris/util/project/noise/CachedNoiseMap.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/CachedNoiseMap.java @@ -19,9 +19,9 @@ package art.arcane.iris.util.noise; import art.arcane.volmlib.util.hunk.bits.Writable; -import art.arcane.iris.util.matter.IrisMatter; -import art.arcane.iris.util.matter.Matter; -import art.arcane.iris.util.matter.MatterSlice; +import art.arcane.volmlib.util.matter.IrisMatter; +import art.arcane.volmlib.util.matter.Matter; +import art.arcane.volmlib.util.matter.MatterSlice; import java.io.DataInputStream; import java.io.DataOutputStream; diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/FastNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/FastNoise.java index fcaae1c98..b7a039a5b 100644 --- a/core/src/main/java/art/arcane/iris/util/project/noise/FastNoise.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/FastNoise.java @@ -21,7 +21,6 @@ package art.arcane.iris.util.noise; import art.arcane.volmlib.util.math.Vector2f; import art.arcane.volmlib.util.math.Vector3f; import art.arcane.iris.util.stream.ProceduralStream; - public class FastNoise { private static final Float2[] GRAD_2D = {new Float2(-1, -1), new Float2(1, -1), new Float2(-1, 1), new Float2(1, 1), new Float2(0, -1), new Float2(-1, 0), new Float2(0, 1), new Float2(1, 0), }; diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/FractalBillowPerlinNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/FractalBillowPerlinNoise.java index 1526e98c6..43121a234 100644 --- a/core/src/main/java/art/arcane/iris/util/project/noise/FractalBillowPerlinNoise.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/FractalBillowPerlinNoise.java @@ -20,7 +20,6 @@ package art.arcane.iris.util.noise; import art.arcane.volmlib.util.math.RNG; import art.arcane.iris.util.noise.FastNoiseDouble.FractalType; - public class FractalBillowPerlinNoise implements NoiseGenerator, OctaveNoise { private final FastNoiseDouble n; diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/FractalBillowSimplexNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/FractalBillowSimplexNoise.java index ed5deb3e7..0e0809d0d 100644 --- a/core/src/main/java/art/arcane/iris/util/project/noise/FractalBillowSimplexNoise.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/FractalBillowSimplexNoise.java @@ -20,7 +20,6 @@ package art.arcane.iris.util.noise; import art.arcane.volmlib.util.math.RNG; import art.arcane.iris.util.noise.FastNoiseDouble.FractalType; - public class FractalBillowSimplexNoise implements NoiseGenerator, OctaveNoise { private final FastNoiseDouble n; diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/FractalCubicNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/FractalCubicNoise.java index a3efdb13d..50881a56c 100644 --- a/core/src/main/java/art/arcane/iris/util/project/noise/FractalCubicNoise.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/FractalCubicNoise.java @@ -20,7 +20,6 @@ package art.arcane.iris.util.noise; import art.arcane.volmlib.util.math.RNG; import art.arcane.iris.util.noise.FastNoiseDouble.FractalType; - public class FractalCubicNoise implements NoiseGenerator { private final FastNoiseDouble n; diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/FractalFBMSimplexNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/FractalFBMSimplexNoise.java index e6903e1b0..8c9c6e427 100644 --- a/core/src/main/java/art/arcane/iris/util/project/noise/FractalFBMSimplexNoise.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/FractalFBMSimplexNoise.java @@ -20,7 +20,6 @@ package art.arcane.iris.util.noise; import art.arcane.volmlib.util.math.RNG; import art.arcane.iris.util.noise.FastNoiseDouble.FractalType; - public class FractalFBMSimplexNoise implements NoiseGenerator, OctaveNoise { private final FastNoiseDouble n; diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/FractalRigidMultiSimplexNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/FractalRigidMultiSimplexNoise.java index 9e869f596..1cd8708f5 100644 --- a/core/src/main/java/art/arcane/iris/util/project/noise/FractalRigidMultiSimplexNoise.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/FractalRigidMultiSimplexNoise.java @@ -20,7 +20,6 @@ package art.arcane.iris.util.noise; import art.arcane.volmlib.util.math.RNG; import art.arcane.iris.util.noise.FastNoiseDouble.FractalType; - public class FractalRigidMultiSimplexNoise implements NoiseGenerator, OctaveNoise { private final FastNoiseDouble n; diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/InterpolatedNoise.java b/core/src/main/java/art/arcane/iris/util/project/noise/InterpolatedNoise.java index 96fd11bcb..0dd6d6967 100644 --- a/core/src/main/java/art/arcane/iris/util/project/noise/InterpolatedNoise.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/InterpolatedNoise.java @@ -21,7 +21,6 @@ package art.arcane.iris.util.noise; import art.arcane.volmlib.util.function.NoiseProvider; import art.arcane.iris.util.interpolation.InterpolationMethod; import art.arcane.iris.util.interpolation.IrisInterpolation; - public class InterpolatedNoise implements NoiseGenerator { private final InterpolationMethod method; private final NoiseProvider p; diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/NoiseGenerator.java b/core/src/main/java/art/arcane/iris/util/project/noise/NoiseGenerator.java index 9dbb0907f..a556aef99 100644 --- a/core/src/main/java/art/arcane/iris/util/project/noise/NoiseGenerator.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/NoiseGenerator.java @@ -20,7 +20,6 @@ package art.arcane.iris.util.noise; import art.arcane.iris.util.stream.ProceduralStream; import art.arcane.iris.util.stream.interpolation.Interpolated; - public interface NoiseGenerator { double noise(double x); diff --git a/core/src/main/java/art/arcane/iris/util/project/noise/NoiseType.java b/core/src/main/java/art/arcane/iris/util/project/noise/NoiseType.java index 6443503dc..617ba8d86 100644 --- a/core/src/main/java/art/arcane/iris/util/project/noise/NoiseType.java +++ b/core/src/main/java/art/arcane/iris/util/project/noise/NoiseType.java @@ -20,7 +20,6 @@ package art.arcane.iris.util.noise; import art.arcane.iris.core.IrisSettings; import art.arcane.iris.util.interpolation.InterpolationMethod; - public enum NoiseType { WHITE(WhiteNoise::new), WHITE_BILINEAR((s) -> new InterpolatedNoise(s, WHITE, InterpolationMethod.BILINEAR)), diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/BasicStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/BasicStream.java index 19d42f407..defdc22c5 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/BasicStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/BasicStream.java @@ -19,7 +19,6 @@ package art.arcane.iris.util.stream; import art.arcane.volmlib.util.stream.BasicLayer; - public abstract class BasicStream extends BasicLayer implements ProceduralStream { private final ProceduralStream source; diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/AddingStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/AddingStream.java index 185c65aa4..ed2b17dca 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/AddingStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/AddingStream.java @@ -22,7 +22,6 @@ import art.arcane.volmlib.util.function.Function2; import art.arcane.volmlib.util.function.Function3; import art.arcane.iris.util.stream.BasicStream; import art.arcane.iris.util.stream.ProceduralStream; - public class AddingStream extends BasicStream { private final Function3 add; diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/ClampedStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/ClampedStream.java index e7542129f..6a0f3fb2f 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/ClampedStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/ClampedStream.java @@ -20,7 +20,6 @@ package art.arcane.iris.util.stream.arithmetic; import art.arcane.iris.util.stream.BasicStream; import art.arcane.iris.util.stream.ProceduralStream; - public class ClampedStream extends BasicStream implements ProceduralStream { private final double min; private final double max; diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/CoordinateBitShiftLeftStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/CoordinateBitShiftLeftStream.java index 00f1d3af7..83a4bd87f 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/CoordinateBitShiftLeftStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/CoordinateBitShiftLeftStream.java @@ -20,7 +20,6 @@ package art.arcane.iris.util.stream.arithmetic; import art.arcane.iris.util.stream.BasicStream; import art.arcane.iris.util.stream.ProceduralStream; - public class CoordinateBitShiftLeftStream extends BasicStream implements ProceduralStream { private final int amount; diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/CoordinateBitShiftRightStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/CoordinateBitShiftRightStream.java index 4aada456c..d9e07e5c4 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/CoordinateBitShiftRightStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/CoordinateBitShiftRightStream.java @@ -20,7 +20,6 @@ package art.arcane.iris.util.stream.arithmetic; import art.arcane.iris.util.stream.BasicStream; import art.arcane.iris.util.stream.ProceduralStream; - public class CoordinateBitShiftRightStream extends BasicStream implements ProceduralStream { private final int amount; diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/DividingStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/DividingStream.java index 1c36dbcaa..8fba9c424 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/DividingStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/DividingStream.java @@ -22,7 +22,6 @@ import art.arcane.volmlib.util.function.Function2; import art.arcane.volmlib.util.function.Function3; import art.arcane.iris.util.stream.BasicStream; import art.arcane.iris.util.stream.ProceduralStream; - public class DividingStream extends BasicStream implements ProceduralStream { private final Function3 add; diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/FittedStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/FittedStream.java index 157601a14..1a2098f5e 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/FittedStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/FittedStream.java @@ -20,7 +20,6 @@ package art.arcane.iris.util.stream.arithmetic; import art.arcane.iris.util.stream.BasicStream; import art.arcane.iris.util.stream.ProceduralStream; - public class FittedStream extends BasicStream implements ProceduralStream { private final double min; private final double max; diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/MaxingStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/MaxingStream.java index 4ad2a44c9..1e0cbbce3 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/MaxingStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/MaxingStream.java @@ -22,7 +22,6 @@ import art.arcane.volmlib.util.function.Function2; import art.arcane.volmlib.util.function.Function3; import art.arcane.iris.util.stream.BasicStream; import art.arcane.iris.util.stream.ProceduralStream; - public class MaxingStream extends BasicStream { private final Function3 add; diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/MinningStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/MinningStream.java index e646f8600..2dffa623e 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/MinningStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/MinningStream.java @@ -22,7 +22,6 @@ import art.arcane.volmlib.util.function.Function2; import art.arcane.volmlib.util.function.Function3; import art.arcane.iris.util.stream.BasicStream; import art.arcane.iris.util.stream.ProceduralStream; - public class MinningStream extends BasicStream { private final Function3 add; diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/ModuloStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/ModuloStream.java index fe9b80b9c..4a8c49c4b 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/ModuloStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/ModuloStream.java @@ -22,7 +22,6 @@ import art.arcane.volmlib.util.function.Function2; import art.arcane.volmlib.util.function.Function3; import art.arcane.iris.util.stream.BasicStream; import art.arcane.iris.util.stream.ProceduralStream; - public class ModuloStream extends BasicStream { private final Function3 add; diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/MultiplyingStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/MultiplyingStream.java index b584df2cf..479319eea 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/MultiplyingStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/MultiplyingStream.java @@ -22,7 +22,6 @@ import art.arcane.volmlib.util.function.Function2; import art.arcane.volmlib.util.function.Function3; import art.arcane.iris.util.stream.BasicStream; import art.arcane.iris.util.stream.ProceduralStream; - public class MultiplyingStream extends BasicStream { private final Function3 add; diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/OffsetStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/OffsetStream.java index 52e398a8f..6f36401fc 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/OffsetStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/OffsetStream.java @@ -20,7 +20,6 @@ package art.arcane.iris.util.stream.arithmetic; import art.arcane.iris.util.stream.BasicStream; import art.arcane.iris.util.stream.ProceduralStream; - public class OffsetStream extends BasicStream implements ProceduralStream { private final double ox; private final double oy; diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/RadialStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/RadialStream.java index 18e85057c..2ae50514f 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/RadialStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/RadialStream.java @@ -20,7 +20,6 @@ package art.arcane.iris.util.stream.arithmetic; import art.arcane.iris.util.stream.BasicStream; import art.arcane.iris.util.stream.ProceduralStream; - public class RadialStream extends BasicStream implements ProceduralStream { private final double scale; diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/RoundingDoubleStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/RoundingDoubleStream.java index fe233dcfe..746100894 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/RoundingDoubleStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/RoundingDoubleStream.java @@ -20,7 +20,6 @@ package art.arcane.iris.util.stream.arithmetic; import art.arcane.iris.util.stream.BasicStream; import art.arcane.iris.util.stream.ProceduralStream; - public class RoundingDoubleStream extends BasicStream { private final ProceduralStream stream; diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/SlopeStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/SlopeStream.java index bcfc4903e..4d6ecb71a 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/SlopeStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/SlopeStream.java @@ -20,7 +20,6 @@ package art.arcane.iris.util.stream.arithmetic; import art.arcane.iris.util.stream.BasicStream; import art.arcane.iris.util.stream.ProceduralStream; - public class SlopeStream extends BasicStream { private final int range; diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/SubtractingStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/SubtractingStream.java index 7c14b6089..6f922c396 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/SubtractingStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/SubtractingStream.java @@ -22,7 +22,6 @@ import art.arcane.volmlib.util.function.Function2; import art.arcane.volmlib.util.function.Function3; import art.arcane.iris.util.stream.BasicStream; import art.arcane.iris.util.stream.ProceduralStream; - public class SubtractingStream extends BasicStream { private final Function3 add; diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/ZoomStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/ZoomStream.java index 641085987..5ceed4cee 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/ZoomStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/arithmetic/ZoomStream.java @@ -20,7 +20,6 @@ package art.arcane.iris.util.stream.arithmetic; import art.arcane.iris.util.stream.BasicStream; import art.arcane.iris.util.stream.ProceduralStream; - public class ZoomStream extends BasicStream { private final double ox; private final double oy; diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/convert/AwareConversionStream2D.java b/core/src/main/java/art/arcane/iris/util/project/stream/convert/AwareConversionStream2D.java index 6d4a5f6da..fffe1fe50 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/convert/AwareConversionStream2D.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/convert/AwareConversionStream2D.java @@ -21,7 +21,6 @@ package art.arcane.iris.util.stream.convert; import art.arcane.volmlib.util.function.Function3; import art.arcane.iris.util.stream.BasicStream; import art.arcane.iris.util.stream.ProceduralStream; - public class AwareConversionStream2D extends BasicStream { private final ProceduralStream stream; private final Function3 converter; diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/convert/AwareConversionStream3D.java b/core/src/main/java/art/arcane/iris/util/project/stream/convert/AwareConversionStream3D.java index 5579d3b28..eafc0ef6f 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/convert/AwareConversionStream3D.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/convert/AwareConversionStream3D.java @@ -21,7 +21,6 @@ package art.arcane.iris.util.stream.convert; import art.arcane.volmlib.util.function.Function4; import art.arcane.iris.util.stream.BasicStream; import art.arcane.iris.util.stream.ProceduralStream; - public class AwareConversionStream3D extends BasicStream { private final ProceduralStream stream; private final Function4 converter; diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/convert/CachedConversionStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/convert/CachedConversionStream.java index e9ab19b28..0662b7873 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/convert/CachedConversionStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/convert/CachedConversionStream.java @@ -21,7 +21,6 @@ package art.arcane.iris.util.stream.convert; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.stream.BasicLayer; import art.arcane.iris.util.stream.ProceduralStream; - import java.util.function.Function; public class CachedConversionStream extends BasicLayer implements ProceduralStream { diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/convert/ConversionStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/convert/ConversionStream.java index c1922f975..665ea10fe 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/convert/ConversionStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/convert/ConversionStream.java @@ -20,7 +20,6 @@ package art.arcane.iris.util.stream.convert; import art.arcane.volmlib.util.stream.BasicLayer; import art.arcane.iris.util.stream.ProceduralStream; - import java.util.function.Function; public class ConversionStream extends BasicLayer implements ProceduralStream { diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/convert/ForceDoubleStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/convert/ForceDoubleStream.java index 95145d56f..49e428bf7 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/convert/ForceDoubleStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/convert/ForceDoubleStream.java @@ -20,7 +20,6 @@ package art.arcane.iris.util.stream.convert; import art.arcane.iris.util.stream.BasicStream; import art.arcane.iris.util.stream.ProceduralStream; - public class ForceDoubleStream extends BasicStream { private final ProceduralStream stream; diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/convert/RoundingStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/convert/RoundingStream.java index ce28f9b8b..d630d47b6 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/convert/RoundingStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/convert/RoundingStream.java @@ -20,7 +20,6 @@ package art.arcane.iris.util.stream.convert; import art.arcane.iris.util.stream.BasicStream; import art.arcane.iris.util.stream.ProceduralStream; - public class RoundingStream extends BasicStream { private final ProceduralStream stream; diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/convert/SelectionStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/convert/SelectionStream.java index 97e168a92..ae94d5c03 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/convert/SelectionStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/convert/SelectionStream.java @@ -20,7 +20,6 @@ package art.arcane.iris.util.stream.convert; import art.arcane.iris.util.stream.BasicStream; import art.arcane.iris.util.stream.ProceduralStream; - import java.util.List; public class SelectionStream extends BasicStream { diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/convert/To3DStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/convert/To3DStream.java index e3158be64..8cb882b57 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/convert/To3DStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/convert/To3DStream.java @@ -20,7 +20,6 @@ package art.arcane.iris.util.stream.convert; import art.arcane.iris.util.stream.BasicStream; import art.arcane.iris.util.stream.ProceduralStream; - public class To3DStream extends BasicStream { public To3DStream(ProceduralStream stream) { super(stream); diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BiHermiteStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BiHermiteStream.java index 49c388ca1..0b161274f 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BiHermiteStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BiHermiteStream.java @@ -21,7 +21,6 @@ package art.arcane.iris.util.stream.interpolation; import art.arcane.iris.util.interpolation.IrisInterpolation; import art.arcane.iris.util.stream.BasicStream; import art.arcane.iris.util.stream.ProceduralStream; - public class BiHermiteStream extends BasicStream implements Interpolator { private final int rx; private final int ry; diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BiStarcastStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BiStarcastStream.java index 5a3b9ba19..793d180ec 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BiStarcastStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BiStarcastStream.java @@ -20,7 +20,6 @@ package art.arcane.iris.util.stream.interpolation; import art.arcane.iris.util.stream.BasicStream; import art.arcane.iris.util.stream.ProceduralStream; - public class BiStarcastStream extends BasicStream implements Interpolator { private final int rad; private final int checks; diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BicubicStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BicubicStream.java index 5f3228b0f..47d43a27a 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BicubicStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BicubicStream.java @@ -21,7 +21,6 @@ package art.arcane.iris.util.stream.interpolation; import art.arcane.iris.util.interpolation.IrisInterpolation; import art.arcane.iris.util.stream.BasicStream; import art.arcane.iris.util.stream.ProceduralStream; - public class BicubicStream extends BasicStream implements Interpolator { private final int rx; private final int ry; diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BilinearStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BilinearStream.java index ed0a879f2..e7cb5bbb1 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BilinearStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/BilinearStream.java @@ -21,7 +21,6 @@ package art.arcane.iris.util.stream.interpolation; import art.arcane.iris.util.interpolation.IrisInterpolation; import art.arcane.iris.util.stream.BasicStream; import art.arcane.iris.util.stream.ProceduralStream; - public class BilinearStream extends BasicStream implements Interpolator { private final int rx; private final int ry; diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/InterpolatingStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/InterpolatingStream.java index 02d6fcd67..2f92032a7 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/InterpolatingStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/InterpolatingStream.java @@ -23,7 +23,6 @@ import art.arcane.iris.util.interpolation.InterpolationMethod; import art.arcane.iris.util.interpolation.IrisInterpolation; import art.arcane.iris.util.stream.BasicStream; import art.arcane.iris.util.stream.ProceduralStream; - public class InterpolatingStream extends BasicStream implements Interpolator { private final InterpolationMethod type; private final NoiseProvider np; diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/Interpolator.java b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/Interpolator.java index 22bc53838..2331de4a6 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/Interpolator.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/Interpolator.java @@ -19,7 +19,6 @@ package art.arcane.iris.util.stream.interpolation; import art.arcane.iris.util.stream.ProceduralStream; - public interface Interpolator { @SuppressWarnings("unchecked") default InterpolatorFactory into() { diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/InterpolatorFactory.java b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/InterpolatorFactory.java index 09f3bea48..35442a07c 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/InterpolatorFactory.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/InterpolatorFactory.java @@ -20,7 +20,6 @@ package art.arcane.iris.util.stream.interpolation; import art.arcane.iris.util.interpolation.InterpolationMethod; import art.arcane.iris.util.stream.ProceduralStream; - @SuppressWarnings("ClassCanBeRecord") public class InterpolatorFactory { private final ProceduralStream stream; diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/TriHermiteStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/TriHermiteStream.java index 3e6534de5..c1704c030 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/TriHermiteStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/TriHermiteStream.java @@ -21,7 +21,6 @@ package art.arcane.iris.util.stream.interpolation; import art.arcane.iris.util.interpolation.IrisInterpolation; import art.arcane.iris.util.stream.BasicStream; import art.arcane.iris.util.stream.ProceduralStream; - public class TriHermiteStream extends BasicStream implements Interpolator { private final int rx; private final int ry; diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/TriStarcastStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/TriStarcastStream.java index bbab3df5f..16e45b699 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/TriStarcastStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/TriStarcastStream.java @@ -20,7 +20,6 @@ package art.arcane.iris.util.stream.interpolation; import art.arcane.iris.util.stream.BasicStream; import art.arcane.iris.util.stream.ProceduralStream; - public class TriStarcastStream extends BasicStream implements Interpolator { private final int rad; private final int checks; diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/TricubicStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/TricubicStream.java index 85cb4846a..1f1b71527 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/TricubicStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/TricubicStream.java @@ -21,7 +21,6 @@ package art.arcane.iris.util.stream.interpolation; import art.arcane.iris.util.interpolation.IrisInterpolation; import art.arcane.iris.util.stream.BasicStream; import art.arcane.iris.util.stream.ProceduralStream; - public class TricubicStream extends BasicStream implements Interpolator { private final int rx; private final int ry; diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/TrilinearStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/TrilinearStream.java index 882b73a90..af0aac0c5 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/TrilinearStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/interpolation/TrilinearStream.java @@ -21,7 +21,6 @@ package art.arcane.iris.util.stream.interpolation; import art.arcane.iris.util.interpolation.IrisInterpolation; import art.arcane.iris.util.stream.BasicStream; import art.arcane.iris.util.stream.ProceduralStream; - public class TrilinearStream extends BasicStream implements Interpolator { private final int rx; private final int ry; diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/sources/CNGStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/sources/CNGStream.java index 12d3a2cf7..ef3557ef5 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/sources/CNGStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/sources/CNGStream.java @@ -21,7 +21,6 @@ package art.arcane.iris.util.stream.sources; import art.arcane.iris.util.noise.CNG; import art.arcane.volmlib.util.stream.BasicLayer; import art.arcane.iris.util.stream.ProceduralStream; - public class CNGStream extends BasicLayer implements ProceduralStream { private final CNG cng; diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/sources/FunctionStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/sources/FunctionStream.java index eed93eb45..c984478bc 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/sources/FunctionStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/sources/FunctionStream.java @@ -22,7 +22,6 @@ import art.arcane.volmlib.util.function.Function2; import art.arcane.volmlib.util.function.Function3; import art.arcane.iris.util.stream.BasicStream; import art.arcane.iris.util.stream.interpolation.Interpolated; - public class FunctionStream extends BasicStream { private final Function2 f2; private final Function3 f3; diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/utility/CachedStream2D.java b/core/src/main/java/art/arcane/iris/util/project/stream/utility/CachedStream2D.java index 56df77685..6d1dc7f70 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/utility/CachedStream2D.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/utility/CachedStream2D.java @@ -22,11 +22,11 @@ import art.arcane.iris.Iris; import art.arcane.iris.core.service.PreservationSVC; import art.arcane.iris.engine.framework.Engine; import art.arcane.iris.engine.framework.MeteredCache; -import art.arcane.iris.util.cache.WorldCache2D; +import art.arcane.volmlib.util.cache.ChunkCache2D; +import art.arcane.volmlib.util.cache.WorldCache2D; import art.arcane.volmlib.util.data.KCache; import art.arcane.iris.util.stream.BasicStream; import art.arcane.iris.util.stream.ProceduralStream; - public class CachedStream2D extends BasicStream implements ProceduralStream, MeteredCache { private final ProceduralStream stream; private final WorldCache2D cache; @@ -37,7 +37,7 @@ public class CachedStream2D extends BasicStream implements ProceduralStrea super(); this.stream = stream; this.engine = engine; - cache = new WorldCache2D<>(stream::get, size); + cache = new WorldCache2D<>(stream::get, size, () -> new ChunkCache2D<>("iris")); Iris.service(PreservationSVC.class).registerCache(this); } diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/utility/CachedStream3D.java b/core/src/main/java/art/arcane/iris/util/project/stream/utility/CachedStream3D.java index 47f2ffe0c..1365815ed 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/utility/CachedStream3D.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/utility/CachedStream3D.java @@ -26,7 +26,6 @@ import art.arcane.volmlib.util.data.KCache; import art.arcane.volmlib.util.math.BlockPosition; import art.arcane.iris.util.stream.BasicStream; import art.arcane.iris.util.stream.ProceduralStream; - public class CachedStream3D extends BasicStream implements ProceduralStream, MeteredCache { private final ProceduralStream stream; private final KCache cache; diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/utility/ContextInjectingStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/utility/ContextInjectingStream.java index 39b65582b..90256c03d 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/utility/ContextInjectingStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/utility/ContextInjectingStream.java @@ -5,7 +5,6 @@ import art.arcane.iris.util.context.IrisContext; import art.arcane.volmlib.util.function.Function3; import art.arcane.iris.util.stream.BasicStream; import art.arcane.iris.util.stream.ProceduralStream; - public class ContextInjectingStream extends BasicStream { private final Function3 contextAccessor; diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/utility/NullSafeStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/utility/NullSafeStream.java index 22a6245f5..079715f79 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/utility/NullSafeStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/utility/NullSafeStream.java @@ -20,7 +20,6 @@ package art.arcane.iris.util.stream.utility; import art.arcane.iris.util.stream.BasicStream; import art.arcane.iris.util.stream.ProceduralStream; - public class NullSafeStream extends BasicStream implements ProceduralStream { private final ProceduralStream stream; private final T ifNull; diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/utility/SemaphoreStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/utility/SemaphoreStream.java index baf1ca09d..d4a87803f 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/utility/SemaphoreStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/utility/SemaphoreStream.java @@ -20,7 +20,6 @@ package art.arcane.iris.util.stream.utility; import art.arcane.iris.util.stream.BasicStream; import art.arcane.iris.util.stream.ProceduralStream; - import java.util.concurrent.Semaphore; public class SemaphoreStream extends BasicStream { diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/utility/SynchronizedStream.java b/core/src/main/java/art/arcane/iris/util/project/stream/utility/SynchronizedStream.java index 41c6f84fa..29d44fcdf 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/utility/SynchronizedStream.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/utility/SynchronizedStream.java @@ -20,7 +20,6 @@ package art.arcane.iris.util.stream.utility; import art.arcane.iris.util.stream.BasicStream; import art.arcane.iris.util.stream.ProceduralStream; - public class SynchronizedStream extends BasicStream { public SynchronizedStream(ProceduralStream stream) { super(stream); diff --git a/core/src/main/java/art/arcane/iris/util/project/stream/utility/WasteDetector.java b/core/src/main/java/art/arcane/iris/util/project/stream/utility/WasteDetector.java index b6319f3af..12f80f912 100644 --- a/core/src/main/java/art/arcane/iris/util/project/stream/utility/WasteDetector.java +++ b/core/src/main/java/art/arcane/iris/util/project/stream/utility/WasteDetector.java @@ -5,7 +5,6 @@ import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.iris.util.stream.BasicStream; import art.arcane.iris.util.stream.ProceduralStream; - import java.util.List; import java.util.concurrent.atomic.AtomicInteger; diff --git a/core/src/main/java/art/arcane/iris/util/project/uniques/UFeature.java b/core/src/main/java/art/arcane/iris/util/project/uniques/UFeature.java index 0abbbfcf8..027f4303c 100644 --- a/core/src/main/java/art/arcane/iris/util/project/uniques/UFeature.java +++ b/core/src/main/java/art/arcane/iris/util/project/uniques/UFeature.java @@ -4,7 +4,6 @@ import art.arcane.volmlib.util.function.NoiseInjector; import art.arcane.iris.util.interpolation.InterpolationMethod; import art.arcane.volmlib.util.math.RNG; import art.arcane.iris.util.noise.CNG; - import java.awt.*; import java.util.List; import java.util.function.Consumer; diff --git a/core/src/main/java/art/arcane/iris/util/project/uniques/UniqueRenderer.java b/core/src/main/java/art/arcane/iris/util/project/uniques/UniqueRenderer.java index b6a348154..96c2f1943 100644 --- a/core/src/main/java/art/arcane/iris/util/project/uniques/UniqueRenderer.java +++ b/core/src/main/java/art/arcane/iris/util/project/uniques/UniqueRenderer.java @@ -5,15 +5,15 @@ import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.function.NoiseProvider; -import art.arcane.iris.util.interpolation.InterpolationMethod; -import art.arcane.iris.util.interpolation.IrisInterpolation; +import art.arcane.iris.util.interpolation.InterpolationMethod; +import art.arcane.iris.util.interpolation.IrisInterpolation; import art.arcane.volmlib.util.math.RNG; -import art.arcane.iris.util.noise.CNG; +import art.arcane.iris.util.noise.CNG; import art.arcane.iris.util.parallel.BurstExecutor; import art.arcane.volmlib.util.scheduling.ChronoLatch; import art.arcane.iris.util.scheduling.J; import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; -import art.arcane.iris.util.stream.ProceduralStream; +import art.arcane.iris.util.stream.ProceduralStream; import art.arcane.iris.util.uniques.features.*; import java.awt.image.BufferedImage; diff --git a/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFInterpolator.java b/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFInterpolator.java index 854cb528a..d82a87df6 100644 --- a/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFInterpolator.java +++ b/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFInterpolator.java @@ -8,7 +8,6 @@ import art.arcane.iris.util.noise.CNG; import art.arcane.iris.util.uniques.UFeature; import art.arcane.iris.util.uniques.UFeatureMeta; import art.arcane.iris.util.uniques.UImage; - import java.awt.*; import java.util.function.Consumer; diff --git a/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFNOOP.java b/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFNOOP.java index 89811371a..b33780050 100644 --- a/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFNOOP.java +++ b/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFNOOP.java @@ -4,7 +4,6 @@ import art.arcane.volmlib.util.math.RNG; import art.arcane.iris.util.uniques.UFeature; import art.arcane.iris.util.uniques.UFeatureMeta; import art.arcane.iris.util.uniques.UImage; - import java.util.function.Consumer; public class UFNOOP implements UFeature { diff --git a/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFWarpedBackground.java b/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFWarpedBackground.java index 80b3e2406..da6a61409 100644 --- a/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFWarpedBackground.java +++ b/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFWarpedBackground.java @@ -5,7 +5,6 @@ import art.arcane.iris.util.noise.CNG; import art.arcane.iris.util.uniques.UFeature; import art.arcane.iris.util.uniques.UFeatureMeta; import art.arcane.iris.util.uniques.UImage; - import java.util.function.Consumer; public class UFWarpedBackground implements UFeature { diff --git a/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFWarpedCircle.java b/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFWarpedCircle.java index 3f3639a69..d8562327f 100644 --- a/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFWarpedCircle.java +++ b/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFWarpedCircle.java @@ -5,7 +5,6 @@ import art.arcane.iris.util.noise.CNG; import art.arcane.iris.util.uniques.UFeature; import art.arcane.iris.util.uniques.UFeatureMeta; import art.arcane.iris.util.uniques.UImage; - import java.util.function.Consumer; public class UFWarpedCircle implements UFeature { diff --git a/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFWarpedDisc.java b/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFWarpedDisc.java index c31aa0f7c..6dbc3f8f7 100644 --- a/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFWarpedDisc.java +++ b/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFWarpedDisc.java @@ -5,7 +5,6 @@ import art.arcane.iris.util.noise.CNG; import art.arcane.iris.util.uniques.UFeature; import art.arcane.iris.util.uniques.UFeatureMeta; import art.arcane.iris.util.uniques.UImage; - import java.util.function.Consumer; public class UFWarpedDisc implements UFeature { diff --git a/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFWarpedDots.java b/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFWarpedDots.java index 90ba85d45..8ddc098e6 100644 --- a/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFWarpedDots.java +++ b/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFWarpedDots.java @@ -5,7 +5,6 @@ import art.arcane.iris.util.noise.CNG; import art.arcane.iris.util.uniques.UFeature; import art.arcane.iris.util.uniques.UFeatureMeta; import art.arcane.iris.util.uniques.UImage; - import java.awt.*; import java.util.function.Consumer; diff --git a/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFWarpedLines.java b/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFWarpedLines.java index 2a112bc1e..dfd31a946 100644 --- a/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFWarpedLines.java +++ b/core/src/main/java/art/arcane/iris/util/project/uniques/features/UFWarpedLines.java @@ -5,7 +5,6 @@ import art.arcane.iris.util.noise.CNG; import art.arcane.iris.util.uniques.UFeature; import art.arcane.iris.util.uniques.UFeatureMeta; import art.arcane.iris.util.uniques.UImage; - import java.util.function.Consumer; public class UFWarpedLines implements UFeature { diff --git a/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/base/ChunkUpdateScript.kt b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/base/ChunkUpdateScript.kt index 30e108c1e..b931275a9 100644 --- a/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/base/ChunkUpdateScript.kt +++ b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/base/ChunkUpdateScript.kt @@ -1,7 +1,7 @@ package art.arcane.iris.core.scripting.kotlin.base import art.arcane.iris.core.scripting.func.UpdateExecutor -import art.arcane.iris.util.mantle.MantleChunk +import art.arcane.volmlib.util.mantle.runtime.MantleChunk import org.bukkit.Chunk import kotlin.script.experimental.annotations.KotlinScript import kotlin.script.experimental.api.ScriptCompilationConfiguration diff --git a/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/environment/IrisExecutionEnvironment.kt b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/environment/IrisExecutionEnvironment.kt index 4b593ed8e..2978510a2 100644 --- a/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/environment/IrisExecutionEnvironment.kt +++ b/core/src/main/kotlin/art/arcane/iris/core/scripting/kotlin/environment/IrisExecutionEnvironment.kt @@ -12,7 +12,7 @@ import art.arcane.iris.core.scripting.kotlin.base.PreprocessorScript import art.arcane.iris.core.scripting.kotlin.environment.IrisSimpleExecutionEnvironment import art.arcane.iris.core.scripting.kotlin.runner.ScriptRunner import art.arcane.iris.engine.framework.Engine -import art.arcane.iris.util.mantle.MantleChunk +import art.arcane.volmlib.util.mantle.runtime.MantleChunk import org.bukkit.Chunk import org.bukkit.Location import org.bukkit.entity.Entity @@ -40,7 +40,7 @@ class IrisExecutionEnvironment internal constructor( override fun preprocessObject(script: String, `object`: IrisRegistrant) = execute(script, PreprocessorScript::class.java, engine.limitedParameters("object" to `object`)) - override fun updateChunk(script: String, mantleChunk: MantleChunk, chunk: Chunk, executor: UpdateExecutor) = + override fun updateChunk(script: String, mantleChunk: MantleChunk<*>, chunk: Chunk, executor: UpdateExecutor) = execute(script, ChunkUpdateScript::class.java, engine.parameters("mantleChunk" to mantleChunk, "chunk" to chunk, "executor" to executor)) private fun Engine.limitedParameters(vararg values: Pair): Map { @@ -60,4 +60,4 @@ class IrisExecutionEnvironment internal constructor( *values, ) } -} \ No newline at end of file +} diff --git a/core/src/main/kotlin/art/arcane/iris/engine/mantle/MatterGenerator.kt b/core/src/main/kotlin/art/arcane/iris/engine/mantle/MatterGenerator.kt index f165d35f3..eb2c48452 100644 --- a/core/src/main/kotlin/art/arcane/iris/engine/mantle/MatterGenerator.kt +++ b/core/src/main/kotlin/art/arcane/iris/engine/mantle/MatterGenerator.kt @@ -6,9 +6,10 @@ import art.arcane.iris.core.nms.container.Pair import art.arcane.iris.engine.framework.Engine import art.arcane.iris.util.context.ChunkContext import art.arcane.iris.util.misc.RegenRuntime +import art.arcane.volmlib.util.matter.Matter import art.arcane.iris.util.matter.TileWrapper import art.arcane.volmlib.util.documentation.ChunkCoordinates -import art.arcane.iris.util.mantle.Mantle +import art.arcane.volmlib.util.mantle.runtime.Mantle import art.arcane.volmlib.util.mantle.flag.MantleFlag import art.arcane.iris.util.parallel.MultiBurst import kotlinx.coroutines.CoroutineScope @@ -21,7 +22,7 @@ import kotlin.math.min interface MatterGenerator { val engine: Engine - val mantle: Mantle + val mantle: Mantle val radius: Int val realRadius: Int val components: List, Int>> @@ -48,7 +49,7 @@ interface MatterGenerator { Iris.info("Regen matter start: center=$x,$z radius=$radius realRadius=$realRadius writeRadius=$writeRadius multicore=$multicore components=${components.size} optimized=$optimizedRegen passKey=${regenPassKey ?: "none"} thread=$threadName") } - mantle.write(engine.mantle, x, z, writeRadius, multicore).use { writer -> + MantleWriter(engine.mantle, mantle, x, z, writeRadius, multicore).use { writer -> for (pair in components) { val rawPassRadius = pair.b val passRadius = if (optimizedRegen) min(rawPassRadius, writeRadius) else rawPassRadius diff --git a/core/src/main/kotlin/art/arcane/iris/util/common/mantle/FlaggedChunk.kt b/core/src/main/kotlin/art/arcane/iris/util/common/mantle/FlaggedChunk.kt deleted file mode 100644 index a6481eeca..000000000 --- a/core/src/main/kotlin/art/arcane/iris/util/common/mantle/FlaggedChunk.kt +++ /dev/null @@ -1,3 +0,0 @@ -package art.arcane.iris.util.mantle - -abstract class FlaggedChunk : art.arcane.volmlib.util.mantle.FlaggedChunk() diff --git a/nms/v1_20_R1/src/main/java/art/arcane/iris/core/nms/v1_20_R1/IrisChunkGenerator.java b/nms/v1_20_R1/src/main/java/art/arcane/iris/core/nms/v1_20_R1/IrisChunkGenerator.java index 1fe0814f5..00255512f 100644 --- a/nms/v1_20_R1/src/main/java/art/arcane/iris/core/nms/v1_20_R1/IrisChunkGenerator.java +++ b/nms/v1_20_R1/src/main/java/art/arcane/iris/core/nms/v1_20_R1/IrisChunkGenerator.java @@ -13,7 +13,7 @@ import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.collection.KSet; import art.arcane.volmlib.util.mantle.flag.MantleFlag; -import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.Position2; import art.arcane.iris.util.reflect.WrappedField; import art.arcane.iris.util.reflect.WrappedReturningMethod; import net.minecraft.CrashReport; diff --git a/nms/v1_20_R1/src/main/java/art/arcane/iris/core/nms/v1_20_R1/NMSBinding.java b/nms/v1_20_R1/src/main/java/art/arcane/iris/core/nms/v1_20_R1/NMSBinding.java index 04f80c27c..9dd9afb9b 100644 --- a/nms/v1_20_R1/src/main/java/art/arcane/iris/core/nms/v1_20_R1/NMSBinding.java +++ b/nms/v1_20_R1/src/main/java/art/arcane/iris/core/nms/v1_20_R1/NMSBinding.java @@ -18,9 +18,10 @@ import art.arcane.volmlib.util.collection.KMap; import art.arcane.iris.util.format.C; import art.arcane.iris.util.hunk.Hunk; import art.arcane.volmlib.util.json.JSONObject; -import art.arcane.iris.util.mantle.Mantle; +import art.arcane.volmlib.util.mantle.runtime.Mantle; +import art.arcane.volmlib.util.matter.Matter; import art.arcane.volmlib.util.math.Vector3d; -import art.arcane.iris.util.matter.MatterBiomeInject; +import art.arcane.volmlib.util.matter.MatterBiomeInject; import art.arcane.iris.util.nbt.mca.NBTWorld; import art.arcane.volmlib.util.nbt.mca.palette.*; import art.arcane.volmlib.util.nbt.tag.CompoundTag; @@ -521,7 +522,7 @@ public class NMSBinding implements INMSBinding { } @Override - public void injectBiomesFromMantle(Chunk e, Mantle mantle) { + public void injectBiomesFromMantle(Chunk e, Mantle mantle) { ChunkAccess chunk = ((CraftChunk) e).getHandle(ChunkStatus.FULL); AtomicInteger c = new AtomicInteger(); AtomicInteger r = new AtomicInteger(); diff --git a/nms/v1_20_R2/src/main/java/art/arcane/iris/core/nms/v1_20_R2/IrisChunkGenerator.java b/nms/v1_20_R2/src/main/java/art/arcane/iris/core/nms/v1_20_R2/IrisChunkGenerator.java index 78b060574..c60bc33d8 100644 --- a/nms/v1_20_R2/src/main/java/art/arcane/iris/core/nms/v1_20_R2/IrisChunkGenerator.java +++ b/nms/v1_20_R2/src/main/java/art/arcane/iris/core/nms/v1_20_R2/IrisChunkGenerator.java @@ -13,7 +13,7 @@ import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.collection.KSet; import art.arcane.volmlib.util.mantle.flag.MantleFlag; -import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.Position2; import art.arcane.iris.util.reflect.WrappedField; import art.arcane.iris.util.reflect.WrappedReturningMethod; import net.minecraft.CrashReport; diff --git a/nms/v1_20_R2/src/main/java/art/arcane/iris/core/nms/v1_20_R2/NMSBinding.java b/nms/v1_20_R2/src/main/java/art/arcane/iris/core/nms/v1_20_R2/NMSBinding.java index 9450672b9..671ecb01d 100644 --- a/nms/v1_20_R2/src/main/java/art/arcane/iris/core/nms/v1_20_R2/NMSBinding.java +++ b/nms/v1_20_R2/src/main/java/art/arcane/iris/core/nms/v1_20_R2/NMSBinding.java @@ -32,9 +32,10 @@ import art.arcane.volmlib.util.collection.KMap; import art.arcane.iris.util.format.C; import art.arcane.iris.util.hunk.Hunk; import art.arcane.volmlib.util.json.JSONObject; -import art.arcane.iris.util.mantle.Mantle; +import art.arcane.volmlib.util.mantle.runtime.Mantle; +import art.arcane.volmlib.util.matter.Matter; import art.arcane.volmlib.util.math.Vector3d; -import art.arcane.iris.util.matter.MatterBiomeInject; +import art.arcane.volmlib.util.matter.MatterBiomeInject; import art.arcane.iris.util.nbt.mca.NBTWorld; import art.arcane.volmlib.util.nbt.mca.palette.*; import art.arcane.volmlib.util.nbt.tag.CompoundTag; @@ -536,7 +537,7 @@ public class NMSBinding implements INMSBinding { } @Override - public void injectBiomesFromMantle(Chunk e, Mantle mantle) { + public void injectBiomesFromMantle(Chunk e, Mantle mantle) { ChunkAccess chunk = ((CraftChunk) e).getHandle(ChunkStatus.FULL); AtomicInteger c = new AtomicInteger(); AtomicInteger r = new AtomicInteger(); diff --git a/nms/v1_20_R3/src/main/java/art/arcane/iris/core/nms/v1_20_R3/IrisChunkGenerator.java b/nms/v1_20_R3/src/main/java/art/arcane/iris/core/nms/v1_20_R3/IrisChunkGenerator.java index 4aa859de7..fa959f763 100644 --- a/nms/v1_20_R3/src/main/java/art/arcane/iris/core/nms/v1_20_R3/IrisChunkGenerator.java +++ b/nms/v1_20_R3/src/main/java/art/arcane/iris/core/nms/v1_20_R3/IrisChunkGenerator.java @@ -13,7 +13,7 @@ import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.collection.KSet; import art.arcane.volmlib.util.mantle.flag.MantleFlag; -import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.Position2; import art.arcane.iris.util.reflect.WrappedField; import art.arcane.iris.util.reflect.WrappedReturningMethod; import net.minecraft.CrashReport; diff --git a/nms/v1_20_R3/src/main/java/art/arcane/iris/core/nms/v1_20_R3/NMSBinding.java b/nms/v1_20_R3/src/main/java/art/arcane/iris/core/nms/v1_20_R3/NMSBinding.java index 15fd570d7..285bcf06c 100644 --- a/nms/v1_20_R3/src/main/java/art/arcane/iris/core/nms/v1_20_R3/NMSBinding.java +++ b/nms/v1_20_R3/src/main/java/art/arcane/iris/core/nms/v1_20_R3/NMSBinding.java @@ -32,9 +32,10 @@ import art.arcane.volmlib.util.collection.KMap; import art.arcane.iris.util.format.C; import art.arcane.iris.util.hunk.Hunk; import art.arcane.volmlib.util.json.JSONObject; -import art.arcane.iris.util.mantle.Mantle; +import art.arcane.volmlib.util.mantle.runtime.Mantle; +import art.arcane.volmlib.util.matter.Matter; import art.arcane.volmlib.util.math.Vector3d; -import art.arcane.iris.util.matter.MatterBiomeInject; +import art.arcane.volmlib.util.matter.MatterBiomeInject; import art.arcane.iris.util.nbt.mca.NBTWorld; import art.arcane.volmlib.util.nbt.mca.palette.*; import art.arcane.volmlib.util.nbt.tag.CompoundTag; @@ -536,7 +537,7 @@ public class NMSBinding implements INMSBinding { } @Override - public void injectBiomesFromMantle(Chunk e, Mantle mantle) { + public void injectBiomesFromMantle(Chunk e, Mantle mantle) { ChunkAccess chunk = ((CraftChunk) e).getHandle(ChunkStatus.FULL); AtomicInteger c = new AtomicInteger(); AtomicInteger r = new AtomicInteger(); diff --git a/nms/v1_20_R4/src/main/java/art/arcane/iris/core/nms/v1_20_R4/IrisChunkGenerator.java b/nms/v1_20_R4/src/main/java/art/arcane/iris/core/nms/v1_20_R4/IrisChunkGenerator.java index 3860c87b7..cae27ebe6 100644 --- a/nms/v1_20_R4/src/main/java/art/arcane/iris/core/nms/v1_20_R4/IrisChunkGenerator.java +++ b/nms/v1_20_R4/src/main/java/art/arcane/iris/core/nms/v1_20_R4/IrisChunkGenerator.java @@ -13,7 +13,7 @@ import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.collection.KSet; import art.arcane.volmlib.util.mantle.flag.MantleFlag; -import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.Position2; import art.arcane.iris.util.reflect.WrappedField; import art.arcane.iris.util.reflect.WrappedReturningMethod; import net.minecraft.CrashReport; diff --git a/nms/v1_20_R4/src/main/java/art/arcane/iris/core/nms/v1_20_R4/NMSBinding.java b/nms/v1_20_R4/src/main/java/art/arcane/iris/core/nms/v1_20_R4/NMSBinding.java index c02daed0b..e0a77c2b0 100644 --- a/nms/v1_20_R4/src/main/java/art/arcane/iris/core/nms/v1_20_R4/NMSBinding.java +++ b/nms/v1_20_R4/src/main/java/art/arcane/iris/core/nms/v1_20_R4/NMSBinding.java @@ -26,9 +26,10 @@ import art.arcane.volmlib.util.collection.KMap; import art.arcane.iris.util.format.C; import art.arcane.iris.util.hunk.Hunk; import art.arcane.volmlib.util.json.JSONObject; -import art.arcane.iris.util.mantle.Mantle; +import art.arcane.volmlib.util.mantle.runtime.Mantle; +import art.arcane.volmlib.util.matter.Matter; import art.arcane.volmlib.util.math.Vector3d; -import art.arcane.iris.util.matter.MatterBiomeInject; +import art.arcane.volmlib.util.matter.MatterBiomeInject; import art.arcane.iris.util.nbt.mca.NBTWorld; import art.arcane.volmlib.util.nbt.mca.palette.*; import art.arcane.iris.engine.object.IrisJigsawStructurePlacement; @@ -525,7 +526,7 @@ public class NMSBinding implements INMSBinding { } @Override - public void injectBiomesFromMantle(Chunk e, Mantle mantle) { + public void injectBiomesFromMantle(Chunk e, Mantle mantle) { ChunkAccess chunk = ((CraftChunk) e).getHandle(ChunkStatus.FULL); AtomicInteger c = new AtomicInteger(); AtomicInteger r = new AtomicInteger(); diff --git a/nms/v1_21_R1/src/main/java/art/arcane/iris/core/nms/v1_21_R1/IrisChunkGenerator.java b/nms/v1_21_R1/src/main/java/art/arcane/iris/core/nms/v1_21_R1/IrisChunkGenerator.java index 57d0db104..bd3ffdaaf 100644 --- a/nms/v1_21_R1/src/main/java/art/arcane/iris/core/nms/v1_21_R1/IrisChunkGenerator.java +++ b/nms/v1_21_R1/src/main/java/art/arcane/iris/core/nms/v1_21_R1/IrisChunkGenerator.java @@ -13,7 +13,7 @@ import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.collection.KSet; import art.arcane.volmlib.util.mantle.flag.MantleFlag; -import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.Position2; import art.arcane.iris.util.reflect.WrappedField; import art.arcane.iris.util.reflect.WrappedReturningMethod; import net.minecraft.CrashReport; diff --git a/nms/v1_21_R1/src/main/java/art/arcane/iris/core/nms/v1_21_R1/NMSBinding.java b/nms/v1_21_R1/src/main/java/art/arcane/iris/core/nms/v1_21_R1/NMSBinding.java index aee9aa8c8..6b04a2c74 100644 --- a/nms/v1_21_R1/src/main/java/art/arcane/iris/core/nms/v1_21_R1/NMSBinding.java +++ b/nms/v1_21_R1/src/main/java/art/arcane/iris/core/nms/v1_21_R1/NMSBinding.java @@ -27,9 +27,10 @@ import art.arcane.volmlib.util.collection.KMap; import art.arcane.iris.util.format.C; import art.arcane.iris.util.hunk.Hunk; import art.arcane.volmlib.util.json.JSONObject; -import art.arcane.iris.util.mantle.Mantle; +import art.arcane.volmlib.util.mantle.runtime.Mantle; +import art.arcane.volmlib.util.matter.Matter; import art.arcane.volmlib.util.math.Vector3d; -import art.arcane.iris.util.matter.MatterBiomeInject; +import art.arcane.volmlib.util.matter.MatterBiomeInject; import art.arcane.iris.util.nbt.mca.NBTWorld; import art.arcane.volmlib.util.nbt.mca.palette.*; import art.arcane.volmlib.util.nbt.tag.CompoundTag; @@ -528,7 +529,7 @@ public class NMSBinding implements INMSBinding { } @Override - public void injectBiomesFromMantle(Chunk e, Mantle mantle) { + public void injectBiomesFromMantle(Chunk e, Mantle mantle) { ChunkAccess chunk = ((CraftChunk) e).getHandle(ChunkStatus.FULL); AtomicInteger c = new AtomicInteger(); AtomicInteger r = new AtomicInteger(); diff --git a/nms/v1_21_R2/src/main/java/art/arcane/iris/core/nms/v1_21_R2/IrisChunkGenerator.java b/nms/v1_21_R2/src/main/java/art/arcane/iris/core/nms/v1_21_R2/IrisChunkGenerator.java index 664a91517..77ee7c4fc 100644 --- a/nms/v1_21_R2/src/main/java/art/arcane/iris/core/nms/v1_21_R2/IrisChunkGenerator.java +++ b/nms/v1_21_R2/src/main/java/art/arcane/iris/core/nms/v1_21_R2/IrisChunkGenerator.java @@ -13,7 +13,7 @@ import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.collection.KSet; import art.arcane.volmlib.util.mantle.flag.MantleFlag; -import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.Position2; import art.arcane.iris.util.reflect.WrappedField; import art.arcane.iris.util.reflect.WrappedReturningMethod; import net.minecraft.CrashReport; diff --git a/nms/v1_21_R2/src/main/java/art/arcane/iris/core/nms/v1_21_R2/NMSBinding.java b/nms/v1_21_R2/src/main/java/art/arcane/iris/core/nms/v1_21_R2/NMSBinding.java index 48a3416b5..f2d76403f 100644 --- a/nms/v1_21_R2/src/main/java/art/arcane/iris/core/nms/v1_21_R2/NMSBinding.java +++ b/nms/v1_21_R2/src/main/java/art/arcane/iris/core/nms/v1_21_R2/NMSBinding.java @@ -26,9 +26,10 @@ import art.arcane.volmlib.util.collection.KMap; import art.arcane.iris.util.format.C; import art.arcane.iris.util.hunk.Hunk; import art.arcane.volmlib.util.json.JSONObject; -import art.arcane.iris.util.mantle.Mantle; +import art.arcane.volmlib.util.mantle.runtime.Mantle; +import art.arcane.volmlib.util.matter.Matter; import art.arcane.volmlib.util.math.Vector3d; -import art.arcane.iris.util.matter.MatterBiomeInject; +import art.arcane.volmlib.util.matter.MatterBiomeInject; import art.arcane.iris.util.nbt.mca.NBTWorld; import art.arcane.volmlib.util.nbt.mca.palette.*; import art.arcane.volmlib.util.nbt.tag.CompoundTag; @@ -527,7 +528,7 @@ public class NMSBinding implements INMSBinding { } @Override - public void injectBiomesFromMantle(Chunk e, Mantle mantle) { + public void injectBiomesFromMantle(Chunk e, Mantle mantle) { ChunkAccess chunk = ((CraftChunk) e).getHandle(ChunkStatus.FULL); AtomicInteger c = new AtomicInteger(); AtomicInteger r = new AtomicInteger(); diff --git a/nms/v1_21_R3/src/main/java/art/arcane/iris/core/nms/v1_21_R3/IrisChunkGenerator.java b/nms/v1_21_R3/src/main/java/art/arcane/iris/core/nms/v1_21_R3/IrisChunkGenerator.java index 11aff5c39..43e7d0839 100644 --- a/nms/v1_21_R3/src/main/java/art/arcane/iris/core/nms/v1_21_R3/IrisChunkGenerator.java +++ b/nms/v1_21_R3/src/main/java/art/arcane/iris/core/nms/v1_21_R3/IrisChunkGenerator.java @@ -13,7 +13,7 @@ import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.collection.KSet; import art.arcane.volmlib.util.mantle.flag.MantleFlag; -import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.Position2; import art.arcane.iris.util.reflect.WrappedField; import art.arcane.iris.util.reflect.WrappedReturningMethod; import net.minecraft.CrashReport; diff --git a/nms/v1_21_R3/src/main/java/art/arcane/iris/core/nms/v1_21_R3/NMSBinding.java b/nms/v1_21_R3/src/main/java/art/arcane/iris/core/nms/v1_21_R3/NMSBinding.java index a4b7f9953..51c8c7fce 100644 --- a/nms/v1_21_R3/src/main/java/art/arcane/iris/core/nms/v1_21_R3/NMSBinding.java +++ b/nms/v1_21_R3/src/main/java/art/arcane/iris/core/nms/v1_21_R3/NMSBinding.java @@ -19,9 +19,10 @@ import art.arcane.volmlib.util.collection.KMap; import art.arcane.iris.util.format.C; import art.arcane.iris.util.hunk.Hunk; import art.arcane.volmlib.util.json.JSONObject; -import art.arcane.iris.util.mantle.Mantle; +import art.arcane.volmlib.util.mantle.runtime.Mantle; +import art.arcane.volmlib.util.matter.Matter; import art.arcane.volmlib.util.math.Vector3d; -import art.arcane.iris.util.matter.MatterBiomeInject; +import art.arcane.volmlib.util.matter.MatterBiomeInject; import art.arcane.iris.util.nbt.mca.NBTWorld; import art.arcane.volmlib.util.nbt.mca.palette.*; import art.arcane.volmlib.util.nbt.tag.CompoundTag; @@ -526,7 +527,7 @@ public class NMSBinding implements INMSBinding { } @Override - public void injectBiomesFromMantle(Chunk e, Mantle mantle) { + public void injectBiomesFromMantle(Chunk e, Mantle mantle) { ChunkAccess chunk = ((CraftChunk) e).getHandle(ChunkStatus.FULL); AtomicInteger c = new AtomicInteger(); AtomicInteger r = new AtomicInteger(); diff --git a/nms/v1_21_R4/src/main/java/art/arcane/iris/core/nms/v1_21_R4/IrisChunkGenerator.java b/nms/v1_21_R4/src/main/java/art/arcane/iris/core/nms/v1_21_R4/IrisChunkGenerator.java index 571fe6265..872cc032e 100644 --- a/nms/v1_21_R4/src/main/java/art/arcane/iris/core/nms/v1_21_R4/IrisChunkGenerator.java +++ b/nms/v1_21_R4/src/main/java/art/arcane/iris/core/nms/v1_21_R4/IrisChunkGenerator.java @@ -13,7 +13,7 @@ import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.collection.KSet; import art.arcane.volmlib.util.mantle.flag.MantleFlag; -import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.Position2; import art.arcane.iris.util.reflect.WrappedField; import art.arcane.iris.util.reflect.WrappedReturningMethod; import net.minecraft.CrashReport; diff --git a/nms/v1_21_R4/src/main/java/art/arcane/iris/core/nms/v1_21_R4/NMSBinding.java b/nms/v1_21_R4/src/main/java/art/arcane/iris/core/nms/v1_21_R4/NMSBinding.java index ea99a8d1f..46c7cb627 100644 --- a/nms/v1_21_R4/src/main/java/art/arcane/iris/core/nms/v1_21_R4/NMSBinding.java +++ b/nms/v1_21_R4/src/main/java/art/arcane/iris/core/nms/v1_21_R4/NMSBinding.java @@ -19,9 +19,10 @@ import art.arcane.volmlib.util.collection.KMap; import art.arcane.iris.util.format.C; import art.arcane.iris.util.hunk.Hunk; import art.arcane.volmlib.util.json.JSONObject; -import art.arcane.iris.util.mantle.Mantle; +import art.arcane.volmlib.util.mantle.runtime.Mantle; +import art.arcane.volmlib.util.matter.Matter; import art.arcane.volmlib.util.math.Vector3d; -import art.arcane.iris.util.matter.MatterBiomeInject; +import art.arcane.volmlib.util.matter.MatterBiomeInject; import art.arcane.iris.util.nbt.mca.NBTWorld; import art.arcane.volmlib.util.nbt.mca.palette.*; import art.arcane.volmlib.util.nbt.tag.CompoundTag; @@ -526,7 +527,7 @@ public class NMSBinding implements INMSBinding { } @Override - public void injectBiomesFromMantle(Chunk e, Mantle mantle) { + public void injectBiomesFromMantle(Chunk e, Mantle mantle) { ChunkAccess chunk = ((CraftChunk) e).getHandle(ChunkStatus.FULL); AtomicInteger c = new AtomicInteger(); AtomicInteger r = new AtomicInteger(); diff --git a/nms/v1_21_R5/src/main/java/art/arcane/iris/core/nms/v1_21_R5/IrisChunkGenerator.java b/nms/v1_21_R5/src/main/java/art/arcane/iris/core/nms/v1_21_R5/IrisChunkGenerator.java index 616b4de76..5bd0d18c9 100644 --- a/nms/v1_21_R5/src/main/java/art/arcane/iris/core/nms/v1_21_R5/IrisChunkGenerator.java +++ b/nms/v1_21_R5/src/main/java/art/arcane/iris/core/nms/v1_21_R5/IrisChunkGenerator.java @@ -13,7 +13,7 @@ import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.collection.KSet; import art.arcane.volmlib.util.mantle.flag.MantleFlag; -import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.Position2; import art.arcane.iris.util.reflect.WrappedField; import art.arcane.iris.util.reflect.WrappedReturningMethod; import net.minecraft.CrashReport; diff --git a/nms/v1_21_R5/src/main/java/art/arcane/iris/core/nms/v1_21_R5/NMSBinding.java b/nms/v1_21_R5/src/main/java/art/arcane/iris/core/nms/v1_21_R5/NMSBinding.java index f3905f81b..926c1d2cb 100644 --- a/nms/v1_21_R5/src/main/java/art/arcane/iris/core/nms/v1_21_R5/NMSBinding.java +++ b/nms/v1_21_R5/src/main/java/art/arcane/iris/core/nms/v1_21_R5/NMSBinding.java @@ -19,9 +19,10 @@ import art.arcane.volmlib.util.collection.KMap; import art.arcane.iris.util.format.C; import art.arcane.iris.util.hunk.Hunk; import art.arcane.volmlib.util.json.JSONObject; -import art.arcane.iris.util.mantle.Mantle; +import art.arcane.volmlib.util.mantle.runtime.Mantle; +import art.arcane.volmlib.util.matter.Matter; import art.arcane.volmlib.util.math.Vector3d; -import art.arcane.iris.util.matter.MatterBiomeInject; +import art.arcane.volmlib.util.matter.MatterBiomeInject; import art.arcane.iris.util.nbt.mca.NBTWorld; import art.arcane.volmlib.util.nbt.mca.palette.*; import art.arcane.volmlib.util.nbt.tag.CompoundTag; @@ -526,7 +527,7 @@ public class NMSBinding implements INMSBinding { } @Override - public void injectBiomesFromMantle(Chunk e, Mantle mantle) { + public void injectBiomesFromMantle(Chunk e, Mantle mantle) { ChunkAccess chunk = ((CraftChunk) e).getHandle(ChunkStatus.FULL); AtomicInteger c = new AtomicInteger(); AtomicInteger r = new AtomicInteger(); diff --git a/nms/v1_21_R6/src/main/java/art/arcane/iris/core/nms/v1_21_R6/IrisChunkGenerator.java b/nms/v1_21_R6/src/main/java/art/arcane/iris/core/nms/v1_21_R6/IrisChunkGenerator.java index 8ca94ba99..9380a3f16 100644 --- a/nms/v1_21_R6/src/main/java/art/arcane/iris/core/nms/v1_21_R6/IrisChunkGenerator.java +++ b/nms/v1_21_R6/src/main/java/art/arcane/iris/core/nms/v1_21_R6/IrisChunkGenerator.java @@ -13,7 +13,7 @@ import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.collection.KSet; import art.arcane.volmlib.util.mantle.flag.MantleFlag; -import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.Position2; import art.arcane.iris.util.reflect.WrappedField; import art.arcane.iris.util.reflect.WrappedReturningMethod; import net.minecraft.CrashReport; diff --git a/nms/v1_21_R6/src/main/java/art/arcane/iris/core/nms/v1_21_R6/NMSBinding.java b/nms/v1_21_R6/src/main/java/art/arcane/iris/core/nms/v1_21_R6/NMSBinding.java index 93b699607..e60da60d8 100644 --- a/nms/v1_21_R6/src/main/java/art/arcane/iris/core/nms/v1_21_R6/NMSBinding.java +++ b/nms/v1_21_R6/src/main/java/art/arcane/iris/core/nms/v1_21_R6/NMSBinding.java @@ -19,9 +19,10 @@ import art.arcane.volmlib.util.collection.KMap; import art.arcane.iris.util.format.C; import art.arcane.iris.util.hunk.Hunk; import art.arcane.volmlib.util.json.JSONObject; -import art.arcane.iris.util.mantle.Mantle; +import art.arcane.volmlib.util.mantle.runtime.Mantle; +import art.arcane.volmlib.util.matter.Matter; import art.arcane.volmlib.util.math.Vector3d; -import art.arcane.iris.util.matter.MatterBiomeInject; +import art.arcane.volmlib.util.matter.MatterBiomeInject; import art.arcane.iris.util.nbt.mca.NBTWorld; import art.arcane.volmlib.util.nbt.mca.palette.*; import art.arcane.volmlib.util.nbt.tag.CompoundTag; @@ -525,7 +526,7 @@ public class NMSBinding implements INMSBinding { } @Override - public void injectBiomesFromMantle(Chunk e, Mantle mantle) { + public void injectBiomesFromMantle(Chunk e, Mantle mantle) { ChunkAccess chunk = ((CraftChunk) e).getHandle(ChunkStatus.FULL); AtomicInteger c = new AtomicInteger(); AtomicInteger r = new AtomicInteger(); diff --git a/nms/v1_21_R7/src/main/java/art/arcane/iris/core/nms/v1_21_R7/IrisChunkGenerator.java b/nms/v1_21_R7/src/main/java/art/arcane/iris/core/nms/v1_21_R7/IrisChunkGenerator.java index 245827c24..b6ad534e4 100644 --- a/nms/v1_21_R7/src/main/java/art/arcane/iris/core/nms/v1_21_R7/IrisChunkGenerator.java +++ b/nms/v1_21_R7/src/main/java/art/arcane/iris/core/nms/v1_21_R7/IrisChunkGenerator.java @@ -13,7 +13,7 @@ import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.collection.KSet; import art.arcane.volmlib.util.mantle.flag.MantleFlag; -import art.arcane.iris.util.math.Position2; +import art.arcane.volmlib.util.math.Position2; import art.arcane.iris.util.reflect.WrappedField; import art.arcane.iris.util.reflect.WrappedReturningMethod; import net.minecraft.CrashReport; diff --git a/nms/v1_21_R7/src/main/java/art/arcane/iris/core/nms/v1_21_R7/NMSBinding.java b/nms/v1_21_R7/src/main/java/art/arcane/iris/core/nms/v1_21_R7/NMSBinding.java index 8cbbaba6a..6d2620bfc 100644 --- a/nms/v1_21_R7/src/main/java/art/arcane/iris/core/nms/v1_21_R7/NMSBinding.java +++ b/nms/v1_21_R7/src/main/java/art/arcane/iris/core/nms/v1_21_R7/NMSBinding.java @@ -18,9 +18,10 @@ import art.arcane.volmlib.util.collection.KMap; import art.arcane.iris.util.format.C; import art.arcane.iris.util.hunk.Hunk; import art.arcane.volmlib.util.json.JSONObject; -import art.arcane.iris.util.mantle.Mantle; +import art.arcane.volmlib.util.mantle.runtime.Mantle; +import art.arcane.volmlib.util.matter.Matter; import art.arcane.volmlib.util.math.Vector3d; -import art.arcane.iris.util.matter.MatterBiomeInject; +import art.arcane.volmlib.util.matter.MatterBiomeInject; import art.arcane.iris.util.nbt.mca.NBTWorld; import art.arcane.volmlib.util.nbt.mca.palette.*; import art.arcane.volmlib.util.nbt.tag.CompoundTag; @@ -545,7 +546,7 @@ public class NMSBinding implements INMSBinding { } @Override - public void injectBiomesFromMantle(Chunk e, Mantle mantle) { + public void injectBiomesFromMantle(Chunk e, Mantle mantle) { ChunkAccess chunk = ((CraftChunk) e).getHandle(ChunkStatus.FULL); AtomicInteger c = new AtomicInteger(); AtomicInteger r = new AtomicInteger();