Logging Facade

This commit is contained in:
Brian Neumann-Fopiano committed 2026-06-12 02:45:06 -04:00
1 parent af3035088a
commit b584cb4193
65 files changed
+670 -574

No files matched your search

@@ -18,7 +18,7 @@
package art.arcane.iris.engine; package art.arcane.iris.engine;
import art.arcane.iris.Iris; import art.arcane.iris.spi.IrisLogging;
import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.collection.KMap;
public class EnginePanic { public class EnginePanic {
@@ -35,14 +35,14 @@ public class EnginePanic {
public static void lastPanic() { public static void lastPanic() {
for (String i : last.keySet()) { for (String i : last.keySet()) {
Iris.error("Last Panic " + i + ": " + stuff.get(i)); IrisLogging.error("Last Panic " + i + ": " + stuff.get(i));
} }
} }
public static void panic() { public static void panic() {
lastPanic(); lastPanic();
for (String i : stuff.keySet()) { for (String i : stuff.keySet()) {
Iris.error("Engine Panic " + i + ": " + stuff.get(i)); IrisLogging.error("Engine Panic " + i + ": " + stuff.get(i));
} }
} }
} }
@@ -18,7 +18,6 @@
package art.arcane.iris.engine; package art.arcane.iris.engine;
import art.arcane.iris.Iris;
import art.arcane.iris.core.loader.IrisData; import art.arcane.iris.core.loader.IrisData;
import art.arcane.iris.engine.framework.Engine; import art.arcane.iris.engine.framework.Engine;
import art.arcane.iris.engine.object.IrisBiome; import art.arcane.iris.engine.object.IrisBiome;
@@ -28,6 +27,7 @@ import art.arcane.iris.engine.object.IrisOreGenerator;
import art.arcane.iris.engine.object.IrisProceduralObjects; import art.arcane.iris.engine.object.IrisProceduralObjects;
import art.arcane.iris.engine.object.IrisProceduralPlacement; import art.arcane.iris.engine.object.IrisProceduralPlacement;
import art.arcane.iris.engine.object.IrisRegion; import art.arcane.iris.engine.object.IrisRegion;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KList;
import art.arcane.volmlib.util.math.M; import art.arcane.volmlib.util.math.M;
import art.arcane.volmlib.util.math.RNG; import art.arcane.volmlib.util.math.RNG;
@@ -64,11 +64,11 @@ public final class GenerationCacheWarmer {
warmOres(engine.getDimension().getOres(), root, counter, data); warmOres(engine.getDimension().getOres(), root, counter, data);
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
Iris.warn("Generation cache warm pass failed: " + e.getMessage()); IrisLogging.warn("Generation cache warm pass failed: " + e.getMessage());
} }
Iris.debug("[IrisEngine timing] cache warm " + counter[0] + " configs=" + (M.ms() - start) + "ms"); IrisLogging.debug("[IrisEngine timing] cache warm " + counter[0] + " configs=" + (M.ms() - start) + "ms");
} }
private static void warmPlacements(KList<IrisObjectPlacement> placements, RNG root, int[] counter, IrisData data) { private static void warmPlacements(KList<IrisObjectPlacement> placements, RNG root, int[] counter, IrisData data) {
@@ -18,13 +18,13 @@
package art.arcane.iris.engine; package art.arcane.iris.engine;
import art.arcane.iris.Iris;
import art.arcane.iris.core.IrisSettings; import art.arcane.iris.core.IrisSettings;
import art.arcane.iris.core.loader.IrisData; import art.arcane.iris.core.loader.IrisData;
import art.arcane.iris.engine.data.cache.Cache; import art.arcane.iris.engine.data.cache.Cache;
import art.arcane.iris.engine.framework.Engine; import art.arcane.iris.engine.framework.Engine;
import art.arcane.iris.engine.object.*; import art.arcane.iris.engine.object.*;
import art.arcane.iris.platform.bukkit.BukkitBiome; import art.arcane.iris.platform.bukkit.BukkitBiome;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.iris.spi.PlatformBiome; import art.arcane.iris.spi.PlatformBiome;
import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.spi.PlatformBlockState;
import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KList;
@@ -406,9 +406,9 @@ public class IrisComplex implements DataProvider {
GeneratorBounds bounds = resolveGeneratorBounds(engine, generators, bx, cachedBounds, localBounds); GeneratorBounds bounds = resolveGeneratorBounds(engine, generators, bx, cachedBounds, localBounds);
return bounds.noiseBounds; return bounds.noiseBounds;
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
e.printStackTrace(); e.printStackTrace();
Iris.error("Failed to sample interpolated biome bounds at " + xx + " " + zz + "..."); IrisLogging.error("Failed to sample interpolated biome bounds at " + xx + " " + zz + "...");
} }
return ZERO_NOISE_BOUNDS; return ZERO_NOISE_BOUNDS;
@@ -18,6 +18,7 @@
package art.arcane.iris.engine; package art.arcane.iris.engine;
import art.arcane.iris.spi.IrisLogging;
import com.google.common.util.concurrent.AtomicDouble; import com.google.common.util.concurrent.AtomicDouble;
import com.google.gson.Gson; import com.google.gson.Gson;
import art.arcane.iris.Iris; import art.arcane.iris.Iris;
@@ -132,7 +133,7 @@ public class IrisEngine implements Engine {
generated = new AtomicInteger(0); generated = new AtomicInteger(0);
long _t0 = M.ms(); long _t0 = M.ms();
mantle = new IrisEngineMantle(this); mantle = new IrisEngineMantle(this);
Iris.debug("[IrisEngine timing] new IrisEngineMantle=" + (M.ms() - _t0) + "ms"); IrisLogging.debug("[IrisEngine timing] new IrisEngineMantle=" + (M.ms() - _t0) + "ms");
context = new IrisContext(this); context = new IrisContext(this);
cleaning = new AtomicBoolean(false); cleaning = new AtomicBoolean(false);
modeFallbackLogged = new AtomicBoolean(false); modeFallbackLogged = new AtomicBoolean(false);
@@ -141,29 +142,29 @@ public class IrisEngine implements Engine {
getData().dump(); getData().dump();
getData().clearLists(); getData().clearLists();
getTarget().setDimension(getData().getDimensionLoader().load(getDimension().getLoadKey())); getTarget().setDimension(getData().getDimensionLoader().load(getDimension().getLoadKey()));
Iris.debug("[IrisEngine timing] dump+clearLists+reload=" + (M.ms() - _t0) + "ms"); IrisLogging.debug("[IrisEngine timing] dump+clearLists+reload=" + (M.ms() - _t0) + "ms");
} }
context.touch(); context.touch();
getData().setEngine(this); getData().setEngine(this);
_t0 = M.ms(); _t0 = M.ms();
getData().loadPrefetch(this); getData().loadPrefetch(this);
Iris.debug("[IrisEngine timing] loadPrefetch=" + (M.ms() - _t0) + "ms"); IrisLogging.debug("[IrisEngine timing] loadPrefetch=" + (M.ms() - _t0) + "ms");
try { try {
StructureIndexService.writeOnce(getData()); StructureIndexService.writeOnce(getData());
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
} }
Iris.info("Engine init: " + target.getWorld().name() + "/" + target.getDimension().getLoadKey() + " seed=" + getSeedManager().getSeed()); IrisLogging.info("Engine init: " + target.getWorld().name() + "/" + target.getDimension().getLoadKey() + " seed=" + getSeedManager().getSeed());
failing = false; failing = false;
closed = false; closed = false;
art = J.ar(this::tickRandomPlayer, 0); art = J.ar(this::tickRandomPlayer, 0);
_t0 = M.ms(); _t0 = M.ms();
setupEngine(); setupEngine();
Iris.debug("[IrisEngine timing] setupEngine total=" + (M.ms() - _t0) + "ms"); IrisLogging.debug("[IrisEngine timing] setupEngine total=" + (M.ms() - _t0) + "ms");
_t0 = M.ms(); _t0 = M.ms();
GenerationCacheWarmer.warm(this); GenerationCacheWarmer.warm(this);
Iris.debug("[IrisEngine timing] cache warm total=" + (M.ms() - _t0) + "ms"); IrisLogging.debug("[IrisEngine timing] cache warm total=" + (M.ms() - _t0) + "ms");
Iris.debug("Engine Initialized " + getCacheID()); IrisLogging.debug("Engine Initialized " + getCacheID());
} }
private void verifySeed() { private void verifySeed() {
@@ -223,29 +224,29 @@ public class IrisEngine implements Engine {
try { try {
generationSessions.activateNextSession(); generationSessions.activateNextSession();
closing.set(false); closing.set(false);
Iris.debug("Setup Engine " + getCacheID()); IrisLogging.debug("Setup Engine " + getCacheID());
cacheId = RNG.r.nextInt(); cacheId = RNG.r.nextInt();
long t0 = M.ms(); long t0 = M.ms();
complex = ensureComplex(); complex = ensureComplex();
Iris.debug("[IrisEngine timing] ensureComplex=" + (M.ms() - t0) + "ms"); IrisLogging.debug("[IrisEngine timing] ensureComplex=" + (M.ms() - t0) + "ms");
t0 = M.ms(); t0 = M.ms();
upperContext = buildUpperContext(); upperContext = buildUpperContext();
Iris.debug("[IrisEngine timing] buildUpperContext=" + (M.ms() - t0) + "ms"); IrisLogging.debug("[IrisEngine timing] buildUpperContext=" + (M.ms() - t0) + "ms");
t0 = M.ms(); t0 = M.ms();
effects = new IrisEngineEffects(this); effects = new IrisEngineEffects(this);
Iris.debug("[IrisEngine timing] IrisEngineEffects=" + (M.ms() - t0) + "ms"); IrisLogging.debug("[IrisEngine timing] IrisEngineEffects=" + (M.ms() - t0) + "ms");
hash32 = new CompletableFuture<>(); hash32 = new CompletableFuture<>();
t0 = M.ms(); t0 = M.ms();
mantle.hotload(); mantle.hotload();
Iris.debug("[IrisEngine timing] mantle.hotload=" + (M.ms() - t0) + "ms"); IrisLogging.debug("[IrisEngine timing] mantle.hotload=" + (M.ms() - t0) + "ms");
t0 = M.ms(); t0 = M.ms();
setupMode(); setupMode();
Iris.debug("[IrisEngine timing] setupMode=" + (M.ms() - t0) + "ms"); IrisLogging.debug("[IrisEngine timing] setupMode=" + (M.ms() - t0) + "ms");
t0 = M.ms(); t0 = M.ms();
IrisWorldManager manager = new IrisWorldManager(this); IrisWorldManager manager = new IrisWorldManager(this);
worldManager = manager; worldManager = manager;
manager.startManager(); manager.startManager();
Iris.debug("[IrisEngine timing] IrisWorldManager=" + (M.ms() - t0) + "ms"); IrisLogging.debug("[IrisEngine timing] IrisWorldManager=" + (M.ms() - t0) + "ms");
J.a(this::computeBiomeMaxes); J.a(this::computeBiomeMaxes);
J.a(() -> { J.a(() -> {
File[] roots = getData().getLoaders() File[] roots = getData().getLoaders()
@@ -260,11 +261,11 @@ public class IrisEngine implements Engine {
}); });
J.a(() -> DatapackIngestService.refreshWorkspace(getData())); J.a(() -> DatapackIngestService.refreshWorkspace(getData()));
} catch (Throwable e) { } catch (Throwable e) {
Iris.error("FAILED TO SETUP ENGINE!"); IrisLogging.error("FAILED TO SETUP ENGINE!");
e.printStackTrace(); e.printStackTrace();
} }
Iris.debug("Engine Setup Complete " + getCacheID()); IrisLogging.debug("Engine Setup Complete " + getCacheID());
} }
private UpperDimensionContext buildUpperContext() { private UpperDimensionContext buildUpperContext() {
@@ -278,11 +279,11 @@ public class IrisEngine implements Engine {
: IrisData.loadAnyDimension(upperKey, getData()); : IrisData.loadAnyDimension(upperKey, getData());
if (upperDim != null) { if (upperDim != null) {
UpperDimensionContext ctx = UpperDimensionContext.create(this, upperDim); UpperDimensionContext ctx = UpperDimensionContext.create(this, upperDim);
Iris.info("Upper dimension enabled: " + upperKey IrisLogging.info("Upper dimension enabled: " + upperKey
+ (ctx.isSelfReferencing() ? " (self-referencing)" : " (cross-referencing)")); + (ctx.isSelfReferencing() ? " (self-referencing)" : " (cross-referencing)"));
return ctx; return ctx;
} }
Iris.warn("Upper dimension '" + upperKey + "' could not be resolved, skipping upper terrain."); IrisLogging.warn("Upper dimension '" + upperKey + "' could not be resolved, skipping upper terrain.");
return null; return null;
} }
@@ -325,9 +326,9 @@ public class IrisEngine implements Engine {
throw new IllegalStateException("Dimension mode factory returned null"); throw new IllegalStateException("Dimension mode factory returned null");
} }
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
if (modeFallbackLogged.compareAndSet(false, true)) { if (modeFallbackLogged.compareAndSet(false, true)) {
Iris.warn("Failed to initialize configured dimension mode for " + getDimension().getLoadKey() + ", falling back to OVERWORLD mode."); IrisLogging.warn("Failed to initialize configured dimension mode for " + getDimension().getLoadKey() + ", falling back to OVERWORLD mode.");
} }
currentMode = IrisDimensionModeType.OVERWORLD.create(this); currentMode = IrisDimensionModeType.OVERWORLD.create(this);
} }
@@ -423,7 +424,7 @@ public class IrisEngine implements Engine {
try { try {
data = new Gson().fromJson(IO.readAll(f), IrisEngineData.class); data = new Gson().fromJson(IO.readAll(f), IrisEngineData.class);
if (data == null) { if (data == null) {
Iris.error("Failed to read Engine Data! Corrupted File? recreating..."); IrisLogging.error("Failed to read Engine Data! Corrupted File? recreating...");
} }
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
@@ -436,7 +437,7 @@ public class IrisEngine implements Engine {
data.getStatistics().setMCVersion(Iris.instance.getMCVersion()); data.getStatistics().setMCVersion(Iris.instance.getMCVersion());
data.getStatistics().setUpgradedVersion(Iris.instance.getIrisVersion()); data.getStatistics().setUpgradedVersion(Iris.instance.getIrisVersion());
if (data.getStatistics().getVersion() == -1 || data.getStatistics().getMCVersion() == -1 ) { if (data.getStatistics().getVersion() == -1 || data.getStatistics().getMCVersion() == -1 ) {
Iris.error("Failed to setup Engine Data!"); IrisLogging.error("Failed to setup Engine Data!");
} }
if (f.getParentFile().exists() || f.getParentFile().mkdirs()) { if (f.getParentFile().exists() || f.getParentFile().mkdirs()) {
@@ -446,7 +447,7 @@ public class IrisEngine implements Engine {
e.printStackTrace(); e.printStackTrace();
} }
} else { } else {
Iris.error("Failed to setup Engine Data!"); IrisLogging.error("Failed to setup Engine Data!");
} }
} }
@@ -601,7 +602,7 @@ public class IrisEngine implements Engine {
getData().dump(); getData().dump();
getData().clearLists(); getData().clearLists();
Iris.service(PreservationSVC.class).dereference(); Iris.service(PreservationSVC.class).dereference();
Iris.debug("Engine Fully Shutdown!"); IrisLogging.debug("Engine Fully Shutdown!");
} }
@Override @Override
@@ -640,8 +641,8 @@ public class IrisEngine implements Engine {
try { try {
getData().getObjectLoader().clean(); getData().getObjectLoader().clean();
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
Iris.error("Cleanup failed! Enable debug to see stacktrace."); IrisLogging.error("Cleanup failed! Enable debug to see stacktrace.");
} }
cleaning.lazySet(false); cleaning.lazySet(false);
@@ -687,7 +688,7 @@ public class IrisEngine implements Engine {
} catch (GenerationSessionException e) { } catch (GenerationSessionException e) {
throw e; throw e;
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
fail("Failed to generate " + x + ", " + z, e); fail("Failed to generate " + x + ", " + z, e);
} }
} }
@@ -704,9 +705,9 @@ public class IrisEngine implements Engine {
f.getParentFile().mkdirs(); f.getParentFile().mkdirs();
try { try {
IO.writeAll(f, new Gson().toJson(getEngineData())); IO.writeAll(f, new Gson().toJson(getEngineData()));
Iris.debug("Saved Engine Data"); IrisLogging.debug("Saved Engine Data");
} catch (IOException e) { } catch (IOException e) {
Iris.error("Failed to save Engine Data"); IrisLogging.error("Failed to save Engine Data");
e.printStackTrace(); e.printStackTrace();
} }
} }
@@ -737,7 +738,7 @@ public class IrisEngine implements Engine {
@Override @Override
public void fail(String error, Throwable e) { public void fail(String error, Throwable e) {
failing = true; failing = true;
Iris.error(error); IrisLogging.error(error);
e.printStackTrace(); e.printStackTrace();
} }
@@ -32,6 +32,7 @@ import art.arcane.iris.engine.mantle.components.MantleFloatingObjectComponent;
import art.arcane.iris.engine.mantle.components.MantleFluidBodyComponent; import art.arcane.iris.engine.mantle.components.MantleFluidBodyComponent;
import art.arcane.iris.engine.mantle.components.MantleObjectComponent; import art.arcane.iris.engine.mantle.components.MantleObjectComponent;
import art.arcane.iris.engine.mantle.components.IrisStructureComponent; import art.arcane.iris.engine.mantle.components.IrisStructureComponent;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.iris.util.project.matter.IrisMatterSupport; import art.arcane.iris.util.project.matter.IrisMatterSupport;
import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KList;
import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.collection.KMap;
@@ -283,10 +284,10 @@ public class IrisEngineMantle implements EngineMantle {
long end, long end,
art.arcane.volmlib.util.io.CountingDataInputStream din, art.arcane.volmlib.util.io.CountingDataInputStream din,
IOException error) { IOException error) {
Iris.error("Failed to read chunk section, skipping it."); IrisLogging.error("Failed to read chunk section, skipping it.");
Iris.addPanic("read.byte.range", start + " " + end); Iris.addPanic("read.byte.range", start + " " + end);
Iris.addPanic("read.byte.current", din.count() + ""); Iris.addPanic("read.byte.current", din.count() + "");
Iris.reportError(error); IrisLogging.reportError(error);
error.printStackTrace(); error.printStackTrace();
Iris.panic(); Iris.panic();
TectonicPlate.addError(); TectonicPlate.addError();
@@ -308,10 +309,10 @@ public class IrisEngineMantle implements EngineMantle {
long end, long end,
art.arcane.volmlib.util.io.CountingDataInputStream din, art.arcane.volmlib.util.io.CountingDataInputStream din,
Throwable error) { Throwable error) {
Iris.error("Failed to read chunk, creating a new chunk instead."); IrisLogging.error("Failed to read chunk, creating a new chunk instead.");
Iris.addPanic("read.byte.range", start + " " + end); Iris.addPanic("read.byte.range", start + " " + end);
Iris.addPanic("read.byte.current", din.count() + ""); Iris.addPanic("read.byte.current", din.count() + "");
Iris.reportError(error); IrisLogging.reportError(error);
error.printStackTrace(); error.printStackTrace();
Iris.panic(); Iris.panic();
} }
@@ -328,17 +329,17 @@ public class IrisEngineMantle implements EngineMantle {
@Override @Override
public void onDebug(String message) { public void onDebug(String message) {
Iris.debug(message); IrisLogging.debug(message);
} }
@Override @Override
public void onWarn(String message) { public void onWarn(String message) {
Iris.warn(message); IrisLogging.warn(message);
} }
@Override @Override
public void onError(Throwable throwable) { public void onError(Throwable throwable) {
Iris.reportError(throwable); IrisLogging.reportError(throwable);
} }
}; };
} }
@@ -356,9 +357,9 @@ public class IrisEngineMantle implements EngineMantle {
String message = "Acquired Channel for " + C.DARK_GREEN + name + C.RED + " in " + Form.duration(millis, 2) String message = "Acquired Channel for " + C.DARK_GREEN + name + C.RED + " in " + Form.duration(millis, 2)
+ C.GRAY + " thread=" + threadName; + C.GRAY + " thread=" + threadName;
if (millis >= 1000L) { if (millis >= 1000L) {
Iris.warn(message); IrisLogging.warn(message);
} else { } else {
Iris.debug(message); IrisLogging.debug(message);
} }
} }
); );
@@ -375,7 +376,7 @@ public class IrisEngineMantle implements EngineMantle {
File dump = Iris.instance.getDataFolder("dump", name + ".bin"); File dump = Iris.instance.getDataFolder("dump", name + ".bin");
worker.dumpDecoded(name, dump.toPath()); worker.dumpDecoded(name, dump.toPath());
} else { } else {
Iris.debug("Read Tectonic Plate " + C.DARK_GREEN + name + C.RED + " in " + Form.duration(stopwatch.getMilliseconds(), 2)); IrisLogging.debug("Read Tectonic Plate " + C.DARK_GREEN + name + C.RED + " in " + Form.duration(stopwatch.getMilliseconds(), 2));
} }
} }
} }
@@ -384,7 +385,7 @@ public class IrisEngineMantle implements EngineMantle {
public void write(String name, TectonicPlate<Matter> region) throws Exception { public void write(String name, TectonicPlate<Matter> region) throws Exception {
PrecisionStopwatch stopwatch = PrecisionStopwatch.start(); PrecisionStopwatch stopwatch = PrecisionStopwatch.start();
worker.write(name, "iris", ".bin", region, TectonicPlate::write); 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)); IrisLogging.debug("Saved Tectonic Plate " + C.DARK_GREEN + name + C.RED + " in " + Form.duration(stopwatch.getMilliseconds(), 2));
} }
@Override @Override
@@ -27,6 +27,7 @@ import art.arcane.iris.engine.data.cache.Cache;
import art.arcane.iris.engine.framework.Engine; import art.arcane.iris.engine.framework.Engine;
import art.arcane.iris.engine.framework.EngineAssignedWorldManager; import art.arcane.iris.engine.framework.EngineAssignedWorldManager;
import art.arcane.iris.engine.object.*; import art.arcane.iris.engine.object.*;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KList;
import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.collection.KMap;
import art.arcane.volmlib.util.collection.KSet; import art.arcane.volmlib.util.collection.KSet;
@@ -231,7 +232,7 @@ public class IrisWorldManager extends EngineAssignedWorldManager {
mantle.flag(chunkX, chunkZ, MantleFlag.DISCOVERED, true); mantle.flag(chunkX, chunkZ, MantleFlag.DISCOVERED, true);
} }
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
} finally { } finally {
discoveredFlagQueue.remove(key); discoveredFlagQueue.remove(key);
} }
@@ -341,7 +342,7 @@ public class IrisWorldManager extends EngineAssignedWorldManager {
raised = true; raised = true;
} }
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
} finally { } finally {
markerFlagQueue.remove(key); markerFlagQueue.remove(key);
} }
@@ -369,7 +370,7 @@ public class IrisWorldManager extends EngineAssignedWorldManager {
try { try {
getMantle().getChunk(chunkX, chunkZ); getMantle().getChunk(chunkX, chunkZ);
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
} finally { } finally {
mantleWarmupQueue.remove(key); mantleWarmupQueue.remove(key);
} }
@@ -389,14 +390,14 @@ public class IrisWorldManager extends EngineAssignedWorldManager {
actuallySpawned = 0; actuallySpawned = 0;
if (!getEngine().getWorld().hasRealWorld()) { if (!getEngine().getWorld().hasRealWorld()) {
Iris.debug("Can't spawn. No real world"); IrisLogging.debug("Can't spawn. No real world");
J.sleep(5000); J.sleep(5000);
return false; return false;
} }
double epx = getEntitySaturation(); double epx = getEntitySaturation();
if (epx > IrisSettings.get().getWorld().getTargetSpawnEntitiesPerChunk()) { if (epx > IrisSettings.get().getWorld().getTargetSpawnEntitiesPerChunk()) {
Iris.debug("Can't spawn. The entity per chunk ratio is at " + Form.pc(epx, 2) + " > 100% (total entities " + entityCount + ")"); IrisLogging.debug("Can't spawn. The entity per chunk ratio is at " + Form.pc(epx, 2) + " > 100% (total entities " + entityCount + ")");
J.sleep(5000); J.sleep(5000);
return false; return false;
} }
@@ -433,7 +434,7 @@ public class IrisWorldManager extends EngineAssignedWorldManager {
Chunk[] cc = getLoadedChunksSnapshot(world); Chunk[] cc = getLoadedChunksSnapshot(world);
while (spawnBuffer-- > 0) { while (spawnBuffer-- > 0) {
if (cc.length == 0) { if (cc.length == 0) {
Iris.debug("Can't spawn. No chunks!"); IrisLogging.debug("Can't spawn. No chunks!");
return false; return false;
} }
@@ -479,7 +480,7 @@ public class IrisWorldManager extends EngineAssignedWorldManager {
try { try {
return future.get(2, TimeUnit.SECONDS); return future.get(2, TimeUnit.SECONDS);
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
return new Chunk[0]; return new Chunk[0];
} }
} }
@@ -546,7 +547,7 @@ public class IrisWorldManager extends EngineAssignedWorldManager {
try { try {
future.get(5, TimeUnit.SECONDS); future.get(5, TimeUnit.SECONDS);
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
} }
} }
@@ -772,7 +773,7 @@ public class IrisWorldManager extends EngineAssignedWorldManager {
Thread.currentThread().interrupt(); Thread.currentThread().interrupt();
Iris.verbose("Chunk warmup interrupted while loading async teleport chunk."); Iris.verbose("Chunk warmup interrupted while loading async teleport chunk.");
} catch (ExecutionException ex) { } catch (ExecutionException ex) {
Iris.reportError(ex); IrisLogging.reportError(ex);
} }
} }
@@ -816,7 +817,7 @@ public class IrisWorldManager extends EngineAssignedWorldManager {
for (String i : mark.getSpawners()) { for (String i : mark.getSpawners()) {
IrisSpawner m = getData().getSpawnerLoader().load(i); IrisSpawner m = getData().getSpawnerLoader().load(i);
if (m == null) { if (m == null) {
Iris.error("Cannot load spawner: " + i + " for marker on " + getName()); IrisLogging.error("Cannot load spawner: " + i + " for marker on " + getName());
continue; continue;
} }
m.setReferenceMarker(mark); m.setReferenceMarker(mark);
@@ -889,7 +890,7 @@ public class IrisWorldManager extends EngineAssignedWorldManager {
}); });
}); });
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
} finally { } finally {
markerScanQueue.remove(key); markerScanQueue.remove(key);
} }
@@ -915,7 +916,7 @@ public class IrisWorldManager extends EngineAssignedWorldManager {
for (String i : mark.getSpawners()) { for (String i : mark.getSpawners()) {
IrisSpawner spawner = getData().getSpawnerLoader().load(i); IrisSpawner spawner = getData().getSpawnerLoader().load(i);
if (spawner == null) { if (spawner == null) {
Iris.error("Cannot load spawner: " + i + " for marker on " + getName()); IrisLogging.error("Cannot load spawner: " + i + " for marker on " + getName());
continue; continue;
} }
spawner.setReferenceMarker(mark); spawner.setReferenceMarker(mark);
@@ -948,7 +949,7 @@ public class IrisWorldManager extends EngineAssignedWorldManager {
try { try {
getMantle().remove(marker.getX(), marker.getY(), marker.getZ(), MatterMarker.class); getMantle().remove(marker.getX(), marker.getY(), marker.getZ(), MatterMarker.class);
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
} }
}); });
} }
@@ -1,10 +1,10 @@
package art.arcane.iris.engine; package art.arcane.iris.engine;
import art.arcane.iris.Iris;
import art.arcane.iris.core.IrisSettings; import art.arcane.iris.core.IrisSettings;
import art.arcane.iris.core.loader.IrisData; import art.arcane.iris.core.loader.IrisData;
import art.arcane.iris.engine.framework.Engine; import art.arcane.iris.engine.framework.Engine;
import art.arcane.iris.engine.object.*; import art.arcane.iris.engine.object.*;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KList;
import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.collection.KMap;
import art.arcane.volmlib.util.collection.KSet; import art.arcane.volmlib.util.collection.KSet;
@@ -212,7 +212,7 @@ public class UpperDimensionContext implements DataProvider {
} }
return new NoiseBounds(bMin, bMax); return new NoiseBounds(bMin, bMax);
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
return ZERO_NOISE_BOUNDS; return ZERO_NOISE_BOUNDS;
} }
}); });
@@ -18,7 +18,7 @@
package art.arcane.iris.engine.data.cache; package art.arcane.iris.engine.data.cache;
import art.arcane.iris.Iris; import art.arcane.iris.spi.IrisLogging;
import art.arcane.volmlib.util.function.NastySupplier; import art.arcane.volmlib.util.function.NastySupplier;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
@@ -96,7 +96,7 @@ public class AtomicCache<T> {
set.set(true); set.set(true);
} }
} catch (Throwable e) { } catch (Throwable e) {
Iris.error("Atomic cache failure!"); IrisLogging.error("Atomic cache failure!");
e.printStackTrace(); e.printStackTrace();
} }
@@ -18,13 +18,13 @@
package art.arcane.iris.engine.decorator; package art.arcane.iris.engine.decorator;
import art.arcane.iris.Iris;
import art.arcane.iris.core.loader.IrisData; import art.arcane.iris.core.loader.IrisData;
import art.arcane.iris.engine.mantle.EngineMantle; import art.arcane.iris.engine.mantle.EngineMantle;
import art.arcane.iris.engine.object.IrisBiome; import art.arcane.iris.engine.object.IrisBiome;
import art.arcane.iris.engine.object.IrisDecorationPart; import art.arcane.iris.engine.object.IrisDecorationPart;
import art.arcane.iris.engine.object.IrisDecorator; import art.arcane.iris.engine.object.IrisDecorator;
import art.arcane.iris.platform.bukkit.BukkitBlockState; import art.arcane.iris.platform.bukkit.BukkitBlockState;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.spi.PlatformBlockState;
import art.arcane.iris.util.common.data.B; import art.arcane.iris.util.common.data.B;
import art.arcane.iris.util.project.hunk.Hunk; import art.arcane.iris.util.project.hunk.Hunk;
@@ -83,7 +83,7 @@ final class DecoratorCore {
} }
} }
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
} }
} }
@@ -107,7 +107,7 @@ final class DecoratorCore {
data.set(x, height + 2, z, BukkitBlockState.of(top)); data.set(x, height + 2, z, BukkitBlockState.of(top));
} }
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
} }
BlockData bottom = rawBd.clone(); BlockData bottom = rawBd.clone();
((Bisected) bottom).setHalf(Bisected.Half.BOTTOM); ((Bisected) bottom).setHalf(Bisected.Half.BOTTOM);
@@ -160,7 +160,7 @@ final class DecoratorCore {
data.set(x, height + 2, z, BukkitBlockState.of(top)); data.set(x, height + 2, z, BukkitBlockState.of(top));
} }
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
} }
BlockData bottom = rawBd.clone(); BlockData bottom = rawBd.clone();
((Bisected) bottom).setHalf(Bisected.Half.BOTTOM); ((Bisected) bottom).setHalf(Bisected.Half.BOTTOM);
@@ -291,7 +291,7 @@ final class DecoratorCore {
data.set(xf, height + 2, zf, BukkitBlockState.of(top)); data.set(xf, height + 2, zf, BukkitBlockState.of(top));
} }
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
} }
BlockData bottom = rawBd.clone(); BlockData bottom = rawBd.clone();
((Bisected) bottom).setHalf(Bisected.Half.BOTTOM); ((Bisected) bottom).setHalf(Bisected.Half.BOTTOM);
@@ -38,6 +38,7 @@ import art.arcane.iris.engine.data.chunk.TerrainChunk;
import art.arcane.iris.engine.mantle.EngineMantle; import art.arcane.iris.engine.mantle.EngineMantle;
import art.arcane.iris.engine.object.*; import art.arcane.iris.engine.object.*;
import art.arcane.iris.platform.bukkit.BukkitBlockState; import art.arcane.iris.platform.bukkit.BukkitBlockState;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.iris.spi.PlatformBiome; import art.arcane.iris.spi.PlatformBiome;
import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.spi.PlatformBlockState;
import art.arcane.iris.util.project.matter.TileWrapper; import art.arcane.iris.util.project.matter.TileWrapper;
@@ -345,14 +346,14 @@ public interface Engine extends DataProvider, Fallible, LootProvider, BlockUpdat
if (c.getWorld().isChunkLoaded(c.getX() + x, c.getZ() + z)) if (c.getWorld().isChunkLoaded(c.getX() + x, c.getZ() + z))
continue; continue;
var msg = "Chunk %s, %s [%s, %s] is not loaded".formatted(c.getX() + x, c.getZ() + z, x, z); var msg = "Chunk %s, %s [%s, %s] is not loaded".formatted(c.getX() + x, c.getZ() + z, x, z);
Iris.debug(msg); IrisLogging.debug(msg);
return; return;
} }
} }
var mantle = getMantle().getMantle(); var mantle = getMantle().getMantle();
if (!mantle.isLoaded(c)) { if (!mantle.isLoaded(c)) {
var msg = "Mantle Chunk " + c.getX() + "," + c.getZ() + " is not loaded"; var msg = "Mantle Chunk " + c.getX() + "," + c.getZ() + " is not loaded";
Iris.debug(msg); IrisLogging.debug(msg);
return; return;
} }
@@ -362,7 +363,7 @@ public interface Engine extends DataProvider, Fallible, LootProvider, BlockUpdat
try { try {
scheduled.join(); scheduled.join();
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
} }
} }
return; return;
@@ -378,7 +379,7 @@ public interface Engine extends DataProvider, Fallible, LootProvider, BlockUpdat
NamespacedKey tileTypeKey = KeyedType.getKey(v.getData().getMaterial()); NamespacedKey tileTypeKey = KeyedType.getKey(v.getData().getMaterial());
String blockType = blockTypeKey == null ? block.getType().name() : blockTypeKey.toString(); String blockType = blockTypeKey == null ? block.getType().name() : blockTypeKey.toString();
String tileType = tileTypeKey == null ? v.getData().getMaterial().name() : tileTypeKey.toString(); String tileType = tileTypeKey == null ? v.getData().getMaterial().name() : tileTypeKey.toString();
Iris.warn("Failed to set tile entity data at [%d %d %d | %s] for tile %s!", block.getX(), block.getY(), block.getZ(), blockType, tileType); IrisLogging.warn("Failed to set tile entity data at [%d %d %d | %s] for tile %s!", block.getX(), block.getY(), block.getZ(), blockType, tileType);
} }
}); });
}; };
@@ -455,7 +456,7 @@ public interface Engine extends DataProvider, Fallible, LootProvider, BlockUpdat
semaphore.acquire(1024); semaphore.acquire(1024);
} catch (InterruptedException ex) { } catch (InterruptedException ex) {
Thread.currentThread().interrupt(); Thread.currentThread().interrupt();
Iris.reportError(ex); IrisLogging.reportError(ex);
} }
} finally { } finally {
chunk.release(); chunk.release();
@@ -528,7 +529,7 @@ public interface Engine extends DataProvider, Fallible, LootProvider, BlockUpdat
addItems(false, m.getInventory(), rx, tables, slot, c.getWorld(), x, y, z, 15); addItems(false, m.getInventory(), rx, tables, slot, c.getWorld(), x, y, z, 15);
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
} }
} }
} else { } else {
@@ -758,7 +759,7 @@ public interface Engine extends DataProvider, Fallible, LootProvider, BlockUpdat
default IrisPosition lookForBiome(IrisBiome biome, long timeout, Consumer<Integer> triesc) { default IrisPosition lookForBiome(IrisBiome biome, long timeout, Consumer<Integer> triesc) {
if (!getWorld().hasRealWorld()) { if (!getWorld().hasRealWorld()) {
Iris.error("Cannot GOTO without a bound world (headless mode)"); IrisLogging.error("Cannot GOTO without a bound world (headless mode)");
return null; return null;
} }
@@ -798,13 +799,13 @@ public interface Engine extends DataProvider, Fallible, LootProvider, BlockUpdat
tries.getAndIncrement(); tries.getAndIncrement();
} catch (Throwable ex) { } catch (Throwable ex) {
Iris.reportError(ex); IrisLogging.reportError(ex);
ex.printStackTrace(); ex.printStackTrace();
return; return;
} }
} }
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
e.printStackTrace(); e.printStackTrace();
} }
}); });
@@ -829,7 +830,7 @@ public interface Engine extends DataProvider, Fallible, LootProvider, BlockUpdat
default IrisPosition lookForRegion(IrisRegion reg, long timeout, Consumer<Integer> triesc) { default IrisPosition lookForRegion(IrisRegion reg, long timeout, Consumer<Integer> triesc) {
if (!getWorld().hasRealWorld()) { if (!getWorld().hasRealWorld()) {
Iris.error("Cannot GOTO without a bound world (headless mode)"); IrisLogging.error("Cannot GOTO without a bound world (headless mode)");
return null; return null;
} }
@@ -865,7 +866,7 @@ public interface Engine extends DataProvider, Fallible, LootProvider, BlockUpdat
tries.getAndIncrement(); tries.getAndIncrement();
} catch (Throwable xe) { } catch (Throwable xe) {
Iris.reportError(xe); IrisLogging.reportError(xe);
xe.printStackTrace(); xe.printStackTrace();
return; return;
} }
@@ -1054,12 +1055,12 @@ public interface Engine extends DataProvider, Fallible, LootProvider, BlockUpdat
CompletableFuture<Boolean> teleportFuture = PaperLib.teleportAsync(player, location); CompletableFuture<Boolean> teleportFuture = PaperLib.teleportAsync(player, location);
if (teleportFuture != null) { if (teleportFuture != null) {
teleportFuture.exceptionally(throwable -> { teleportFuture.exceptionally(throwable -> {
Iris.reportError(throwable); IrisLogging.reportError(throwable);
return false; return false;
}); });
} }
} catch (Throwable throwable) { } catch (Throwable throwable) {
Iris.reportError(throwable); IrisLogging.reportError(throwable);
} }
} }
@@ -1071,7 +1072,7 @@ public interface Engine extends DataProvider, Fallible, LootProvider, BlockUpdat
} catch (NoSuchMethodException ignored) { } catch (NoSuchMethodException ignored) {
return false; return false;
} catch (Throwable throwable) { } catch (Throwable throwable) {
Iris.reportError(throwable); IrisLogging.reportError(throwable);
return false; return false;
} }
} }
@@ -18,7 +18,7 @@
package art.arcane.iris.engine.framework; package art.arcane.iris.engine.framework;
import art.arcane.iris.Iris; import art.arcane.iris.spi.IrisLogging;
import art.arcane.volmlib.util.math.RollingSequence; import art.arcane.volmlib.util.math.RollingSequence;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@@ -33,7 +33,7 @@ public class EngineAssignedComponent implements EngineComponent {
private final String name; private final String name;
public EngineAssignedComponent(Engine engine, String name) { public EngineAssignedComponent(Engine engine, String name) {
Iris.debug("Engine: " + engine.getCacheID() + " Starting " + name); IrisLogging.debug("Engine: " + engine.getCacheID() + " Starting " + name);
this.engine = engine; this.engine = engine;
this.metrics = new RollingSequence(16); this.metrics = new RollingSequence(16);
this.name = name; this.name = name;
@@ -18,7 +18,7 @@
package art.arcane.iris.engine.framework; package art.arcane.iris.engine.framework;
import art.arcane.iris.Iris; import art.arcane.iris.spi.IrisLogging;
import art.arcane.iris.util.project.context.ChunkContext; import art.arcane.iris.util.project.context.ChunkContext;
import art.arcane.volmlib.util.documentation.BlockCoordinates; import art.arcane.volmlib.util.documentation.BlockCoordinates;
import art.arcane.iris.util.project.hunk.Hunk; import art.arcane.iris.util.project.hunk.Hunk;
@@ -36,7 +36,7 @@ public abstract class EngineAssignedModifier<T> extends EngineAssignedComponent
try { try {
onModify(x, z, output, multicore, context); onModify(x, z, output, multicore, context);
} catch (Throwable e) { } catch (Throwable e) {
Iris.error("Modifier Failure: " + getName()); IrisLogging.error("Modifier Failure: " + getName());
e.printStackTrace(); e.printStackTrace();
} }
} }
@@ -18,11 +18,11 @@
package art.arcane.iris.engine.framework; package art.arcane.iris.engine.framework;
import art.arcane.iris.Iris;
import art.arcane.iris.core.loader.IrisData; import art.arcane.iris.core.loader.IrisData;
import art.arcane.iris.engine.IrisComplex; import art.arcane.iris.engine.IrisComplex;
import art.arcane.iris.engine.object.IrisDimension; import art.arcane.iris.engine.object.IrisDimension;
import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.platform.bukkit.BukkitPlatform;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.volmlib.util.math.RollingSequence; import art.arcane.volmlib.util.math.RollingSequence;
import art.arcane.iris.util.common.parallel.MultiBurst; import art.arcane.iris.util.common.parallel.MultiBurst;
@@ -41,7 +41,7 @@ public interface EngineComponent {
try { try {
BukkitPlatform.unregisterListener(this); BukkitPlatform.unregisterListener(this);
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
} }
} }
@@ -18,8 +18,8 @@
package art.arcane.iris.engine.framework; package art.arcane.iris.engine.framework;
import art.arcane.iris.spi.IrisLogging;
import com.google.gson.Gson; import com.google.gson.Gson;
import art.arcane.iris.Iris;
import art.arcane.iris.engine.object.IrisPosition; import art.arcane.iris.engine.object.IrisPosition;
import art.arcane.volmlib.util.io.IO; import art.arcane.volmlib.util.io.IO;
import lombok.Data; import lombok.Data;
@@ -39,7 +39,7 @@ public class EngineData {
f.getParentFile().mkdirs(); f.getParentFile().mkdirs();
return new Gson().fromJson(IO.readAll(f), EngineData.class); return new Gson().fromJson(IO.readAll(f), EngineData.class);
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
} }
@@ -51,7 +51,7 @@ public class EngineData {
f.getParentFile().mkdirs(); f.getParentFile().mkdirs();
IO.writeAll(f, new Gson().toJson(this)); IO.writeAll(f, new Gson().toJson(this));
} catch (IOException e) { } catch (IOException e) {
Iris.reportError(e); IrisLogging.reportError(e);
e.printStackTrace(); e.printStackTrace();
} }
} }
@@ -18,11 +18,11 @@
package art.arcane.iris.engine.framework; package art.arcane.iris.engine.framework;
import art.arcane.iris.Iris;
import art.arcane.iris.core.IrisSettings; import art.arcane.iris.core.IrisSettings;
import art.arcane.iris.engine.object.IrisBiome; import art.arcane.iris.engine.object.IrisBiome;
import art.arcane.iris.engine.object.IrisEffect; import art.arcane.iris.engine.object.IrisEffect;
import art.arcane.iris.engine.object.IrisRegion; import art.arcane.iris.engine.object.IrisRegion;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.volmlib.util.math.M; import art.arcane.volmlib.util.math.M;
import art.arcane.iris.util.common.scheduling.J; import art.arcane.iris.util.common.scheduling.J;
import lombok.Data; import lombok.Data;
@@ -56,7 +56,7 @@ public class EnginePlayer {
try { try {
j.apply(player, getEngine()); j.apply(player, getEngine());
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
} }
} }
@@ -67,7 +67,7 @@ public class EnginePlayer {
try { try {
j.apply(player, getEngine()); j.apply(player, getEngine());
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
} }
} }
@@ -92,7 +92,7 @@ public class EnginePlayer {
} }
return false; return false;
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
} }
return true; return true;
@@ -18,14 +18,14 @@
package art.arcane.iris.engine.framework; package art.arcane.iris.engine.framework;
import art.arcane.iris.Iris; import art.arcane.iris.spi.IrisLogging;
public interface Fallible { public interface Fallible {
default void fail(String error) { default void fail(String error) {
try { try {
throw new RuntimeException(); throw new RuntimeException();
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
fail(error, e); fail(error, e);
} }
} }
@@ -18,7 +18,6 @@
package art.arcane.iris.engine.framework; package art.arcane.iris.engine.framework;
import art.arcane.iris.Iris;
import art.arcane.iris.core.loader.IrisData; import art.arcane.iris.core.loader.IrisData;
import art.arcane.iris.engine.object.IrisDirection; import art.arcane.iris.engine.object.IrisDirection;
import art.arcane.iris.engine.object.IrisJigsawConnector; import art.arcane.iris.engine.object.IrisJigsawConnector;
@@ -29,6 +28,7 @@ import art.arcane.iris.engine.object.IrisObject;
import art.arcane.iris.engine.object.IrisObjectRotation; import art.arcane.iris.engine.object.IrisObjectRotation;
import art.arcane.iris.engine.object.IrisStructure; import art.arcane.iris.engine.object.IrisStructure;
import art.arcane.iris.engine.object.JigsawJoint; import art.arcane.iris.engine.object.JigsawJoint;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KList;
import art.arcane.iris.engine.object.IrisPosition; import art.arcane.iris.engine.object.IrisPosition;
import art.arcane.volmlib.util.math.RNG; import art.arcane.volmlib.util.math.RNG;
@@ -59,7 +59,7 @@ public final class StructureAssembler {
public KList<PlacedStructurePiece> assemble(RNG rng) { public KList<PlacedStructurePiece> assemble(RNG rng) {
IrisJigsawPool startPool = IrisData.loadAnyJigsawPool(structure.getStartPool(), data); IrisJigsawPool startPool = IrisData.loadAnyJigsawPool(structure.getStartPool(), data);
if (startPool == null || startPool.getPieces().isEmpty()) { if (startPool == null || startPool.getPieces().isEmpty()) {
Iris.warn("Structure " + structure.getLoadKey() + " has no resolvable start pool '" + structure.getStartPool() + "'"); IrisLogging.warn("Structure " + structure.getLoadKey() + " has no resolvable start pool '" + structure.getStartPool() + "'");
return null; return null;
} }
@@ -72,7 +72,7 @@ public final class StructureAssembler {
} }
IrisObject startObject = IrisData.loadAnyObject(startPiece.getObject(), data); IrisObject startObject = IrisData.loadAnyObject(startPiece.getObject(), data);
if (startObject == null) { if (startObject == null) {
Iris.warn("Jigsaw piece references missing object '" + startPiece.getObject() + "'"); IrisLogging.warn("Jigsaw piece references missing object '" + startPiece.getObject() + "'");
return null; return null;
} }
@@ -1,6 +1,5 @@
package art.arcane.iris.engine.framework.placer; package art.arcane.iris.engine.framework.placer;
import art.arcane.iris.Iris;
import art.arcane.iris.core.loader.IrisData; import art.arcane.iris.core.loader.IrisData;
import art.arcane.iris.core.tools.IrisToolbelt; import art.arcane.iris.core.tools.IrisToolbelt;
import art.arcane.iris.engine.data.cache.Cache; import art.arcane.iris.engine.data.cache.Cache;
@@ -12,6 +11,7 @@ import art.arcane.iris.engine.object.InventorySlotType;
import art.arcane.iris.engine.object.IrisLootTable; import art.arcane.iris.engine.object.IrisLootTable;
import art.arcane.iris.engine.object.TileData; import art.arcane.iris.engine.object.TileData;
import art.arcane.iris.platform.bukkit.BukkitBlockState; import art.arcane.iris.platform.bukkit.BukkitBlockState;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.spi.PlatformBlockState;
import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KList;
import art.arcane.iris.util.common.data.B; import art.arcane.iris.util.common.data.B;
@@ -65,7 +65,7 @@ public class WorldObjectPlacer implements IObjectPlacer {
if (d instanceof IrisCustomData data) { if (d instanceof IrisCustomData data) {
block.setBlockData(data.getBase(), false); block.setBlockData(data.getBase(), false);
Iris.warn("Tried to place custom block at " + x + ", " + y + ", " + z + " which is not supported!"); IrisLogging.warn("Tried to place custom block at " + x + ", " + y + ", " + z + " which is not supported!");
} else block.setBlockData(d, false); } else block.setBlockData(d, false);
if (slot != null) { if (slot != null) {
@@ -76,7 +76,7 @@ public class WorldObjectPlacer implements IObjectPlacer {
Bukkit.getPluginManager().callEvent(new IrisLootEvent(engine, block, slot, tables)); Bukkit.getPluginManager().callEvent(new IrisLootEvent(engine, block, slot, tables));
if (!tables.isEmpty()){ if (!tables.isEmpty()){
Iris.debug("IrisLootEvent has been accessed"); IrisLogging.debug("IrisLootEvent has been accessed");
} }
if (tables.isEmpty()) if (tables.isEmpty())
@@ -84,7 +84,7 @@ public class WorldObjectPlacer implements IObjectPlacer {
InventoryHolder m = (InventoryHolder) block.getState(); InventoryHolder m = (InventoryHolder) block.getState();
engine.addItems(false, m.getInventory(), rx, tables, slot, world, x, y, z, 15); engine.addItems(false, m.getInventory(), rx, tables, slot, world, x, y, z, 15);
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
} }
} }
} }
@@ -18,9 +18,9 @@
package art.arcane.iris.engine.mantle; package art.arcane.iris.engine.mantle;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.iris.util.project.matter.TileWrapper; import art.arcane.iris.util.project.matter.TileWrapper;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import art.arcane.iris.Iris;
import art.arcane.iris.core.IrisSettings; import art.arcane.iris.core.IrisSettings;
import art.arcane.iris.core.tools.IrisToolbelt; import art.arcane.iris.core.tools.IrisToolbelt;
import art.arcane.iris.core.loader.IrisData; import art.arcane.iris.core.loader.IrisData;
@@ -76,7 +76,7 @@ public class MantleWriter implements IObjectPlacer, AutoCloseable {
&& IrisToolbelt.isWorldMaintenanceActive(engineMantle.getEngine().getWorld().realWorld()); && IrisToolbelt.isWorldMaintenanceActive(engineMantle.getEngine().getWorld().realWorld());
final int parallelism = foliaMaintenance ? 1 : (multicore ? Runtime.getRuntime().availableProcessors() / 2 : 4); final int parallelism = foliaMaintenance ? 1 : (multicore ? Runtime.getRuntime().availableProcessors() / 2 : 4);
if (foliaMaintenance && IrisSettings.get().getGeneral().isDebug()) { if (foliaMaintenance && IrisSettings.get().getGeneral().isDebug()) {
Iris.info("MantleWriter using sequential chunk prefetch for maintenance regen at " + x + "," + z + "."); IrisLogging.info("MantleWriter using sequential chunk prefetch for maintenance regen at " + x + "," + z + ".");
} }
final var map = multicore ? cachedChunks : new KMap<Long, MantleChunk<Matter>>(d * d, 1f, parallelism); final var map = multicore ? cachedChunks : new KMap<Long, MantleChunk<Matter>>(d * d, 1f, parallelism);
mantle.getChunks( mantle.getChunks(
@@ -244,7 +244,7 @@ public class MantleWriter implements IObjectPlacer, AutoCloseable {
public MantleChunk<Matter> acquireChunk(int cx, int cz) { public MantleChunk<Matter> acquireChunk(int cx, int cz) {
if (cx < this.x - radius || cx > this.x + radius if (cx < this.x - radius || cx > this.x + radius
|| cz < this.z - radius || cz > this.z + radius) { || cz < this.z - radius || cz > this.z + radius) {
Iris.error("Mantle Writer Accessed chunk out of bounds" + cx + "," + cz); IrisLogging.error("Mantle Writer Accessed chunk out of bounds" + cx + "," + cz);
return null; return null;
} }
final Long key = Cache.key(cx, cz); final Long key = Cache.key(cx, cz);
@@ -758,7 +758,7 @@ public class MantleWriter implements IObjectPlacer, AutoCloseable {
try { try {
setData(pos.getX(), pos.getY(), pos.getZ(), data); setData(pos.getX(), pos.getY(), pos.getZ(), data);
} catch (Throwable e) { } catch (Throwable e) {
Iris.error("No set? " + data.toString() + " for " + pos.toString()); IrisLogging.error("No set? " + data.toString() + " for " + pos.toString());
} }
} }
@@ -18,7 +18,6 @@
package art.arcane.iris.engine.mantle.components; package art.arcane.iris.engine.mantle.components;
import art.arcane.iris.Iris;
import art.arcane.iris.core.IrisSettings; import art.arcane.iris.core.IrisSettings;
import art.arcane.iris.engine.IrisComplex; import art.arcane.iris.engine.IrisComplex;
import art.arcane.iris.engine.data.cache.Cache; import art.arcane.iris.engine.data.cache.Cache;
@@ -37,6 +36,7 @@ import art.arcane.iris.engine.object.ObjectPlaceMode;
import art.arcane.iris.engine.object.IrisRegion; import art.arcane.iris.engine.object.IrisRegion;
import art.arcane.iris.engine.object.IrisStructure; import art.arcane.iris.engine.object.IrisStructure;
import art.arcane.iris.engine.object.IrisStructurePlacement; import art.arcane.iris.engine.object.IrisStructurePlacement;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.iris.util.project.noise.CNG; import art.arcane.iris.util.project.noise.CNG;
import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KList;
import art.arcane.iris.util.project.context.ChunkContext; import art.arcane.iris.util.project.context.ChunkContext;
@@ -90,7 +90,7 @@ public class IrisStructureComponent extends IrisMantleComponent {
boolean trace = IrisSettings.get().getGeneral().isDebug(); boolean trace = IrisSettings.get().getGeneral().isDebug();
if (trace) { if (trace) {
Iris.info("[StructTrace] ORIGIN chunk=" + cx + "," + cz + " structures=" + placement.getStructures() IrisLogging.info("[StructTrace] ORIGIN chunk=" + cx + "," + cz + " structures=" + placement.getStructures()
+ " underground=" + placement.isUnderground() + " band=" + placement.getMinHeight() + ".." + placement.getMaxHeight()); + " underground=" + placement.isUnderground() + " band=" + placement.getMinHeight() + ".." + placement.getMaxHeight());
} }
@@ -104,7 +104,7 @@ public class IrisStructureComponent extends IrisMantleComponent {
int bandMax = Math.min(worldMaxY, Math.max(placement.getMinHeight(), placement.getMaxHeight())); int bandMax = Math.min(worldMaxY, Math.max(placement.getMinHeight(), placement.getMaxHeight()));
if (bandMin > bandMax) { if (bandMin > bandMax) {
if (trace) { if (trace) {
Iris.info("[StructTrace] BAIL band-inverted chunk=" + cx + "," + cz + " bandMin=" + bandMin + " bandMax=" + bandMax IrisLogging.info("[StructTrace] BAIL band-inverted chunk=" + cx + "," + cz + " bandMin=" + bandMin + " bandMax=" + bandMax
+ " worldMinY=" + worldMinY + " worldMaxY=" + worldMaxY); + " worldMinY=" + worldMinY + " worldMaxY=" + worldMaxY);
} }
return; return;
@@ -122,7 +122,7 @@ public class IrisStructureComponent extends IrisMantleComponent {
IrisStructure structure = art.arcane.iris.core.loader.IrisData.loadAnyStructure(key, getData()); IrisStructure structure = art.arcane.iris.core.loader.IrisData.loadAnyStructure(key, getData());
if (structure == null) { if (structure == null) {
if (trace) { if (trace) {
Iris.info("[StructTrace] BAIL structure-load-null chunk=" + cx + "," + cz + " key=" + key); IrisLogging.info("[StructTrace] BAIL structure-load-null chunk=" + cx + "," + cz + " key=" + key);
} }
return; return;
} }
@@ -131,13 +131,13 @@ public class IrisStructureComponent extends IrisMantleComponent {
KList<PlacedStructurePiece> pieces = assembler.assemble(rng); KList<PlacedStructurePiece> pieces = assembler.assemble(rng);
if (pieces == null || pieces.isEmpty()) { if (pieces == null || pieces.isEmpty()) {
if (trace) { if (trace) {
Iris.info("[StructTrace] BAIL no-pieces chunk=" + cx + "," + cz + " key=" + key + " baseY=" + baseY IrisLogging.info("[StructTrace] BAIL no-pieces chunk=" + cx + "," + cz + " key=" + key + " baseY=" + baseY
+ " pieces=" + (pieces == null ? "null" : "empty")); + " pieces=" + (pieces == null ? "null" : "empty"));
} }
return; return;
} }
if (trace) { if (trace) {
Iris.info("[StructTrace] ASSEMBLED chunk=" + cx + "," + cz + " key=" + key + " baseY=" + baseY + " pieces=" + pieces.size()); IrisLogging.info("[StructTrace] ASSEMBLED chunk=" + cx + "," + cz + " key=" + key + " baseY=" + baseY + " pieces=" + pieces.size());
} }
if (placement.isOverbore()) { if (placement.isOverbore()) {
@@ -192,7 +192,7 @@ public class IrisStructureComponent extends IrisMantleComponent {
} }
long volume = (long) (maxX - minX + 1) * (long) (maxY - minY + 1) * (long) (maxZ - minZ + 1); long volume = (long) (maxX - minX + 1) * (long) (maxY - minY + 1) * (long) (maxZ - minZ + 1);
if (volume > MAX_BORE_VOLUME) { if (volume > MAX_BORE_VOLUME) {
Iris.warn("Skipping structure bore of " + volume + " blocks (cap " + MAX_BORE_VOLUME + "); use a smaller structure or larger spacing."); IrisLogging.warn("Skipping structure bore of " + volume + " blocks (cap " + MAX_BORE_VOLUME + "); use a smaller structure or larger spacing.");
return; return;
} }
int mantleOffset = getEngineMantle().getEngine().getMinHeight(); int mantleOffset = getEngineMantle().getEngine().getMinHeight();
@@ -236,7 +236,7 @@ public class IrisStructureComponent extends IrisMantleComponent {
work += wx * wy * wz; work += wx * wy * wz;
} }
if (work > MAX_OVERBORE_VOLUME) { if (work > MAX_OVERBORE_VOLUME) {
Iris.warn("Skipping structure overbore of " + work + " blocks (cap " + MAX_OVERBORE_VOLUME + "); reduce overboreRadius/overboreHeight or use larger spacing."); IrisLogging.warn("Skipping structure overbore of " + work + " blocks (cap " + MAX_OVERBORE_VOLUME + "); reduce overboreRadius/overboreHeight or use larger spacing.");
return; return;
} }
@@ -245,7 +245,7 @@ public class IrisStructureComponent extends IrisMantleComponent {
CNG roll = CNG.signature(noiseRng.nextParallelRNG(0x2A17)); CNG roll = CNG.signature(noiseRng.nextParallelRNG(0x2A17));
if (IrisSettings.get().getGeneral().isDebug()) { if (IrisSettings.get().getGeneral().isDebug()) {
Iris.info("Overbore carving organic cavern: pieces=" + pieces.size() + " margin=" + margin + " head=" + head + " floorCut=" + floorCut + " work=" + work); IrisLogging.info("Overbore carving organic cavern: pieces=" + pieces.size() + " margin=" + margin + " head=" + head + " floorCut=" + floorCut + " work=" + work);
} }
for (PlacedStructurePiece p : pieces) { for (PlacedStructurePiece p : pieces) {
@@ -18,7 +18,6 @@
package art.arcane.iris.engine.mantle.components; package art.arcane.iris.engine.mantle.components;
import art.arcane.iris.Iris;
import art.arcane.iris.core.loader.IrisData; import art.arcane.iris.core.loader.IrisData;
import art.arcane.iris.engine.IrisComplex; import art.arcane.iris.engine.IrisComplex;
import art.arcane.iris.engine.data.cache.Cache; import art.arcane.iris.engine.data.cache.Cache;
@@ -37,6 +36,7 @@ import art.arcane.iris.engine.object.IrisObjectPlacement;
import art.arcane.iris.engine.object.IrisObjectRotation; import art.arcane.iris.engine.object.IrisObjectRotation;
import art.arcane.iris.engine.object.IrisObjectTranslate; import art.arcane.iris.engine.object.IrisObjectTranslate;
import art.arcane.iris.engine.object.ObjectPlaceMode; import art.arcane.iris.engine.object.ObjectPlaceMode;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.iris.util.common.data.B; import art.arcane.iris.util.common.data.B;
import art.arcane.iris.util.common.data.IrisCustomData; import art.arcane.iris.util.common.data.IrisCustomData;
import art.arcane.iris.util.project.context.ChunkContext; import art.arcane.iris.util.project.context.ChunkContext;
@@ -204,7 +204,7 @@ public class MantleFloatingObjectComponent extends IrisMantleComponent {
} }
}, null, data); }, null, data);
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
} }
} }
} }
@@ -282,7 +282,7 @@ public class MantleFloatingObjectComponent extends IrisMantleComponent {
} }
}, null, data); }, null, data);
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
} }
} }
} }
@@ -377,7 +377,7 @@ public class MantleFloatingObjectComponent extends IrisMantleComponent {
} }
}, null, data); }, null, data);
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
} }
} }
} }
@@ -18,7 +18,6 @@
package art.arcane.iris.engine.mantle.components; package art.arcane.iris.engine.mantle.components;
import art.arcane.iris.Iris;
import art.arcane.iris.core.IrisSettings; import art.arcane.iris.core.IrisSettings;
import art.arcane.iris.engine.data.cache.Cache; import art.arcane.iris.engine.data.cache.Cache;
import art.arcane.iris.engine.IrisComplex; import art.arcane.iris.engine.IrisComplex;
@@ -30,6 +29,7 @@ import art.arcane.iris.engine.mantle.MantleWriter;
import art.arcane.iris.core.loader.IrisData; import art.arcane.iris.core.loader.IrisData;
import art.arcane.iris.engine.framework.Engine; import art.arcane.iris.engine.framework.Engine;
import art.arcane.iris.engine.object.*; import art.arcane.iris.engine.object.*;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KList;
import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.collection.KMap;
import art.arcane.volmlib.util.collection.KSet; import art.arcane.volmlib.util.collection.KSet;
@@ -117,7 +117,7 @@ public class MantleObjectComponent extends IrisMantleComponent {
String fingerprint = context + "|" + (object == null ? "<null>" : object.getClass().getSimpleName()); String fingerprint = context + "|" + (object == null ? "<null>" : object.getClass().getSimpleName());
if (MISSING_LOAD_KEY_WARNED.add(fingerprint)) { if (MISSING_LOAD_KEY_WARNED.add(fingerprint)) {
java.io.File file = object == null ? null : object.getLoadFile(); java.io.File file = object == null ? null : object.getLoadFile();
Iris.warn("Skipping placement marker write: IrisObject has no loadKey (context=" + context IrisLogging.warn("Skipping placement marker write: IrisObject has no loadKey (context=" + context
+ ", file=" + (file == null ? "<unknown>" : file.getPath()) + "). " + ", file=" + (file == null ? "<unknown>" : file.getPath()) + "). "
+ "This would previously produce 'Couldn't find Object: null' warnings on chunk reload."); + "This would previously produce 'Couldn't find Object: null' warnings on chunk reload.");
} }
@@ -147,7 +147,7 @@ public class MantleObjectComponent extends IrisMantleComponent {
carvedBlocks++; carvedBlocks++;
} }
} }
Iris.info("Cave object diag: chunk=" + x + "," + z IrisLogging.info("Cave object diag: chunk=" + x + "," + z
+ " surfaceBiome=" + surfaceBiome.getLoadKey() + " surfaceBiome=" + surfaceBiome.getLoadKey()
+ " caveBiome=" + caveBiome.getLoadKey() + " caveBiome=" + caveBiome.getLoadKey()
+ " surfaceY=" + surfaceY + " surfaceY=" + surfaceY
@@ -158,7 +158,7 @@ public class MantleObjectComponent extends IrisMantleComponent {
+ " sameBiome=" + (caveBiome == surfaceBiome || java.util.Objects.equals(caveBiome.getLoadKey(), surfaceBiome.getLoadKey()))); + " sameBiome=" + (caveBiome == surfaceBiome || java.util.Objects.equals(caveBiome.getLoadKey(), surfaceBiome.getLoadKey())));
} }
if (traceRegen) { if (traceRegen) {
Iris.info("Regen object layer start: chunk=" + x + "," + z IrisLogging.info("Regen object layer start: chunk=" + x + "," + z
+ " surfaceBiome=" + surfaceBiome.getLoadKey() + " surfaceBiome=" + surfaceBiome.getLoadKey()
+ " caveBiome=" + caveBiome.getLoadKey() + " caveBiome=" + caveBiome.getLoadKey()
+ " region=" + region.getLoadKey() + " region=" + region.getLoadKey()
@@ -175,7 +175,7 @@ public class MantleObjectComponent extends IrisMantleComponent {
placeUpperObjects(writer, rng, x, z, xxx, zzz, surfaceY, upperCtx, dimension, complex, traceRegen); placeUpperObjects(writer, rng, x, z, xxx, zzz, surfaceY, upperCtx, dimension, complex, traceRegen);
} }
if (traceRegen) { if (traceRegen) {
Iris.info("Regen object layer done: chunk=" + x + "," + z IrisLogging.info("Regen object layer done: chunk=" + x + "," + z
+ " biomeSurfacePlacersChecked=" + summary.biomeSurfacePlacersChecked() + " biomeSurfacePlacersChecked=" + summary.biomeSurfacePlacersChecked()
+ " biomeSurfacePlacersTriggered=" + summary.biomeSurfacePlacersTriggered() + " biomeSurfacePlacersTriggered=" + summary.biomeSurfacePlacersTriggered()
+ " biomeCavePlacersChecked=" + summary.biomeCavePlacersChecked() + " biomeCavePlacersChecked=" + summary.biomeCavePlacersChecked()
@@ -256,7 +256,7 @@ public class MantleObjectComponent extends IrisMantleComponent {
biomeSurfaceChecked++; biomeSurfaceChecked++;
boolean chance = rng.chance(i.getChance() + rng.d(-0.005, 0.005)); boolean chance = rng.chance(i.getChance() + rng.d(-0.005, 0.005));
if (traceRegen) { if (traceRegen) {
Iris.info("Regen object placer chance: chunk=" + x + "," + z IrisLogging.info("Regen object placer chance: chunk=" + x + "," + z
+ " scope=biome-surface" + " scope=biome-surface"
+ " chanceResult=" + chance + " chanceResult=" + chance
+ " chanceBase=" + i.getChance() + " chanceBase=" + i.getChance()
@@ -274,10 +274,10 @@ public class MantleObjectComponent extends IrisMantleComponent {
errors += result.errors(); errors += result.errors();
} catch (Throwable e) { } catch (Throwable e) {
errors++; errors++;
Iris.reportError(e); IrisLogging.reportError(e);
Iris.error("Failed to place objects in the following biome: " + surfaceBiome.getName()); IrisLogging.error("Failed to place objects in the following biome: " + surfaceBiome.getName());
Iris.error("Object(s) " + i.getPlace().toString(", ") + " (" + e.getClass().getSimpleName() + ")."); IrisLogging.error("Object(s) " + i.getPlace().toString(", ") + " (" + e.getClass().getSimpleName() + ").");
Iris.error("Are these objects missing?"); IrisLogging.error("Are these objects missing?");
e.printStackTrace(); e.printStackTrace();
} }
} }
@@ -290,7 +290,7 @@ public class MantleObjectComponent extends IrisMantleComponent {
biomeCaveChecked++; biomeCaveChecked++;
boolean chance = rng.chance(i.getChance()); boolean chance = rng.chance(i.getChance());
if (traceRegen) { if (traceRegen) {
Iris.info("Regen object placer chance: chunk=" + x + "," + z IrisLogging.info("Regen object placer chance: chunk=" + x + "," + z
+ " scope=biome-cave" + " scope=biome-cave"
+ " chanceResult=" + chance + " chanceResult=" + chance
+ " chanceBase=" + i.getChance() + " chanceBase=" + i.getChance()
@@ -308,10 +308,10 @@ public class MantleObjectComponent extends IrisMantleComponent {
errors += result.errors(); errors += result.errors();
} catch (Throwable e) { } catch (Throwable e) {
errors++; errors++;
Iris.reportError(e); IrisLogging.reportError(e);
Iris.error("Failed to place cave objects in the following biome: " + caveBiome.getName()); IrisLogging.error("Failed to place cave objects in the following biome: " + caveBiome.getName());
Iris.error("Object(s) " + i.getPlace().toString(", ") + " (" + e.getClass().getSimpleName() + ")."); IrisLogging.error("Object(s) " + i.getPlace().toString(", ") + " (" + e.getClass().getSimpleName() + ").");
Iris.error("Are these objects missing?"); IrisLogging.error("Are these objects missing?");
e.printStackTrace(); e.printStackTrace();
} }
} }
@@ -321,7 +321,7 @@ public class MantleObjectComponent extends IrisMantleComponent {
regionSurfaceChecked++; regionSurfaceChecked++;
boolean chance = rng.chance(i.getChance() + rng.d(-0.005, 0.005)); boolean chance = rng.chance(i.getChance() + rng.d(-0.005, 0.005));
if (traceRegen) { if (traceRegen) {
Iris.info("Regen object placer chance: chunk=" + x + "," + z IrisLogging.info("Regen object placer chance: chunk=" + x + "," + z
+ " scope=region-surface" + " scope=region-surface"
+ " chanceResult=" + chance + " chanceResult=" + chance
+ " chanceBase=" + i.getChance() + " chanceBase=" + i.getChance()
@@ -339,10 +339,10 @@ public class MantleObjectComponent extends IrisMantleComponent {
errors += result.errors(); errors += result.errors();
} catch (Throwable e) { } catch (Throwable e) {
errors++; errors++;
Iris.reportError(e); IrisLogging.reportError(e);
Iris.error("Failed to place objects in the following region: " + region.getName()); IrisLogging.error("Failed to place objects in the following region: " + region.getName());
Iris.error("Object(s) " + i.getPlace().toString(", ") + " (" + e.getClass().getSimpleName() + ")."); IrisLogging.error("Object(s) " + i.getPlace().toString(", ") + " (" + e.getClass().getSimpleName() + ").");
Iris.error("Are these objects missing?"); IrisLogging.error("Are these objects missing?");
e.printStackTrace(); e.printStackTrace();
} }
} }
@@ -355,7 +355,7 @@ public class MantleObjectComponent extends IrisMantleComponent {
regionCaveChecked++; regionCaveChecked++;
boolean chance = rng.chance(i.getChance()); boolean chance = rng.chance(i.getChance());
if (traceRegen) { if (traceRegen) {
Iris.info("Regen object placer chance: chunk=" + x + "," + z IrisLogging.info("Regen object placer chance: chunk=" + x + "," + z
+ " scope=region-cave" + " scope=region-cave"
+ " chanceResult=" + chance + " chanceResult=" + chance
+ " chanceBase=" + i.getChance() + " chanceBase=" + i.getChance()
@@ -373,10 +373,10 @@ public class MantleObjectComponent extends IrisMantleComponent {
errors += result.errors(); errors += result.errors();
} catch (Throwable e) { } catch (Throwable e) {
errors++; errors++;
Iris.reportError(e); IrisLogging.reportError(e);
Iris.error("Failed to place cave objects in the following region: " + region.getName()); IrisLogging.error("Failed to place cave objects in the following region: " + region.getName());
Iris.error("Object(s) " + i.getPlace().toString(", ") + " (" + e.getClass().getSimpleName() + ")."); IrisLogging.error("Object(s) " + i.getPlace().toString(", ") + " (" + e.getClass().getSimpleName() + ").");
Iris.error("Are these objects missing?"); IrisLogging.error("Are these objects missing?");
e.printStackTrace(); e.printStackTrace();
} }
} }
@@ -420,7 +420,7 @@ public class MantleObjectComponent extends IrisMantleComponent {
for (IrisProceduralPlacement p : proceduralObjects.getAllPlacements()) { for (IrisProceduralPlacement p : proceduralObjects.getAllPlacements()) {
boolean chancePassed = rng.chance(p.getChance() + rng.d(-0.005, 0.005)); boolean chancePassed = rng.chance(p.getChance() + rng.d(-0.005, 0.005));
if (golden) { if (golden) {
Iris.info("Goldendebug procedural chance: chunk=" + x + "," + z IrisLogging.info("Goldendebug procedural chance: chunk=" + x + "," + z
+ " scope=" + scope + " scope=" + scope
+ " placement=" + p.getName() + " placement=" + p.getName()
+ " passed=" + chancePassed); + " passed=" + chancePassed);
@@ -443,7 +443,7 @@ public class MantleObjectComponent extends IrisMantleComponent {
IrisObject variant = p.getVariantObject(getData(), rng); IrisObject variant = p.getVariantObject(getData(), rng);
if (variant == null) { if (variant == null) {
if (golden) { if (golden) {
Iris.info("Goldendebug procedural pick: chunk=" + x + "," + z IrisLogging.info("Goldendebug procedural pick: chunk=" + x + "," + z
+ " placement=" + p.getName() + " placement=" + p.getName()
+ " densityIndex=" + i + " densityIndex=" + i
+ " variant=null"); + " variant=null");
@@ -455,7 +455,7 @@ public class MantleObjectComponent extends IrisMantleComponent {
int id = rng.i(0, Integer.MAX_VALUE); int id = rng.i(0, Integer.MAX_VALUE);
if (golden) { if (golden) {
KList<IrisObject> pool = p.getVariantObjects(getData()); KList<IrisObject> pool = p.getVariantObjects(getData());
Iris.info("Goldendebug procedural pick: chunk=" + x + "," + z IrisLogging.info("Goldendebug procedural pick: chunk=" + x + "," + z
+ " placement=" + p.getName() + " placement=" + p.getName()
+ " densityIndex=" + i + " densityIndex=" + i
+ " variant=" + variant.getLoadKey() + " variant=" + variant.getLoadKey()
@@ -470,7 +470,7 @@ public class MantleObjectComponent extends IrisMantleComponent {
if (carving) { if (carving) {
int caveFloorY = findNearestCaveFloor(writer, xx, zz); int caveFloorY = findNearestCaveFloor(writer, xx, zz);
if (golden) { if (golden) {
Iris.info("Goldendebug procedural caveFloor: chunk=" + x + "," + z IrisLogging.info("Goldendebug procedural caveFloor: chunk=" + x + "," + z
+ " placement=" + p.getName() + " placement=" + p.getName()
+ " xx=" + xx + " xx=" + xx
+ " zz=" + zz + " zz=" + zz
@@ -493,7 +493,7 @@ public class MantleObjectComponent extends IrisMantleComponent {
}, null, getData()); }, null, getData());
} }
if (golden) { if (golden) {
Iris.info("Goldendebug procedural result: chunk=" + x + "," + z IrisLogging.info("Goldendebug procedural result: chunk=" + x + "," + z
+ " placement=" + p.getName() + " placement=" + p.getName()
+ " variant=" + variant.getLoadKey() + " variant=" + variant.getLoadKey()
+ " xx=" + xx + " xx=" + xx
@@ -501,8 +501,8 @@ public class MantleObjectComponent extends IrisMantleComponent {
+ " resultY=" + placeResult); + " resultY=" + placeResult);
} }
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
Iris.error("Failed to place procedural object '" + p.getName() + "' in " + scope); IrisLogging.error("Failed to place procedural object '" + p.getName() + "' in " + scope);
e.printStackTrace(); e.printStackTrace();
} }
} }
@@ -538,7 +538,7 @@ public class MantleObjectComponent extends IrisMantleComponent {
if (v == null) { if (v == null) {
nullObjects++; nullObjects++;
if (traceRegen) { if (traceRegen) {
Iris.warn("Regen object placement null object: chunk=" + chunkX + "," + chunkZ IrisLogging.warn("Regen object placement null object: chunk=" + chunkX + "," + chunkZ
+ " scope=" + scope + " scope=" + scope
+ " densityIndex=" + i + " densityIndex=" + i
+ " density=" + density + " density=" + density
@@ -558,7 +558,7 @@ public class MantleObjectComponent extends IrisMantleComponent {
} }
IObjectPlacer placePlacer = golden ? new GoldenDebugPlacer(writer, scope + "/" + v.getLoadKey()) : writer; IObjectPlacer placePlacer = golden ? new GoldenDebugPlacer(writer, scope + "/" + v.getLoadKey()) : writer;
if (golden) { if (golden) {
Iris.info("Goldendebug object attempt: chunk=" + chunkX + "," + chunkZ IrisLogging.info("Goldendebug object attempt: chunk=" + chunkX + "," + chunkZ
+ " scope=" + scope + " scope=" + scope
+ " object=" + v.getLoadKey() + " object=" + v.getLoadKey()
+ " densityIndex=" + i + " densityIndex=" + i
@@ -623,7 +623,7 @@ public class MantleObjectComponent extends IrisMantleComponent {
} }
if (golden) { if (golden) {
Iris.info("Goldendebug object result: chunk=" + chunkX + "," + chunkZ IrisLogging.info("Goldendebug object result: chunk=" + chunkX + "," + chunkZ
+ " scope=" + scope + " scope=" + scope
+ " object=" + v.getLoadKey() + " object=" + v.getLoadKey()
+ " resultY=" + result + " resultY=" + result
@@ -631,7 +631,7 @@ public class MantleObjectComponent extends IrisMantleComponent {
} }
if (traceRegen) { if (traceRegen) {
Iris.info("Regen object placement result: chunk=" + chunkX + "," + chunkZ IrisLogging.info("Regen object placement result: chunk=" + chunkX + "," + chunkZ
+ " scope=" + scope + " scope=" + scope
+ " object=" + v.getLoadKey() + " object=" + v.getLoadKey()
+ " resultY=" + result + " resultY=" + result
@@ -644,8 +644,8 @@ public class MantleObjectComponent extends IrisMantleComponent {
} }
} catch (Throwable e) { } catch (Throwable e) {
errors++; errors++;
Iris.reportError(e); IrisLogging.reportError(e);
Iris.error("Regen object placement exception: chunk=" + chunkX + "," + chunkZ IrisLogging.error("Regen object placement exception: chunk=" + chunkX + "," + chunkZ
+ " scope=" + scope + " scope=" + scope
+ " object=" + v.getLoadKey() + " object=" + v.getLoadKey()
+ " densityIndex=" + i + " densityIndex=" + i
@@ -715,7 +715,7 @@ public class MantleObjectComponent extends IrisMantleComponent {
if (object == null) { if (object == null) {
nullObjects++; nullObjects++;
if (traceRegen) { if (traceRegen) {
Iris.warn("Regen cave object placement null object: chunk=" + metricChunkX + "," + metricChunkZ IrisLogging.warn("Regen cave object placement null object: chunk=" + metricChunkX + "," + metricChunkZ
+ " scope=" + scope + " scope=" + scope
+ " densityIndex=" + i + " densityIndex=" + i
+ " density=" + density + " density=" + density
@@ -836,7 +836,7 @@ public class MantleObjectComponent extends IrisMantleComponent {
} }
if (traceRegen) { if (traceRegen) {
Iris.info("Regen cave object placement result: chunk=" + metricChunkX + "," + metricChunkZ IrisLogging.info("Regen cave object placement result: chunk=" + metricChunkX + "," + metricChunkZ
+ " scope=" + scope + " scope=" + scope
+ " object=" + object.getLoadKey() + " object=" + object.getLoadKey()
+ " resultY=" + result + " resultY=" + result
@@ -849,8 +849,8 @@ public class MantleObjectComponent extends IrisMantleComponent {
} }
} catch (Throwable e) { } catch (Throwable e) {
errors++; errors++;
Iris.reportError(e); IrisLogging.reportError(e);
Iris.error("Regen cave object placement exception: chunk=" + metricChunkX + "," + metricChunkZ IrisLogging.error("Regen cave object placement exception: chunk=" + metricChunkX + "," + metricChunkZ
+ " scope=" + scope + " scope=" + scope
+ " object=" + object.getLoadKey() + " object=" + object.getLoadKey()
+ " densityIndex=" + i + " densityIndex=" + i
@@ -907,8 +907,8 @@ public class MantleObjectComponent extends IrisMantleComponent {
try { try {
placeUpperObject(writer, rng, chunkX, chunkZ, i, upperCtx, dimension, complex, forcePlace, traceRegen, "upper-biome-surface"); placeUpperObject(writer, rng, chunkX, chunkZ, i, upperCtx, dimension, complex, forcePlace, traceRegen, "upper-biome-surface");
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
Iris.error("Failed to place upper-dimension objects in biome " + upperBiome.getName() IrisLogging.error("Failed to place upper-dimension objects in biome " + upperBiome.getName()
+ ": " + i.getPlace().toString(", ") + " (" + e.getClass().getSimpleName() + ")"); + ": " + i.getPlace().toString(", ") + " (" + e.getClass().getSimpleName() + ")");
e.printStackTrace(); e.printStackTrace();
} }
@@ -923,8 +923,8 @@ public class MantleObjectComponent extends IrisMantleComponent {
try { try {
placeUpperObject(writer, rng, chunkX, chunkZ, i, upperCtx, dimension, complex, forcePlace, traceRegen, "upper-region-surface"); placeUpperObject(writer, rng, chunkX, chunkZ, i, upperCtx, dimension, complex, forcePlace, traceRegen, "upper-region-surface");
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
Iris.error("Failed to place upper-dimension objects in region " + upperRegion.getName() IrisLogging.error("Failed to place upper-dimension objects in region " + upperRegion.getName()
+ ": " + i.getPlace().toString(", ") + " (" + e.getClass().getSimpleName() + ")"); + ": " + i.getPlace().toString(", ") + " (" + e.getClass().getSimpleName() + ")");
e.printStackTrace(); e.printStackTrace();
} }
@@ -993,7 +993,7 @@ public class MantleObjectComponent extends IrisMantleComponent {
}, null, getData()); }, null, getData());
if (traceRegen) { if (traceRegen) {
Iris.info("Upper object placement: chunk=" + chunkX + "," + chunkZ IrisLogging.info("Upper object placement: chunk=" + chunkX + "," + chunkZ
+ " scope=" + scope + " scope=" + scope
+ " object=" + v.getLoadKey() + " object=" + v.getLoadKey()
+ " anchorY=" + anchorY + " anchorY=" + anchorY
@@ -1052,7 +1052,7 @@ public class MantleObjectComponent extends IrisMantleComponent {
int suppressed = state.suppressed.getAndSet(0); int suppressed = state.suppressed.getAndSet(0);
String anchorYText = anchorY == null ? "none" : String.valueOf(anchorY); String anchorYText = anchorY == null ? "none" : String.valueOf(anchorY);
String errorText = error == null ? "none" : error.getClass().getSimpleName() + ":" + String.valueOf(error.getMessage()); String errorText = error == null ? "none" : error.getClass().getSimpleName() + ":" + String.valueOf(error.getMessage());
Iris.warn("Cave object reject: scope=" + scope IrisLogging.warn("Cave object reject: scope=" + scope
+ " reason=" + reason + " reason=" + reason
+ " chunk=" + chunkX + "," + chunkZ + " chunk=" + chunkX + "," + chunkZ
+ " object=" + objectKey + " object=" + objectKey
@@ -1136,14 +1136,14 @@ public class MantleObjectComponent extends IrisMantleComponent {
@Override @Override
public int getHighest(int x, int z, IrisData data) { public int getHighest(int x, int z, IrisData data) {
int result = delegate.getHighest(x, z, data); int result = delegate.getHighest(x, z, data);
Iris.info("Goldendebug query: tag=" + tag + " getHighest(" + x + "," + z + ")=" + result); IrisLogging.info("Goldendebug query: tag=" + tag + " getHighest(" + x + "," + z + ")=" + result);
return result; return result;
} }
@Override @Override
public int getHighest(int x, int z, IrisData data, boolean ignoreFluid) { public int getHighest(int x, int z, IrisData data, boolean ignoreFluid) {
int result = delegate.getHighest(x, z, data, ignoreFluid); int result = delegate.getHighest(x, z, data, ignoreFluid);
Iris.info("Goldendebug query: tag=" + tag + " getHighest(" + x + "," + z + ",ignoreFluid=" + ignoreFluid + ")=" + result); IrisLogging.info("Goldendebug query: tag=" + tag + " getHighest(" + x + "," + z + ",ignoreFluid=" + ignoreFluid + ")=" + result);
return result; return result;
} }
@@ -1165,14 +1165,14 @@ public class MantleObjectComponent extends IrisMantleComponent {
@Override @Override
public boolean isCarved(int x, int y, int z) { public boolean isCarved(int x, int y, int z) {
boolean result = delegate.isCarved(x, y, z); boolean result = delegate.isCarved(x, y, z);
Iris.info("Goldendebug query: tag=" + tag + " isCarved(" + x + "," + y + "," + z + ")=" + result); IrisLogging.info("Goldendebug query: tag=" + tag + " isCarved(" + x + "," + y + "," + z + ")=" + result);
return result; return result;
} }
@Override @Override
public boolean isSolid(int x, int y, int z) { public boolean isSolid(int x, int y, int z) {
boolean result = delegate.isSolid(x, y, z); boolean result = delegate.isSolid(x, y, z);
Iris.info("Goldendebug query: tag=" + tag + " isSolid(" + x + "," + y + "," + z + ")=" + result); IrisLogging.info("Goldendebug query: tag=" + tag + " isSolid(" + x + "," + y + "," + z + ")=" + result);
return result; return result;
} }
@@ -1648,16 +1648,16 @@ public class MantleObjectComponent extends IrisMantleComponent {
if (Math.max(bv.getBlockX(), bv.getBlockZ()) > 128) { if (Math.max(bv.getBlockX(), bv.getBlockZ()) > 128) {
if (scale > 1D) { if (scale > 1D) {
Iris.warn("Object " + objectKey + " has a large size (" + bv + ") and may increase memory usage! (Object scaled up to " + Form.pc(scale, 2) + ")"); IrisLogging.warn("Object " + objectKey + " has a large size (" + bv + ") and may increase memory usage! (Object scaled up to " + Form.pc(scale, 2) + ")");
} else { } else {
Iris.warn("Object " + objectKey + " has a large size (" + bv + ") and may increase memory usage!"); IrisLogging.warn("Object " + objectKey + " has a large size (" + bv + ") and may increase memory usage!");
} }
} }
xg.getAndSet(Math.max((int) Math.ceil(bv.getBlockX() * scale), xg.get())); xg.getAndSet(Math.max((int) Math.ceil(bv.getBlockX() * scale), xg.get()));
zg.getAndSet(Math.max((int) Math.ceil(bv.getBlockZ() * scale), zg.get())); zg.getAndSet(Math.max((int) Math.ceil(bv.getBlockZ() * scale), zg.get()));
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
} }
} }
@@ -1685,7 +1685,7 @@ public class MantleObjectComponent extends IrisMantleComponent {
xg.getAndSet(Math.max(reachX, xg.get())); xg.getAndSet(Math.max(reachX, xg.get()));
zg.getAndSet(Math.max(reachZ, zg.get())); zg.getAndSet(Math.max(reachZ, zg.get()));
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
} }
} }
} }
@@ -1695,7 +1695,7 @@ public class MantleObjectComponent extends IrisMantleComponent {
try { try {
return IrisObject.sampleSize(getData().getObjectLoader().findFile(objectKey)); return IrisObject.sampleSize(getData().getObjectLoader().findFile(objectKey));
} catch (IOException e) { } catch (IOException e) {
Iris.reportError(e); IrisLogging.reportError(e);
e.printStackTrace(); e.printStackTrace();
} }
@@ -27,6 +27,7 @@ import art.arcane.iris.engine.framework.EngineMode;
import art.arcane.iris.engine.framework.EngineStage; import art.arcane.iris.engine.framework.EngineStage;
import art.arcane.iris.engine.framework.IrisEngineMode; import art.arcane.iris.engine.framework.IrisEngineMode;
import art.arcane.iris.engine.modifier.*; import art.arcane.iris.engine.modifier.*;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.iris.util.common.scheduling.J; import art.arcane.iris.util.common.scheduling.J;
import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicLong;
@@ -118,7 +119,7 @@ public class ModeOverworld extends IrisEngineMode implements EngineMode {
long now = System.currentTimeMillis(); long now = System.currentTimeMillis();
long last = lastMaintenanceBypassLog.get(); long last = lastMaintenanceBypassLog.get();
if (now - last >= 5000L && lastMaintenanceBypassLog.compareAndSet(last, now)) { if (now - last >= 5000L && lastMaintenanceBypassLog.compareAndSet(last, now)) {
art.arcane.iris.Iris.info("Maintenance regen bypass: skipping mantle-backed overworld stages for Folia safety."); IrisLogging.info("Maintenance regen bypass: skipping mantle-backed overworld stages for Folia safety.");
} }
} }
return active; return active;
@@ -18,7 +18,6 @@
package art.arcane.iris.engine.modifier; package art.arcane.iris.engine.modifier;
import art.arcane.iris.Iris;
import art.arcane.iris.core.loader.IrisData; import art.arcane.iris.core.loader.IrisData;
import art.arcane.iris.engine.IrisComplex; import art.arcane.iris.engine.IrisComplex;
import art.arcane.iris.engine.decorator.FloatingDecorator; import art.arcane.iris.engine.decorator.FloatingDecorator;
@@ -36,6 +35,7 @@ import art.arcane.iris.engine.object.IrisDecorationPart;
import art.arcane.iris.engine.object.IrisDimension; import art.arcane.iris.engine.object.IrisDimension;
import art.arcane.iris.engine.object.IrisFloatingChildBiomes; import art.arcane.iris.engine.object.IrisFloatingChildBiomes;
import art.arcane.iris.engine.object.IrisSlopeClip; import art.arcane.iris.engine.object.IrisSlopeClip;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.iris.util.common.data.B; import art.arcane.iris.util.common.data.B;
import art.arcane.iris.util.project.context.ChunkContext; import art.arcane.iris.util.project.context.ChunkContext;
import art.arcane.iris.util.project.hunk.Hunk; import art.arcane.iris.util.project.hunk.Hunk;
@@ -101,7 +101,7 @@ public class IrisFloatingChildBiomeModifier extends EngineAssignedModifier<Platf
try { try {
generated.add(layer.get(random.nextParallelRNG(i + j), (wx + j) / layer.getZoom(), j, (wz - j) / layer.getZoom(), data)); generated.add(layer.get(random.nextParallelRNG(i + j), (wx + j) / layer.getZoom(), j, (wz - j) / layer.getZoom(), data));
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
e.printStackTrace(); e.printStackTrace();
} }
} }
@@ -328,7 +328,7 @@ public class IrisFloatingChildBiomeModifier extends EngineAssignedModifier<Platf
RNG colRng = rng.nextParallelRNG((int) FloatingIslandSample.columnSeed(baseSeed, wx, wz)); RNG colRng = rng.nextParallelRNG((int) FloatingIslandSample.columnSeed(baseSeed, wx, wz));
FloatingDecorator.decorateColumn(getEngine(), target, IrisDecorationPart.NONE, xf, zf, wx, wz, topY, max, output, colRng, NOOP_DECORATION_MISS); FloatingDecorator.decorateColumn(getEngine(), target, IrisDecorationPart.NONE, xf, zf, wx, wz, topY, max, output, colRng, NOOP_DECORATION_MISS);
} catch (Throwable e) { } catch (Throwable e) {
art.arcane.iris.Iris.reportError(e); IrisLogging.reportError(e);
} }
} }
} }
@@ -360,7 +360,7 @@ public class IrisFloatingChildBiomeModifier extends EngineAssignedModifier<Platf
try { try {
seaSurfaceDecorator.decorate(xf, zf, wx, wx + 1, wx - 1, wz, wz + 1, wz - 1, output, target, fluidTopY, chunkHeight); seaSurfaceDecorator.decorate(xf, zf, wx, wx + 1, wx - 1, wz, wz + 1, wz - 1, output, target, fluidTopY, chunkHeight);
} catch (Throwable e) { } catch (Throwable e) {
art.arcane.iris.Iris.reportError(e); IrisLogging.reportError(e);
} }
} }
} }
@@ -392,7 +392,7 @@ public class IrisFloatingChildBiomeModifier extends EngineAssignedModifier<Platf
getEngine().getMantle().getMantle().set(wx, y, wz, matter); getEngine().getMantle().getMantle().set(wx, y, wz, matter);
} }
} catch (Throwable e) { } catch (Throwable e) {
art.arcane.iris.Iris.reportError(e); IrisLogging.reportError(e);
} }
} }
@@ -18,9 +18,9 @@
package art.arcane.iris.engine.object; package art.arcane.iris.engine.object;
import art.arcane.iris.Iris;
import art.arcane.iris.core.loader.IrisData; import art.arcane.iris.core.loader.IrisData;
import art.arcane.iris.engine.framework.Engine; import art.arcane.iris.engine.framework.Engine;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.iris.util.project.noise.CNG; import art.arcane.iris.util.project.noise.CNG;
import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KList;
@@ -90,7 +90,7 @@ public final class FloatingIslandSample {
private static void warnNullCng(String styleField, IrisBiome parent) { private static void warnNullCng(String styleField, IrisBiome parent) {
if (NULL_CNG_WARNED.compareAndSet(false, true)) { if (NULL_CNG_WARNED.compareAndSet(false, true)) {
String biomeKey = parent == null ? "<unknown>" : parent.getLoadKey(); String biomeKey = parent == null ? "<unknown>" : parent.getLoadKey();
Iris.warn("Floating child biome on " + biomeKey + " has a null CNG for " + styleField IrisLogging.warn("Floating child biome on " + biomeKey + " has a null CNG for " + styleField
+ " (style factory returned null or AtomicCache swallowed an exception); skipping floating sampling until pack is fixed"); + " (style factory returned null or AtomicCache swallowed an exception); skipping floating sampling until pack is fixed");
} }
} }
@@ -18,7 +18,6 @@
package art.arcane.iris.engine.object; package art.arcane.iris.engine.object;
import art.arcane.iris.Iris;
import art.arcane.iris.core.gui.components.RenderType; import art.arcane.iris.core.gui.components.RenderType;
import art.arcane.iris.core.loader.IrisData; import art.arcane.iris.core.loader.IrisData;
import art.arcane.iris.core.loader.IrisRegistrant; import art.arcane.iris.core.loader.IrisRegistrant;
@@ -26,6 +25,7 @@ import art.arcane.iris.engine.IrisComplex;
import art.arcane.iris.engine.data.cache.AtomicCache; import art.arcane.iris.engine.data.cache.AtomicCache;
import art.arcane.iris.engine.framework.Engine; import art.arcane.iris.engine.framework.Engine;
import art.arcane.iris.engine.object.annotations.*; import art.arcane.iris.engine.object.annotations.*;
import art.arcane.iris.spi.IrisLogging;
import com.google.gson.annotations.SerializedName; import com.google.gson.annotations.SerializedName;
import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KList;
import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.collection.KMap;
@@ -434,7 +434,7 @@ public class IrisBiome extends IrisRegistrant implements IRare {
try { try {
data.add(getLayers().get(i).get(random.nextParallelRNG(i + j), (wx + j) / layers.get(i).getZoom(), j, (wz - j) / layers.get(i).getZoom(), rdata)); data.add(getLayers().get(i).get(random.nextParallelRNG(i + j), (wx + j) / layers.get(i).getZoom(), j, (wz - j) / layers.get(i).getZoom(), rdata));
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
e.printStackTrace(); e.printStackTrace();
} }
} }
@@ -480,7 +480,7 @@ public class IrisBiome extends IrisRegistrant implements IRare {
try { try {
data.add(getCaveCeilingLayers().get(i).get(random.nextParallelRNG(i + j), (wx + j) / caveCeilingLayers.get(i).getZoom(), j, (wz - j) / caveCeilingLayers.get(i).getZoom(), rdata)); data.add(getCaveCeilingLayers().get(i).get(random.nextParallelRNG(i + j), (wx + j) / caveCeilingLayers.get(i).getZoom(), j, (wz - j) / caveCeilingLayers.get(i).getZoom(), rdata));
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
e.printStackTrace(); e.printStackTrace();
} }
} }
@@ -531,7 +531,7 @@ public class IrisBiome extends IrisRegistrant implements IRare {
try { try {
data.add(getLayers().get(i).get(random.nextParallelRNG(i + j), (wx + j) / layers.get(i).getZoom(), j, (wz - j) / layers.get(i).getZoom(), rdata)); data.add(getLayers().get(i).get(random.nextParallelRNG(i + j), (wx + j) / layers.get(i).getZoom(), j, (wz - j) / layers.get(i).getZoom(), rdata));
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
e.printStackTrace(); e.printStackTrace();
} }
} }
@@ -603,7 +603,7 @@ public class IrisBiome extends IrisRegistrant implements IRare {
try { try {
data.add(getSeaLayers().get(i).get(random.nextParallelRNG(i + j), (wx + j) / seaLayers.get(i).getZoom(), j, (wz - j) / seaLayers.get(i).getZoom(), rdata)); data.add(getSeaLayers().get(i).get(random.nextParallelRNG(i + j), (wx + j) / seaLayers.get(i).getZoom(), j, (wz - j) / seaLayers.get(i).getZoom(), rdata));
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
e.printStackTrace(); e.printStackTrace();
} }
} }
@@ -749,7 +749,7 @@ public class IrisBiome extends IrisRegistrant implements IRare {
if (this.color == null) { if (this.color == null) {
RandomColor randomColor = new RandomColor(getName().hashCode()); RandomColor randomColor = new RandomColor(getName().hashCode());
if (this.getVanillaDerivative() == null) { if (this.getVanillaDerivative() == null) {
Iris.warn("No vanilla biome found for " + getName()); IrisLogging.warn("No vanilla biome found for " + getName());
return new Color(randomColor.randomColor()); return new Color(randomColor.randomColor());
} }
RandomColor.Color col = VanillaBiomeMap.getColorType(this.getVanillaDerivative()); RandomColor.Color col = VanillaBiomeMap.getColorType(this.getVanillaDerivative());
@@ -763,7 +763,7 @@ public class IrisBiome extends IrisRegistrant implements IRare {
try { try {
return Color.decode(this.color); return Color.decode(this.color);
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
Iris.warn("Could not parse color \"" + this.color + "\" for biome " + getName()); IrisLogging.warn("Could not parse color \"" + this.color + "\" for biome " + getName());
return new Color(new RandomColor(getName().hashCode()).randomColor()); return new Color(new RandomColor(getName().hashCode()).randomColor());
} }
}); });
@@ -18,9 +18,9 @@
package art.arcane.iris.engine.object; package art.arcane.iris.engine.object;
import art.arcane.iris.Iris;
import art.arcane.iris.core.nms.datapack.IDataFixer; import art.arcane.iris.core.nms.datapack.IDataFixer;
import art.arcane.iris.engine.object.annotations.*; import art.arcane.iris.engine.object.annotations.*;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KList;
import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.collection.KMap;
import art.arcane.volmlib.util.json.JSONArray; import art.arcane.volmlib.util.json.JSONArray;
@@ -149,7 +149,7 @@ public class IrisBiomeCustom {
} }
EntityType type = i.getType(); EntityType type = i.getType();
if (type == null) { if (type == null) {
Iris.warn("Skipping custom biome spawn with null entity type in biome " + getId()); IrisLogging.warn("Skipping custom biome spawn with null entity type in biome " + getId());
continue; continue;
} }
IrisBiomeCustomSpawnType group = i.getGroup() == null ? IrisBiomeCustomSpawnType.MISC : i.getGroup(); IrisBiomeCustomSpawnType group = i.getGroup() == null ? IrisBiomeCustomSpawnType.MISC : i.getGroup();
@@ -157,7 +157,7 @@ public class IrisBiomeCustom {
JSONObject o = new JSONObject(); JSONObject o = new JSONObject();
NamespacedKey key = type.getKey(); NamespacedKey key = type.getKey();
if (key == null) { if (key == null) {
Iris.warn("Skipping custom biome spawn with unresolved entity key in biome " + getId()); IrisLogging.warn("Skipping custom biome spawn with unresolved entity key in biome " + getId());
continue; continue;
} }
o.put("type", key.toString()); o.put("type", key.toString());
@@ -182,8 +182,8 @@ public class IrisBiomeCustom {
try { try {
return Color.decode(v).getRGB(); return Color.decode(v).getRGB();
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
Iris.error("Error Parsing '''color''', (" + c + ")"); IrisLogging.error("Error Parsing '''color''', (" + c + ")");
} }
return 0; return 0;
@@ -18,7 +18,6 @@
package art.arcane.iris.engine.object; package art.arcane.iris.engine.object;
import art.arcane.iris.Iris;
import art.arcane.iris.core.link.Identifier; import art.arcane.iris.core.link.Identifier;
import art.arcane.iris.core.loader.IrisData; import art.arcane.iris.core.loader.IrisData;
import art.arcane.iris.core.loader.IrisRegistrant; import art.arcane.iris.core.loader.IrisRegistrant;
@@ -26,6 +25,7 @@ import art.arcane.iris.engine.data.cache.AtomicCache;
import art.arcane.iris.engine.object.annotations.*; import art.arcane.iris.engine.object.annotations.*;
import art.arcane.iris.platform.bukkit.BukkitBlockState; import art.arcane.iris.platform.bukkit.BukkitBlockState;
import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.platform.bukkit.BukkitPlatform;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.spi.PlatformBlockState;
import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KList;
import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.collection.KMap;
@@ -170,7 +170,7 @@ public class IrisBlockData extends IrisRegistrant {
String sx = keyify(st) + computeProperties(cdata); String sx = keyify(st) + computeProperties(cdata);
if (debug) { if (debug) {
Iris.debug("Block Data used " + sx + " (CUSTOM)"); IrisLogging.debug("Block Data used " + sx + " (CUSTOM)");
} }
BlockData bx = B.get(sx); BlockData bx = B.get(sx);
@@ -189,7 +189,7 @@ public class IrisBlockData extends IrisRegistrant {
b = B.get(ss); b = B.get(ss);
if (debug) { if (debug) {
Iris.debug("Block Data used " + ss); IrisLogging.debug("Block Data used " + ss);
} }
if (b != null) { if (b != null) {
@@ -18,12 +18,12 @@
package art.arcane.iris.engine.object; package art.arcane.iris.engine.object;
import art.arcane.iris.Iris;
import art.arcane.iris.engine.data.cache.AtomicCache; import art.arcane.iris.engine.data.cache.AtomicCache;
import art.arcane.iris.engine.object.annotations.Desc; import art.arcane.iris.engine.object.annotations.Desc;
import art.arcane.iris.engine.object.annotations.MaxNumber; import art.arcane.iris.engine.object.annotations.MaxNumber;
import art.arcane.iris.engine.object.annotations.MinNumber; import art.arcane.iris.engine.object.annotations.MinNumber;
import art.arcane.iris.engine.object.annotations.Snippet; import art.arcane.iris.engine.object.annotations.Snippet;
import art.arcane.iris.spi.IrisLogging;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
@@ -87,7 +87,7 @@ public class IrisColor {
try { try {
return Color.decode(v); return Color.decode(v);
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
} }
} }
@@ -18,8 +18,8 @@
package art.arcane.iris.engine.object; package art.arcane.iris.engine.object;
import art.arcane.iris.spi.IrisLogging;
import com.google.gson.Gson; import com.google.gson.Gson;
import art.arcane.iris.Iris;
import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KList;
import art.arcane.iris.util.common.data.B; import art.arcane.iris.util.common.data.B;
import art.arcane.volmlib.util.io.IO; import art.arcane.volmlib.util.io.IO;
@@ -53,8 +53,8 @@ public class IrisCompat {
try { try {
IO.writeAll(f, defa); IO.writeAll(f, defa);
} catch (IOException e) { } catch (IOException e) {
Iris.error("Failed to writeNodeData to compat file"); IrisLogging.error("Failed to writeNodeData to compat file");
Iris.reportError(e); IrisLogging.reportError(e);
} }
}); });
} else { } else {
@@ -72,7 +72,7 @@ public class IrisCompat {
} }
} catch (Throwable e) { } catch (Throwable e) {
e.printStackTrace(); e.printStackTrace();
Iris.reportError(e); IrisLogging.reportError(e);
} }
} }
@@ -275,7 +275,7 @@ public class IrisCompat {
searching: searching:
while (true) { while (true) {
if (err-- <= 0) { if (err-- <= 0) {
Iris.error("Can't find block data for " + n); IrisLogging.error("Can't find block data for " + n);
return B.getNoCompat("STONE"); return B.getNoCompat("STONE");
} }
String m = buf; String m = buf;
@@ -299,7 +299,7 @@ public class IrisCompat {
} }
} }
Iris.error("Can't find block data for " + n); IrisLogging.error("Can't find block data for " + n);
return B.getNoCompat("STONE"); return B.getNoCompat("STONE");
} }
} }
@@ -18,10 +18,10 @@
package art.arcane.iris.engine.object; package art.arcane.iris.engine.object;
import art.arcane.iris.Iris;
import art.arcane.iris.engine.data.cache.AtomicCache; import art.arcane.iris.engine.data.cache.AtomicCache;
import art.arcane.iris.engine.object.annotations.Desc; import art.arcane.iris.engine.object.annotations.Desc;
import art.arcane.iris.engine.object.annotations.Required; import art.arcane.iris.engine.object.annotations.Required;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.iris.util.common.data.B; import art.arcane.iris.util.common.data.B;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
@@ -63,7 +63,7 @@ public class IrisCompatabilityBlockFilter {
return null; return null;
} }
Iris.warn("Compat: Using '%s' in place of '%s' since this server doesnt support '%s'", supplement, when, when); IrisLogging.warn("Compat: Using '%s' in place of '%s' since this server doesnt support '%s'", supplement, when, when);
return b; return b;
}); });
@@ -18,10 +18,10 @@
package art.arcane.iris.engine.object; package art.arcane.iris.engine.object;
import art.arcane.iris.Iris;
import art.arcane.iris.core.loader.IrisData; import art.arcane.iris.core.loader.IrisData;
import art.arcane.iris.engine.data.cache.AtomicCache; import art.arcane.iris.engine.data.cache.AtomicCache;
import art.arcane.iris.engine.object.annotations.*; import art.arcane.iris.engine.object.annotations.*;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KList;
import art.arcane.volmlib.util.math.RNG; import art.arcane.volmlib.util.math.RNG;
import art.arcane.iris.util.project.noise.CNG; import art.arcane.iris.util.project.noise.CNG;
@@ -157,7 +157,7 @@ public class IrisDecorator {
public PlatformBlockState getBlockData100(IrisBiome b, RNG rng, double x, double y, double z, IrisData data) { public PlatformBlockState getBlockData100(IrisBiome b, RNG rng, double x, double y, double z, IrisData data) {
if (getBlockData(data).isEmpty()) { if (getBlockData(data).isEmpty()) {
Iris.warn("Empty Block Data for " + b.getName()); IrisLogging.warn("Empty Block Data for " + b.getName());
return null; return null;
} }
@@ -24,6 +24,7 @@ import art.arcane.iris.core.ServerConfigurator.DimensionHeight;
import art.arcane.iris.core.loader.IrisData; import art.arcane.iris.core.loader.IrisData;
import art.arcane.iris.platform.bukkit.BukkitBlockState; import art.arcane.iris.platform.bukkit.BukkitBlockState;
import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.platform.bukkit.BukkitPlatform;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.spi.PlatformBlockState;
import art.arcane.iris.core.loader.IrisRegistrant; import art.arcane.iris.core.loader.IrisRegistrant;
import art.arcane.iris.core.nms.datapack.IDataFixer; import art.arcane.iris.core.nms.datapack.IDataFixer;
@@ -500,7 +501,7 @@ public class IrisDimension extends IrisRegistrant {
try { try {
IO.writeAll(output, json); IO.writeAll(output, json);
} catch (IOException e) { } catch (IOException e) {
Iris.reportError(e); IrisLogging.reportError(e);
e.printStackTrace(); e.printStackTrace();
} }
} }
@@ -562,7 +563,7 @@ public class IrisDimension extends IrisRegistrant {
try { try {
IO.writeAll(output, json); IO.writeAll(output, json);
} catch (IOException e) { } catch (IOException e) {
Iris.reportError(e); IrisLogging.reportError(e);
e.printStackTrace(); e.printStackTrace();
} }
} }
@@ -608,7 +609,7 @@ public class IrisDimension extends IrisRegistrant {
try { try {
IO.writeAll(mcm, raw); IO.writeAll(mcm, raw);
} catch (IOException e) { } catch (IOException e) {
Iris.reportError(e); IrisLogging.reportError(e);
e.printStackTrace(); e.printStackTrace();
} }
Iris.verbose(" Installing Data Pack MCMeta: " + mcm.getPath()); Iris.verbose(" Installing Data Pack MCMeta: " + mcm.getPath());
@@ -624,7 +625,7 @@ public class IrisDimension extends IrisRegistrant {
try { try {
IO.writeAll(dimTypeVanilla, json); IO.writeAll(dimTypeVanilla, json);
} catch (IOException e) { } catch (IOException e) {
Iris.reportError(e); IrisLogging.reportError(e);
e.printStackTrace(); e.printStackTrace();
} }
} }
@@ -18,10 +18,10 @@
package art.arcane.iris.engine.object; package art.arcane.iris.engine.object;
import art.arcane.iris.Iris;
import art.arcane.iris.engine.data.cache.AtomicCache; import art.arcane.iris.engine.data.cache.AtomicCache;
import art.arcane.iris.engine.framework.Engine; import art.arcane.iris.engine.framework.Engine;
import art.arcane.iris.engine.object.annotations.*; import art.arcane.iris.engine.object.annotations.*;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.volmlib.util.math.RNG; import art.arcane.volmlib.util.math.RNG;
import art.arcane.volmlib.util.scheduling.ChronoLatch; import art.arcane.volmlib.util.scheduling.ChronoLatch;
import art.arcane.iris.util.common.scheduling.J; import art.arcane.iris.util.common.scheduling.J;
@@ -168,11 +168,11 @@ public class IrisEffect {
return resolved; return resolved;
} }
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
} }
if (PotionEffectTypes.shouldWarn(getPotionEffect())) { if (PotionEffectTypes.shouldWarn(getPotionEffect())) {
Iris.warn("Unknown Potion Effect Type: \"" + getPotionEffect() + "\". Valid types: " + PotionEffectTypes.knownTypesList()); IrisLogging.warn("Unknown Potion Effect Type: \"" + getPotionEffect() + "\". Valid types: " + PotionEffectTypes.knownTypesList());
} }
return PotionEffectType.LUCK; return PotionEffectType.LUCK;
@@ -18,8 +18,8 @@
package art.arcane.iris.engine.object; package art.arcane.iris.engine.object;
import art.arcane.iris.Iris;
import art.arcane.iris.engine.object.annotations.*; import art.arcane.iris.engine.object.annotations.*;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.volmlib.util.math.RNG; import art.arcane.volmlib.util.math.RNG;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
@@ -61,7 +61,7 @@ public class IrisEnchantment {
try { try {
Enchantment enchant = Registry.ENCHANTMENT.get(NamespacedKey.minecraft(getEnchantment())); Enchantment enchant = Registry.ENCHANTMENT.get(NamespacedKey.minecraft(getEnchantment()));
if (enchant == null) { if (enchant == null) {
Iris.warn("Unknown Enchantment: " + getEnchantment()); IrisLogging.warn("Unknown Enchantment: " + getEnchantment());
return; return;
} }
if (rng.nextDouble() < chance) { if (rng.nextDouble() < chance) {
@@ -72,7 +72,7 @@ public class IrisEnchantment {
meta.addEnchant(enchant, getLevel(rng), true); meta.addEnchant(enchant, getLevel(rng), true);
} }
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
} }
} }
@@ -19,10 +19,10 @@
package art.arcane.iris.engine.object; package art.arcane.iris.engine.object;
import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.platform.bukkit.BukkitPlatform;
import art.arcane.iris.Iris;
import art.arcane.iris.engine.data.cache.AtomicCache; import art.arcane.iris.engine.data.cache.AtomicCache;
import art.arcane.iris.engine.framework.Engine; import art.arcane.iris.engine.framework.Engine;
import art.arcane.iris.engine.object.annotations.*; import art.arcane.iris.engine.object.annotations.*;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.iris.util.common.format.C; import art.arcane.iris.util.common.format.C;
import art.arcane.volmlib.util.math.RNG; import art.arcane.volmlib.util.math.RNG;
import art.arcane.volmlib.util.math.Vector3d; import art.arcane.volmlib.util.math.Vector3d;
@@ -169,7 +169,7 @@ public class IrisEntitySpawn implements IRare {
try { try {
IrisEntity irisEntity = getRealEntity(g); IrisEntity irisEntity = getRealEntity(g);
if (irisEntity == null) { // No entity if (irisEntity == null) { // No entity
Iris.debug(" You are trying to spawn an entity that does not exist!"); IrisLogging.debug(" You are trying to spawn an entity that does not exist!");
return null; return null;
} }
@@ -187,14 +187,14 @@ public class IrisEntitySpawn implements IRare {
Entity e = irisEntity.spawn(g, at.add(0.5, 0.5, 0.5), rng.aquire(() -> new RNG(g.getSeedManager().getEntity()))); Entity e = irisEntity.spawn(g, at.add(0.5, 0.5, 0.5), rng.aquire(() -> new RNG(g.getSeedManager().getEntity())));
if (e != null) { if (e != null) {
Iris.debug("Spawned " + C.DARK_AQUA + "Entity<" + getEntity() + "> " + C.GREEN + e.getType() + C.LIGHT_PURPLE + " @ " + C.GRAY + e.getLocation().getX() + ", " + e.getLocation().getY() + ", " + e.getLocation().getZ()); IrisLogging.debug("Spawned " + C.DARK_AQUA + "Entity<" + getEntity() + "> " + C.GREEN + e.getType() + C.LIGHT_PURPLE + " @ " + C.GRAY + e.getLocation().getX() + ", " + e.getLocation().getY() + ", " + e.getLocation().getZ());
} }
return e; return e;
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
e.printStackTrace(); e.printStackTrace();
Iris.error(" Failed to retrieve real entity @ " + at + " (entity: " + getEntity() + ")"); IrisLogging.error(" Failed to retrieve real entity @ " + at + " (entity: " + getEntity() + ")");
return null; return null;
} }
} }
@@ -18,10 +18,10 @@
package art.arcane.iris.engine.object; package art.arcane.iris.engine.object;
import art.arcane.iris.spi.IrisLogging;
import com.dfsek.paralithic.Expression; import com.dfsek.paralithic.Expression;
import com.dfsek.paralithic.eval.parser.Parser; import com.dfsek.paralithic.eval.parser.Parser;
import com.dfsek.paralithic.eval.parser.Scope; import com.dfsek.paralithic.eval.parser.Scope;
import art.arcane.iris.Iris;
import art.arcane.iris.core.loader.IrisRegistrant; import art.arcane.iris.core.loader.IrisRegistrant;
import art.arcane.iris.engine.data.cache.AtomicCache; import art.arcane.iris.engine.data.cache.AtomicCache;
import art.arcane.iris.engine.object.IrisExpressionFunction.FunctionContext; import art.arcane.iris.engine.object.IrisExpressionFunction.FunctionContext;
@@ -77,7 +77,7 @@ public class IrisExpression extends IrisRegistrant {
scope.addInvocationVariable("z"); scope.addInvocationVariable("z");
} catch (Throwable e) { } catch (Throwable e) {
e.printStackTrace(); e.printStackTrace();
Iris.error("Script Variable load error in " + getLoadFile().getPath()); IrisLogging.error("Script Variable load error in " + getLoadFile().getPath());
} }
for (IrisExpressionFunction f : functions) { for (IrisExpressionFunction f : functions) {
@@ -90,7 +90,7 @@ public class IrisExpression extends IrisRegistrant {
return parser.parse(getExpression(), scope); return parser.parse(getExpression(), scope);
} catch (Throwable e) { } catch (Throwable e) {
e.printStackTrace(); e.printStackTrace();
Iris.error("Script load error in " + getLoadFile().getPath()); IrisLogging.error("Script load error in " + getLoadFile().getPath());
} }
return null; return null;
@@ -18,10 +18,10 @@
package art.arcane.iris.engine.object; package art.arcane.iris.engine.object;
import art.arcane.iris.Iris;
import art.arcane.iris.core.loader.IrisData; import art.arcane.iris.core.loader.IrisData;
import art.arcane.iris.engine.data.cache.AtomicCache; import art.arcane.iris.engine.data.cache.AtomicCache;
import art.arcane.iris.engine.object.annotations.*; import art.arcane.iris.engine.object.annotations.*;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.volmlib.util.math.RNG; import art.arcane.volmlib.util.math.RNG;
import art.arcane.iris.util.project.noise.CNG; import art.arcane.iris.util.project.noise.CNG;
import art.arcane.iris.util.project.noise.ExpressionNoise; import art.arcane.iris.util.project.noise.ExpressionNoise;
@@ -146,7 +146,7 @@ public class IrisGeneratorStyle {
} }
if (!file.delete()) { if (!file.delete()) {
Iris.debug("Unable to delete stale noise cache " + file.getName()); IrisLogging.debug("Unable to delete stale noise cache " + file.getName());
} }
} }
} }
@@ -18,8 +18,8 @@
package art.arcane.iris.engine.object; package art.arcane.iris.engine.object;
import art.arcane.iris.Iris;
import art.arcane.iris.core.loader.IrisRegistrant; import art.arcane.iris.core.loader.IrisRegistrant;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.volmlib.util.json.JSONObject; import art.arcane.volmlib.util.json.JSONObject;
import art.arcane.iris.util.common.plugin.VolmitSender; import art.arcane.iris.util.common.plugin.VolmitSender;
@@ -134,7 +134,7 @@ public class IrisImage extends IrisRegistrant {
} }
} }
ImageIO.write(b, "png", at); ImageIO.write(b, "png", at);
Iris.warn("Debug image written to " + at.getPath() + " for channel " + channel.name()); IrisLogging.warn("Debug image written to " + at.getPath() + " for channel " + channel.name());
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
@@ -18,13 +18,13 @@
package art.arcane.iris.engine.object; package art.arcane.iris.engine.object;
import art.arcane.iris.Iris;
import art.arcane.iris.core.loader.IrisData; import art.arcane.iris.core.loader.IrisData;
import art.arcane.iris.engine.data.cache.AtomicCache; import art.arcane.iris.engine.data.cache.AtomicCache;
import art.arcane.iris.engine.object.annotations.Desc; import art.arcane.iris.engine.object.annotations.Desc;
import art.arcane.iris.engine.object.annotations.MinNumber; import art.arcane.iris.engine.object.annotations.MinNumber;
import art.arcane.iris.engine.object.annotations.RegistryListResource; import art.arcane.iris.engine.object.annotations.RegistryListResource;
import art.arcane.iris.engine.object.annotations.Snippet; import art.arcane.iris.engine.object.annotations.Snippet;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.iris.util.project.interpolation.InterpolationMethod; import art.arcane.iris.util.project.interpolation.InterpolationMethod;
import art.arcane.iris.util.project.interpolation.IrisInterpolation; import art.arcane.iris.util.project.interpolation.IrisInterpolation;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@@ -67,7 +67,7 @@ public class IrisImageMap {
public double getNoise(IrisData data, int x, int z) { public double getNoise(IrisData data, int x, int z) {
IrisImage i = imageCache.aquire(() -> data.getImageLoader().load(image)); IrisImage i = imageCache.aquire(() -> data.getImageLoader().load(image));
if (i == null) { if (i == null) {
Iris.error("NULL IMAGE FOR " + image); IrisLogging.error("NULL IMAGE FOR " + image);
return 0; return 0;
} }
@@ -1,240 +1,241 @@
/* /*
* Iris is a World Generator for Minecraft Bukkit Servers * Iris is a World Generator for Minecraft Bukkit Servers
* Copyright (c) 2022 Arcane Arts (Volmit Software) * Copyright (c) 2022 Arcane Arts (Volmit Software)
* *
* This program is free software: you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or * the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package art.arcane.iris.engine.object; package art.arcane.iris.engine.object;
import art.arcane.iris.Iris; import art.arcane.iris.Iris;
import art.arcane.iris.core.link.Identifier; import art.arcane.iris.core.link.Identifier;
import art.arcane.iris.core.service.ExternalDataSVC; import art.arcane.iris.core.service.ExternalDataSVC;
import art.arcane.iris.engine.data.cache.AtomicCache; import art.arcane.iris.engine.data.cache.AtomicCache;
import art.arcane.iris.engine.object.annotations.*; import art.arcane.iris.engine.object.annotations.*;
import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.platform.bukkit.BukkitPlatform;
import art.arcane.volmlib.util.collection.KList; import art.arcane.iris.spi.IrisLogging;
import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.collection.KList;
import art.arcane.iris.util.common.data.B; import art.arcane.volmlib.util.collection.KMap;
import art.arcane.iris.util.common.format.C; import art.arcane.iris.util.common.data.B;
import art.arcane.volmlib.util.format.Form; import art.arcane.iris.util.common.format.C;
import art.arcane.volmlib.util.math.RNG; import art.arcane.volmlib.util.format.Form;
import art.arcane.iris.util.project.noise.CNG; import art.arcane.volmlib.util.math.RNG;
import lombok.AllArgsConstructor; import art.arcane.iris.util.project.noise.CNG;
import lombok.Data; import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor; import lombok.Data;
import lombok.experimental.Accessors; import lombok.NoArgsConstructor;
import org.bukkit.DyeColor; import lombok.experimental.Accessors;
import org.bukkit.Material; import org.bukkit.DyeColor;
import org.bukkit.inventory.ItemFlag; import org.bukkit.Material;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.meta.Damageable; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.Damageable;
import org.bukkit.inventory.meta.LeatherArmorMeta; import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.inventory.meta.components.CustomModelDataComponent; import org.bukkit.inventory.meta.LeatherArmorMeta;
import org.bukkit.material.Colorable; import org.bukkit.inventory.meta.components.CustomModelDataComponent;
import org.bukkit.material.Colorable;
import java.awt.*;
import java.util.List; import java.awt.*;
import java.util.Optional; import java.util.List;
import java.util.Optional;
@Snippet("loot")
@Accessors(chain = true) @Snippet("loot")
@NoArgsConstructor @Accessors(chain = true)
@AllArgsConstructor @NoArgsConstructor
@Desc("Represents a loot entry") @AllArgsConstructor
@Data @Desc("Represents a loot entry")
public class IrisLoot { @Data
private final transient AtomicCache<CNG> chance = new AtomicCache<>(); public class IrisLoot {
@Desc("The target inventory slot types to fill this loot with") private final transient AtomicCache<CNG> chance = new AtomicCache<>();
private InventorySlotType slotTypes = InventorySlotType.STORAGE; @Desc("The target inventory slot types to fill this loot with")
@MinNumber(1) private InventorySlotType slotTypes = InventorySlotType.STORAGE;
@Desc("The sub rarity of this loot. Calculated after this loot table has been picked.") @MinNumber(1)
private int rarity = 1; @Desc("The sub rarity of this loot. Calculated after this loot table has been picked.")
@MinNumber(1) private int rarity = 1;
@Desc("Minimum amount of this loot") @MinNumber(1)
private int minAmount = 1; @Desc("Minimum amount of this loot")
@MinNumber(1) private int minAmount = 1;
@Desc("Maximum amount of this loot") @MinNumber(1)
private int maxAmount = 1; @Desc("Maximum amount of this loot")
@MinNumber(1) private int maxAmount = 1;
@Desc("The display name of this item") @MinNumber(1)
private String displayName = null; @Desc("The display name of this item")
@MinNumber(0) private String displayName = null;
@MaxNumber(1) @MinNumber(0)
@Desc("Minimum durability percent") @MaxNumber(1)
private double minDurability = 0; @Desc("Minimum durability percent")
@MinNumber(0) private double minDurability = 0;
@MaxNumber(1) @MinNumber(0)
@Desc("Maximum durability percent") @MaxNumber(1)
private double maxDurability = 1; @Desc("Maximum durability percent")
@Desc("Define a custom model identifier 1.14+ only") private double maxDurability = 1;
private Integer customModel = null; @Desc("Define a custom model identifier 1.14+ only")
@Desc("Set this to true to prevent it from being broken") private Integer customModel = null;
private boolean unbreakable = false; @Desc("Set this to true to prevent it from being broken")
@ArrayType(min = 1, type = ItemFlag.class) private boolean unbreakable = false;
@Desc("The item flags to add") @ArrayType(min = 1, type = ItemFlag.class)
private KList<ItemFlag> itemFlags = new KList<>(); @Desc("The item flags to add")
@Desc("Apply enchantments to this item") private KList<ItemFlag> itemFlags = new KList<>();
@ArrayType(min = 1, type = IrisEnchantment.class) @Desc("Apply enchantments to this item")
private KList<IrisEnchantment> enchantments = new KList<>(); @ArrayType(min = 1, type = IrisEnchantment.class)
@Desc("Apply attribute modifiers to this item") private KList<IrisEnchantment> enchantments = new KList<>();
@ArrayType(min = 1, type = IrisAttributeModifier.class) @Desc("Apply attribute modifiers to this item")
private KList<IrisAttributeModifier> attributes = new KList<>(); @ArrayType(min = 1, type = IrisAttributeModifier.class)
@ArrayType(min = 1, type = String.class) private KList<IrisAttributeModifier> attributes = new KList<>();
@Desc("Add lore to this item") @ArrayType(min = 1, type = String.class)
private KList<String> lore = new KList<>(); @Desc("Add lore to this item")
@RegistryListItemType private KList<String> lore = new KList<>();
@Required @RegistryListItemType
@Desc("This is the item or block type. Does not accept minecraft:*, only materials such as DIAMOND_SWORD or DIRT. The exception are modded materials, as they require a namespace.") @Required
private String type = ""; @Desc("This is the item or block type. Does not accept minecraft:*, only materials such as DIAMOND_SWORD or DIRT. The exception are modded materials, as they require a namespace.")
@Desc("The dye color") private String type = "";
private DyeColor dyeColor = null; @Desc("The dye color")
@Desc("The leather armor color") private DyeColor dyeColor = null;
private String leatherColor = null; @Desc("The leather armor color")
@Desc("Defines a custom NBT Tag for the item.") private String leatherColor = null;
private KMap<String, Object> customNbt; @Desc("Defines a custom NBT Tag for the item.")
private KMap<String, Object> customNbt;
public Material getType() {
return B.getMaterial(type); public Material getType() {
} return B.getMaterial(type);
}
public ItemStack get(boolean debug, RNG rng) {
try { public ItemStack get(boolean debug, RNG rng) {
ItemStack is = getItemStack(rng); try {
if (is == null) ItemStack is = getItemStack(rng);
return new ItemStack(Material.AIR); if (is == null)
is.setItemMeta(applyProperties(is, rng, debug, null)); return new ItemStack(Material.AIR);
return BukkitPlatform.applyCustomNbt(is, customNbt); is.setItemMeta(applyProperties(is, rng, debug, null));
} catch (Throwable e) { return BukkitPlatform.applyCustomNbt(is, customNbt);
Iris.reportError(e); } catch (Throwable e) {
return new ItemStack(Material.AIR); IrisLogging.reportError(e);
} return new ItemStack(Material.AIR);
} }
}
public ItemStack get(boolean debug, boolean giveSomething, IrisLootTable table, RNG rng, int x, int y, int z) {
if (debug) { public ItemStack get(boolean debug, boolean giveSomething, IrisLootTable table, RNG rng, int x, int y, int z) {
chance.reset(); if (debug) {
} chance.reset();
}
if (giveSomething || chance.aquire(() -> NoiseStyle.STATIC.create(rng)).fit(1, rarity * table.getRarity(), x, y, z) == 1) {
try { if (giveSomething || chance.aquire(() -> NoiseStyle.STATIC.create(rng)).fit(1, rarity * table.getRarity(), x, y, z) == 1) {
ItemStack is = getItemStack(rng); try {
if (is == null) ItemStack is = getItemStack(rng);
return null; if (is == null)
is.setItemMeta(applyProperties(is, rng, debug, table)); return null;
return BukkitPlatform.applyCustomNbt(is, customNbt); is.setItemMeta(applyProperties(is, rng, debug, table));
} catch (Throwable e) { return BukkitPlatform.applyCustomNbt(is, customNbt);
//Iris.reportError(e); } catch (Throwable e) {
e.printStackTrace(); //Iris.reportError(e);
} e.printStackTrace();
} }
}
return null;
} return null;
}
// TODO Better Third Party Item Acquisition
private ItemStack getItemStack(RNG rng) { // TODO Better Third Party Item Acquisition
if (!type.startsWith("minecraft:") && type.contains(":")) { private ItemStack getItemStack(RNG rng) {
Optional<ItemStack> opt = Iris.service(ExternalDataSVC.class).getItemStack(Identifier.fromString(type), customNbt); if (!type.startsWith("minecraft:") && type.contains(":")) {
if (opt.isEmpty()) { Optional<ItemStack> opt = Iris.service(ExternalDataSVC.class).getItemStack(Identifier.fromString(type), customNbt);
Iris.warn("Unknown Material: " + type); if (opt.isEmpty()) {
return new ItemStack(Material.AIR); IrisLogging.warn("Unknown Material: " + type);
} return new ItemStack(Material.AIR);
ItemStack is = opt.get(); }
is.setAmount(Math.max(1, rng.i(getMinAmount(), getMaxAmount()))); ItemStack is = opt.get();
return is; is.setAmount(Math.max(1, rng.i(getMinAmount(), getMaxAmount())));
} return is;
return new ItemStack(getType(), Math.max(1, rng.i(getMinAmount(), getMaxAmount()))); }
} return new ItemStack(getType(), Math.max(1, rng.i(getMinAmount(), getMaxAmount())));
}
private ItemMeta applyProperties(ItemStack is, RNG rng, boolean debug, IrisLootTable table) {
ItemMeta m = is.getItemMeta(); private ItemMeta applyProperties(ItemStack is, RNG rng, boolean debug, IrisLootTable table) {
if (m == null) { ItemMeta m = is.getItemMeta();
return null; if (m == null) {
} return null;
}
for (IrisEnchantment i : getEnchantments()) {
i.apply(rng, m); for (IrisEnchantment i : getEnchantments()) {
} i.apply(rng, m);
}
for (IrisAttributeModifier i : getAttributes()) {
i.apply(rng, m); for (IrisAttributeModifier i : getAttributes()) {
} i.apply(rng, m);
}
m.setUnbreakable(isUnbreakable());
for (ItemFlag i : getItemFlags()) { m.setUnbreakable(isUnbreakable());
m.addItemFlags(i); for (ItemFlag i : getItemFlags()) {
} m.addItemFlags(i);
}
if (getCustomModel() != null) {
CustomModelDataComponent customModelData = m.getCustomModelDataComponent(); if (getCustomModel() != null) {
customModelData.setFloats(List.of(getCustomModel().floatValue())); CustomModelDataComponent customModelData = m.getCustomModelDataComponent();
m.setCustomModelDataComponent(customModelData); customModelData.setFloats(List.of(getCustomModel().floatValue()));
} m.setCustomModelDataComponent(customModelData);
}
if (is.getType().getMaxDurability() > 0 && m instanceof Damageable d) {
int max = is.getType().getMaxDurability(); if (is.getType().getMaxDurability() > 0 && m instanceof Damageable d) {
d.setDamage((int) Math.round(Math.max(0, Math.min(max, (1D - rng.d(getMinDurability(), getMaxDurability())) * max)))); int max = is.getType().getMaxDurability();
} d.setDamage((int) Math.round(Math.max(0, Math.min(max, (1D - rng.d(getMinDurability(), getMaxDurability())) * max))));
}
if (getLeatherColor() != null && m instanceof LeatherArmorMeta leather) {
Color c = Color.decode(getLeatherColor()); if (getLeatherColor() != null && m instanceof LeatherArmorMeta leather) {
leather.setColor(org.bukkit.Color.fromRGB(c.getRed(), c.getGreen(), c.getBlue())); Color c = Color.decode(getLeatherColor());
} leather.setColor(org.bukkit.Color.fromRGB(c.getRed(), c.getGreen(), c.getBlue()));
}
if (getDyeColor() != null && m instanceof Colorable colorable) {
colorable.setColor(getDyeColor()); if (getDyeColor() != null && m instanceof Colorable colorable) {
} colorable.setColor(getDyeColor());
}
if (displayName != null) {
m.setDisplayName(C.translateAlternateColorCodes('&', displayName)); if (displayName != null) {
} m.setDisplayName(C.translateAlternateColorCodes('&', displayName));
}
KList<String> lore = new KList<>();
KList<String> lore = new KList<>();
getLore().forEach((i) ->
{ getLore().forEach((i) ->
String mf = C.translateAlternateColorCodes('&', i); {
String mf = C.translateAlternateColorCodes('&', i);
if (mf.length() > 24) {
for (String g : Form.wrapWords(mf, 24).split("\\Q\n\\E")) { if (mf.length() > 24) {
lore.add(g.trim()); for (String g : Form.wrapWords(mf, 24).split("\\Q\n\\E")) {
} lore.add(g.trim());
} else { }
lore.add(mf); } else {
} lore.add(mf);
}); }
});
if (debug) {
if (table == null) { if (debug) {
if (lore.isNotEmpty()) { if (table == null) {
lore.add(C.GRAY + "--------------------"); if (lore.isNotEmpty()) {
} lore.add(C.GRAY + "--------------------");
lore.add(C.GRAY + "1 in " + (getRarity()) + " Chance (" + Form.pc(1D / (getRarity()), 5) + ")"); }
} else { lore.add(C.GRAY + "1 in " + (getRarity()) + " Chance (" + Form.pc(1D / (getRarity()), 5) + ")");
if (lore.isNotEmpty()) { } else {
lore.add(C.GRAY + "--------------------"); if (lore.isNotEmpty()) {
} lore.add(C.GRAY + "--------------------");
}
lore.add(C.GRAY + "From: " + table.getName() + " (" + Form.pc(1D / table.getRarity(), 5) + ")");
lore.add(C.GRAY + "1 in " + (table.getRarity() * getRarity()) + " Chance (" + Form.pc(1D / (table.getRarity() * getRarity()), 5) + ")"); lore.add(C.GRAY + "From: " + table.getName() + " (" + Form.pc(1D / table.getRarity(), 5) + ")");
} lore.add(C.GRAY + "1 in " + (table.getRarity() * getRarity()) + " Chance (" + Form.pc(1D / (table.getRarity() * getRarity()), 5) + ")");
} }
}
m.setLore(lore);
m.setLore(lore);
return m;
} return m;
} }
}
@@ -19,7 +19,6 @@
package art.arcane.iris.engine.object; package art.arcane.iris.engine.object;
import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.platform.bukkit.BukkitPlatform;
import art.arcane.iris.Iris;
import art.arcane.iris.core.loader.IrisData; import art.arcane.iris.core.loader.IrisData;
import art.arcane.iris.core.loader.IrisRegistrant; import art.arcane.iris.core.loader.IrisRegistrant;
import art.arcane.iris.engine.data.cache.AtomicCache; import art.arcane.iris.engine.data.cache.AtomicCache;
@@ -27,6 +26,7 @@ import art.arcane.iris.engine.framework.Engine;
import art.arcane.iris.engine.framework.PlacedObject; import art.arcane.iris.engine.framework.PlacedObject;
import art.arcane.iris.engine.framework.placer.HeightmapObjectPlacer; import art.arcane.iris.engine.framework.placer.HeightmapObjectPlacer;
import art.arcane.iris.platform.bukkit.BukkitBlockState; import art.arcane.iris.platform.bukkit.BukkitBlockState;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.spi.PlatformBlockState;
import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KList;
import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.collection.KMap;
@@ -193,7 +193,7 @@ public class IrisObject extends IrisRegistrant {
AtomicInteger applied = new AtomicInteger(); AtomicInteger applied = new AtomicInteger();
if (blocks.isEmpty()) { if (blocks.isEmpty()) {
writeLock.unlock(); writeLock.unlock();
Iris.warn("Cannot Smart Bore " + getLoadKey() + " because it has 0 blocks in it."); IrisLogging.warn("Cannot Smart Bore " + getLoadKey() + " because it has 0 blocks in it.");
smartBored = true; smartBored = true;
return; return;
} }
@@ -302,7 +302,7 @@ public class IrisObject extends IrisRegistrant {
burst.complete(); burst.complete();
smartBored = true; smartBored = true;
writeLock.unlock(); writeLock.unlock();
Iris.debug("Smart Bore: " + getLoadKey() + " in " + Form.duration(p.getMilliseconds(), 2) + " (" + Form.f(applied.get()) + ")"); IrisLogging.debug("Smart Bore: " + getLoadKey() + " in " + Form.duration(p.getMilliseconds(), 2) + " (" + Form.f(applied.get()) + ")");
} }
public synchronized IrisObject copy() { public synchronized IrisObject copy() {
@@ -345,7 +345,7 @@ public class IrisObject extends IrisRegistrant {
states.put(new Vector3i(din.readShort(), din.readShort(), din.readShort()), TileData.read(din)); states.put(new Vector3i(din.readShort(), din.readShort(), din.readShort()), TileData.read(din));
} }
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
} }
} }
@@ -519,7 +519,7 @@ public class IrisObject extends IrisRegistrant {
read(fin); read(fin);
} catch (Throwable e) { } catch (Throwable e) {
if (!(e instanceof HeaderException)) if (!(e instanceof HeaderException))
Iris.reportError(e); IrisLogging.reportError(e);
try (var fin = new BufferedInputStream(new FileInputStream(file))) { try (var fin = new BufferedInputStream(new FileInputStream(file))) {
readLegacy(fin); readLegacy(fin);
} }
@@ -642,7 +642,7 @@ public class IrisObject extends IrisRegistrant {
blocks.put(v, BukkitBlockState.of(data)); blocks.put(v, BukkitBlockState.of(data));
TileData state = TileData.getTileState(block, legacy); TileData state = TileData.getTileState(block, legacy);
if (state != null) { if (state != null) {
Iris.debug("Saved State " + v); IrisLogging.debug("Saved State " + v);
states.put(v, state); states.put(v, state);
} }
} }
@@ -1032,13 +1032,13 @@ public class IrisObject extends IrisRegistrant {
d = entry.getValue(); d = entry.getValue();
tile = states.get(g); tile = states.get(g);
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
Iris.warn("Failed to read block node " + g.getBlockX() + "," + g.getBlockY() + "," + g.getBlockZ() + " in object " + getLoadKey() + " (cme)"); IrisLogging.warn("Failed to read block node " + g.getBlockX() + "," + g.getBlockY() + "," + g.getBlockZ() + " in object " + getLoadKey() + " (cme)");
d = AIR; d = AIR;
} }
if (d == null) { if (d == null) {
Iris.warn("Failed to read block node " + g.getBlockX() + "," + g.getBlockY() + "," + g.getBlockZ() + " in object " + getLoadKey() + " (null)"); IrisLogging.warn("Failed to read block node " + g.getBlockX() + "," + g.getBlockY() + "," + g.getBlockZ() + " in object " + getLoadKey() + " (null)");
d = AIR; d = AIR;
} }
@@ -1170,7 +1170,7 @@ public class IrisObject extends IrisRegistrant {
} }
} catch (Throwable e) { } catch (Throwable e) {
e.printStackTrace(); e.printStackTrace();
Iris.reportError(e); IrisLogging.reportError(e);
} }
readLock.unlock(); readLock.unlock();
@@ -1221,13 +1221,13 @@ public class IrisObject extends IrisRegistrant {
try { try {
sourceData = blocks.get(g); sourceData = blocks.get(g);
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
Iris.warn("Failed to read block node " + g.getBlockX() + "," + g.getBlockY() + "," + g.getBlockZ() + " in object " + getLoadKey() + " (stilt cme)"); IrisLogging.warn("Failed to read block node " + g.getBlockX() + "," + g.getBlockY() + "," + g.getBlockZ() + " in object " + getLoadKey() + " (stilt cme)");
sourceData = AIR; sourceData = AIR;
} }
if (sourceData == null) { if (sourceData == null) {
Iris.warn("Failed to read block node " + g.getBlockX() + "," + g.getBlockY() + "," + g.getBlockZ() + " in object " + getLoadKey() + " (stilt null)"); IrisLogging.warn("Failed to read block node " + g.getBlockX() + "," + g.getBlockY() + "," + g.getBlockZ() + " in object " + getLoadKey() + " (stilt null)");
sourceData = AIR; sourceData = AIR;
} }
@@ -1446,7 +1446,7 @@ public class IrisObject extends IrisRegistrant {
return; return;
} }
IMPLAUSIBLE_BEDROCK_WARNS.put(fingerprint, now); IMPLAUSIBLE_BEDROCK_WARNS.put(fingerprint, now);
Iris.warn("Implausible object placement rejected: " IrisLogging.warn("Implausible object placement rejected: "
+ (key == null ? "<no loadKey>" : key) + (key == null ? "<no loadKey>" : key)
+ " resolved anchorY=" + y + " at (" + x + "," + z + ") mode=" + config.getMode() + " resolved anchorY=" + y + " at (" + x + "," + z + ") mode=" + config.getMode()
+ " carving=" + config.getCarvingSupport() + " carving=" + config.getCarvingSupport()
@@ -1606,7 +1606,7 @@ public class IrisObject extends IrisRegistrant {
b.setBlockData((BlockData) Objects.requireNonNull(entry.getValue()).nativeHandle(), false); b.setBlockData((BlockData) Objects.requireNonNull(entry.getValue()).nativeHandle(), false);
if (states.containsKey(i)) { if (states.containsKey(i)) {
Iris.info(Objects.requireNonNull(states.get(i)).toString()); IrisLogging.info(Objects.requireNonNull(states.get(i)).toString());
Objects.requireNonNull(states.get(i)).toBukkitTry(b); Objects.requireNonNull(states.get(i)).toBukkitTry(b);
} }
} }
@@ -18,11 +18,11 @@
package art.arcane.iris.engine.object; package art.arcane.iris.engine.object;
import art.arcane.iris.Iris;
import art.arcane.iris.core.loader.IrisData; import art.arcane.iris.core.loader.IrisData;
import art.arcane.iris.engine.data.cache.AtomicCache; import art.arcane.iris.engine.data.cache.AtomicCache;
import art.arcane.iris.engine.framework.Engine; import art.arcane.iris.engine.framework.Engine;
import art.arcane.iris.engine.object.annotations.*; import art.arcane.iris.engine.object.annotations.*;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.spi.PlatformBlockState;
import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KList;
import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.collection.KMap;
@@ -267,7 +267,7 @@ public class IrisObjectPlacement {
continue; continue;
IrisLootTable table = loader.apply(loot.getName()); IrisLootTable table = loader.apply(loot.getName());
if (table == null) { if (table == null) {
Iris.warn("Couldn't find loot table " + loot.getName()); IrisLogging.warn("Couldn't find loot table " + loot.getName());
continue; continue;
} }
@@ -19,10 +19,10 @@
package art.arcane.iris.engine.object; package art.arcane.iris.engine.object;
import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.platform.bukkit.BukkitPlatform;
import art.arcane.iris.Iris;
import art.arcane.iris.engine.object.annotations.Desc; import art.arcane.iris.engine.object.annotations.Desc;
import art.arcane.iris.engine.object.annotations.Snippet; import art.arcane.iris.engine.object.annotations.Snippet;
import art.arcane.iris.platform.bukkit.BukkitBlockState; import art.arcane.iris.platform.bukkit.BukkitBlockState;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.spi.PlatformBlockState;
import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KList;
import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.collection.KMap;
@@ -352,7 +352,7 @@ public class IrisObjectRotation {
} }
} }
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
} }
@@ -18,9 +18,9 @@
package art.arcane.iris.engine.object; package art.arcane.iris.engine.object;
import art.arcane.iris.Iris;
import art.arcane.iris.engine.data.cache.AtomicCache; import art.arcane.iris.engine.data.cache.AtomicCache;
import art.arcane.iris.engine.object.annotations.*; import art.arcane.iris.engine.object.annotations.*;
import art.arcane.iris.spi.IrisLogging;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@@ -69,11 +69,11 @@ public class IrisPotionEffect {
return resolved; return resolved;
} }
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
} }
if (PotionEffectTypes.shouldWarn(getPotionEffect())) { if (PotionEffectTypes.shouldWarn(getPotionEffect())) {
Iris.warn("Unknown Potion Effect Type: \"" + getPotionEffect() + "\". Valid types: " + PotionEffectTypes.knownTypesList()); IrisLogging.warn("Unknown Potion Effect Type: \"" + getPotionEffect() + "\". Valid types: " + PotionEffectTypes.knownTypesList());
} }
return PotionEffectType.LUCK; return PotionEffectType.LUCK;
@@ -27,6 +27,7 @@ import art.arcane.iris.engine.object.annotations.MinNumber;
import art.arcane.iris.engine.object.annotations.Required; import art.arcane.iris.engine.object.annotations.Required;
import art.arcane.iris.engine.object.annotations.Snippet; import art.arcane.iris.engine.object.annotations.Snippet;
import art.arcane.iris.engine.object.tree.ProceduralTreeGenerator; import art.arcane.iris.engine.object.tree.ProceduralTreeGenerator;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KList;
import art.arcane.volmlib.util.math.RNG; import art.arcane.volmlib.util.math.RNG;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@@ -286,7 +287,7 @@ public class IrisProceduralTree implements IrisProceduralPlacement {
long position = ((long) vector.getBlockX() << 40) ^ ((long) vector.getBlockY() << 20) ^ vector.getBlockZ(); long position = ((long) vector.getBlockX() << 40) ^ ((long) vector.getBlockY() << 20) ^ vector.getBlockZ();
digest[0] ^= Long.rotateLeft(position * 0x9E3779B97F4A7C15L ^ state.key().hashCode(), (int) (position & 63)); digest[0] ^= Long.rotateLeft(position * 0x9E3779B97F4A7C15L ^ state.key().hashCode(), (int) (position & 63));
}); });
art.arcane.iris.Iris.info("Goldendebug bake: " + object.getLoadKey() + " blocks=" + object.getBlocks().size() + " digest=" + Long.toHexString(digest[0])); IrisLogging.info("Goldendebug bake: " + object.getLoadKey() + " blocks=" + object.getBlocks().size() + " digest=" + Long.toHexString(digest[0]));
} }
} }
@@ -18,9 +18,9 @@
package art.arcane.iris.engine.object; package art.arcane.iris.engine.object;
import art.arcane.iris.Iris;
import art.arcane.iris.core.gui.components.RenderType; import art.arcane.iris.core.gui.components.RenderType;
import art.arcane.iris.core.loader.IrisData; import art.arcane.iris.core.loader.IrisData;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.spi.PlatformBlockState;
import art.arcane.iris.core.loader.IrisRegistrant; import art.arcane.iris.core.loader.IrisRegistrant;
import art.arcane.iris.engine.data.cache.AtomicCache; import art.arcane.iris.engine.data.cache.AtomicCache;
@@ -442,14 +442,14 @@ public class IrisRegion extends IrisRegistrant implements IRare {
biomes.remove(index); biomes.remove(index);
} }
Iris.warn("Couldn't find a suitable color for region " + getName()); IrisLogging.warn("Couldn't find a suitable color for region " + getName());
return new Color(new RandomColor(rand).randomColor()); return new Color(new RandomColor(rand).randomColor());
} }
try { try {
return Color.decode(this.color); return Color.decode(this.color);
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
Iris.warn("Could not parse color \"" + this.color + "\" for region " + getName()); IrisLogging.warn("Could not parse color \"" + this.color + "\" for region " + getName());
return Color.WHITE; return Color.WHITE;
} }
}); });
@@ -19,8 +19,8 @@
package art.arcane.iris.engine.object; package art.arcane.iris.engine.object;
import art.arcane.iris.Iris;
import art.arcane.iris.engine.object.annotations.*; import art.arcane.iris.engine.object.annotations.*;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KList;
import art.arcane.volmlib.util.math.RNG; import art.arcane.volmlib.util.math.RNG;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@@ -111,8 +111,8 @@ public class IrisVillagerTrade {
if (warnings.isEmpty()) { if (warnings.isEmpty()) {
return true; return true;
} else { } else {
Iris.warn("Faulty item in cartographer item overrides: " + this); IrisLogging.warn("Faulty item in cartographer item overrides: " + this);
warnings.forEach(w -> Iris.warn(" " + w)); warnings.forEach(w -> IrisLogging.warn(" " + w));
return false; return false;
} }
} }
@@ -18,8 +18,8 @@
package art.arcane.iris.engine.object; package art.arcane.iris.engine.object;
import art.arcane.iris.Iris;
import art.arcane.iris.core.tools.IrisToolbelt; import art.arcane.iris.core.tools.IrisToolbelt;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KList;
import lombok.*; import lombok.*;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
@@ -127,7 +127,7 @@ public class IrisWorld {
return realWorld().getSpawnLocation(); return realWorld().getSpawnLocation();
} }
Iris.error("This world is not real yet, cannot get spawn location! HEADLESS!"); IrisLogging.error("This world is not real yet, cannot get spawn location! HEADLESS!");
return null; return null;
} }
@@ -18,10 +18,10 @@
package art.arcane.iris.engine.object; package art.arcane.iris.engine.object;
import art.arcane.iris.spi.IrisLogging;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.GsonBuilder; import com.google.gson.GsonBuilder;
import com.google.gson.Strictness; import com.google.gson.Strictness;
import art.arcane.iris.Iris;
import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.platform.bukkit.BukkitPlatform;
import art.arcane.iris.util.common.reflect.KeyedType; import art.arcane.iris.util.common.reflect.KeyedType;
import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.collection.KMap;
@@ -108,7 +108,7 @@ public class TileData implements Cloneable {
toBukkit(block); toBukkit(block);
return true; return true;
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
} }
return false; return false;
@@ -120,7 +120,7 @@ public class TileData implements Cloneable {
fromBukkit(block); fromBukkit(block);
return true; return true;
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
} }
@@ -37,6 +37,7 @@ import art.arcane.iris.engine.object.VanillaStructureMode;
import art.arcane.iris.engine.object.IrisWorld; import art.arcane.iris.engine.object.IrisWorld;
import art.arcane.iris.engine.object.StudioMode; import art.arcane.iris.engine.object.StudioMode;
import art.arcane.iris.engine.platform.studio.StudioGenerator; import art.arcane.iris.engine.platform.studio.StudioGenerator;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.iris.spi.PlatformBiome; import art.arcane.iris.spi.PlatformBiome;
import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KList;
import art.arcane.iris.util.project.hunk.Hunk; import art.arcane.iris.util.project.hunk.Hunk;
@@ -130,10 +131,10 @@ public class BukkitChunkGenerator extends ChunkGenerator implements PlatformChun
world.setRawWorldSeed(event.getWorld().getSeed()); world.setRawWorldSeed(event.getWorld().getSeed());
if (initialize(event.getWorld())) return; if (initialize(event.getWorld())) return;
Iris.warn("Failed to get Engine for " + event.getWorld().getName() + " re-trying..."); IrisLogging.warn("Failed to get Engine for " + event.getWorld().getName() + " re-trying...");
J.s(() -> { J.s(() -> {
if (!initialize(event.getWorld())) { if (!initialize(event.getWorld())) {
Iris.error("Failed to get Engine for " + event.getWorld().getName() + "!"); IrisLogging.error("Failed to get Engine for " + event.getWorld().getName() + "!");
} }
}, 10); }, 10);
} }
@@ -143,13 +144,13 @@ public class BukkitChunkGenerator extends ChunkGenerator implements PlatformChun
if (engine == null) return false; if (engine == null) return false;
try { try {
INMS.get().inject(world.getSeed(), engine, world); INMS.get().inject(world.getSeed(), engine, world);
Iris.debug("Injected Iris Biome Source into " + world.getName()); IrisLogging.debug("Injected Iris Biome Source into " + world.getName());
if (!studio) { if (!studio) {
J.s(() -> updateSpawnLocation(world), 1); J.s(() -> updateSpawnLocation(world), 1);
} }
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
Iris.error("Failed to inject biome source into " + world.getName()); IrisLogging.error("Failed to inject biome source into " + world.getName());
e.printStackTrace(); e.printStackTrace();
} }
spawnChunks.complete(INMS.get().getSpawnChunkCount(world)); spawnChunks.complete(INMS.get().getSpawnChunkCount(world));
@@ -240,23 +241,23 @@ public class BukkitChunkGenerator extends ChunkGenerator implements PlatformChun
IrisDimension dimension = data.getDimensionLoader().load(dimensionKey); IrisDimension dimension = data.getDimensionLoader().load(dimensionKey);
if (dimension == null) { if (dimension == null) {
Iris.error("Oh No! There's no pack in " + data.getDataFolder().getPath() + " or... there's no dimension for the key " + dimensionKey); IrisLogging.error("Oh No! There's no pack in " + data.getDataFolder().getPath() + " or... there's no dimension for the key " + dimensionKey);
IrisDimension test = IrisData.loadAnyDimension(dimensionKey, null); IrisDimension test = IrisData.loadAnyDimension(dimensionKey, null);
if (test != null) { if (test != null) {
Iris.warn("Looks like " + dimensionKey + " exists in " + test.getLoadFile().getPath() + " "); IrisLogging.warn("Looks like " + dimensionKey + " exists in " + test.getLoadFile().getPath() + " ");
test = Iris.service(StudioSVC.class).installInto(Iris.getSender(), dimensionKey, dataLocation); test = Iris.service(StudioSVC.class).installInto(Iris.getSender(), dimensionKey, dataLocation);
Iris.warn("Attempted to install into " + data.getDataFolder().getPath()); IrisLogging.warn("Attempted to install into " + data.getDataFolder().getPath());
if (test != null) { if (test != null) {
Iris.success("Woo! Patched the Engine!"); Iris.success("Woo! Patched the Engine!");
dimension = test; dimension = test;
} else { } else {
Iris.error("Failed to patch dimension!"); IrisLogging.error("Failed to patch dimension!");
throw new RuntimeException("Missing Dimension: " + dimensionKey); throw new RuntimeException("Missing Dimension: " + dimensionKey);
} }
} else { } else {
Iris.error("Nope, you don't have an installation containing " + dimensionKey + " try downloading it?"); IrisLogging.error("Nope, you don't have an installation containing " + dimensionKey + " try downloading it?");
throw new RuntimeException("Missing Dimension: " + dimensionKey); throw new RuntimeException("Missing Dimension: " + dimensionKey);
} }
} }
@@ -330,7 +331,7 @@ public class BukkitChunkGenerator extends ChunkGenerator implements PlatformChun
activeHotloader.join(1000L); activeHotloader.join(1000L);
} catch (InterruptedException e) { } catch (InterruptedException e) {
Thread.currentThread().interrupt(); Thread.currentThread().interrupt();
Iris.reportError(e); IrisLogging.reportError(e);
} }
} }
@@ -375,7 +376,7 @@ public class BukkitChunkGenerator extends ChunkGenerator implements PlatformChun
r.run(); r.run();
loadLock.release(LOAD_LOCKS); loadLock.release(LOAD_LOCKS);
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
} }
}); });
} }
@@ -422,16 +423,16 @@ public class BukkitChunkGenerator extends ChunkGenerator implements PlatformChun
blocks.apply(); blocks.apply();
} }
Iris.debug("Generated " + x + " " + z); IrisLogging.debug("Generated " + x + " " + z);
} catch (GenerationSessionException e) { } catch (GenerationSessionException e) {
if (closing || isExpectedTeardown(engine, e)) { if (closing || isExpectedTeardown(engine, e)) {
return; return;
} }
Iris.error("======================================"); IrisLogging.error("======================================");
e.printStackTrace(); e.printStackTrace();
Iris.reportErrorChunk(x, z, e, "CHUNK"); Iris.reportErrorChunk(x, z, e, "CHUNK");
Iris.error("======================================"); IrisLogging.error("======================================");
for (int i = 0; i < 16; i++) { for (int i = 0; i < 16; i++) {
for (int j = 0; j < 16; j++) { for (int j = 0; j < 16; j++) {
@@ -439,10 +440,10 @@ public class BukkitChunkGenerator extends ChunkGenerator implements PlatformChun
} }
} }
} catch (Throwable e) { } catch (Throwable e) {
Iris.error("======================================"); IrisLogging.error("======================================");
e.printStackTrace(); e.printStackTrace();
Iris.reportErrorChunk(x, z, e, "CHUNK"); Iris.reportErrorChunk(x, z, e, "CHUNK");
Iris.error("======================================"); IrisLogging.error("======================================");
for (int i = 0; i < 16; i++) { for (int i = 0; i < 16; i++) {
for (int j = 0; j < 16; j++) { for (int j = 0; j < 16; j++) {
@@ -18,7 +18,6 @@
package art.arcane.iris.engine.platform.studio.generators; package art.arcane.iris.engine.platform.studio.generators;
import art.arcane.iris.Iris;
import art.arcane.iris.core.loader.IrisData; import art.arcane.iris.core.loader.IrisData;
import art.arcane.iris.core.runtime.ObjectStudioActivation; import art.arcane.iris.core.runtime.ObjectStudioActivation;
import art.arcane.iris.core.runtime.ObjectStudioLayout; import art.arcane.iris.core.runtime.ObjectStudioLayout;
@@ -31,6 +30,7 @@ import art.arcane.iris.engine.object.IrisObject;
import art.arcane.iris.engine.platform.studio.EnginedStudioGenerator; import art.arcane.iris.engine.platform.studio.EnginedStudioGenerator;
import art.arcane.iris.platform.bukkit.BukkitBiome; import art.arcane.iris.platform.bukkit.BukkitBiome;
import art.arcane.iris.platform.bukkit.BukkitBlockState; import art.arcane.iris.platform.bukkit.BukkitBlockState;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.iris.spi.PlatformBiome; import art.arcane.iris.spi.PlatformBiome;
import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.spi.PlatformBlockState;
import art.arcane.iris.util.common.data.VectorMap; import art.arcane.iris.util.common.data.VectorMap;
@@ -253,12 +253,12 @@ public class ObjectStudioGenerator extends EnginedStudioGenerator {
try { try {
ObjectStudioSaveService.get().register(engine, this); ObjectStudioSaveService.get().register(engine, this);
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
} }
int cellCount = layout.cells().size(); int cellCount = layout.cells().size();
BlockVector worldExtent = computeExtent(layout); BlockVector worldExtent = computeExtent(layout);
Iris.info("Object Studio layout built: %d cells from %d pack(s), extent %d x %d blocks", IrisLogging.info("Object Studio layout built: %d cells from %d pack(s), extent %d x %d blocks",
cellCount, sources.size(), worldExtent.getBlockX(), worldExtent.getBlockZ()); cellCount, sources.size(), worldExtent.getBlockX(), worldExtent.getBlockZ());
} }
} }
@@ -183,6 +183,11 @@ public final class BukkitPlatform implements IrisPlatform {
} }
} }
@Override
public void reportError(Throwable error) {
Iris.reportError(error);
}
private static final class BukkitCapabilities implements PlatformCapabilities { private static final class BukkitCapabilities implements PlatformCapabilities {
@Override @Override
public boolean customBiomes() { public boolean customBiomes() {
@@ -1,6 +1,7 @@
package art.arcane.iris.util.project.agent; package art.arcane.iris.util.project.agent;
import art.arcane.iris.Iris; import art.arcane.iris.Iris;
import art.arcane.iris.spi.IrisLogging;
import net.bytebuddy.agent.ByteBuddyAgent; import net.bytebuddy.agent.ByteBuddyAgent;
import net.bytebuddy.dynamic.loading.ClassReloadingStrategy; import net.bytebuddy.dynamic.loading.ClassReloadingStrategy;
@@ -36,12 +37,12 @@ public class Agent {
return false; return false;
try { try {
Iris.info("Installing Java Agent..."); IrisLogging.info("Installing Java Agent...");
Iris.info("Note: JVM [Attach Listener/ERROR] [STDERR] warning lines during this step are expected and not Iris errors."); IrisLogging.info("Note: JVM [Attach Listener/ERROR] [STDERR] warning lines during this step are expected and not Iris errors.");
ByteBuddyAgent.attach(AGENT_JAR, ByteBuddyAgent.ProcessProvider.ForCurrentVm.INSTANCE); ByteBuddyAgent.attach(AGENT_JAR, ByteBuddyAgent.ProcessProvider.ForCurrentVm.INSTANCE);
} catch (Throwable e) { } catch (Throwable e) {
Iris.error("Failed to install Java Agent: " + e.getMessage()); IrisLogging.error("Failed to install Java Agent: " + e.getMessage());
Iris.reportError(e); IrisLogging.reportError(e);
} }
return doGetInstrumentation() != null; return doGetInstrumentation() != null;
} }
@@ -49,26 +50,26 @@ public class Agent {
private static boolean ensureAgentJar() { private static boolean ensureAgentJar() {
File parent = AGENT_JAR.getParentFile(); File parent = AGENT_JAR.getParentFile();
if (parent != null && !parent.exists() && !parent.mkdirs() && !parent.exists()) { if (parent != null && !parent.exists() && !parent.mkdirs() && !parent.exists()) {
Iris.error("Failed to create Iris plugin data folder for Java agent: " + parent.getAbsolutePath()); IrisLogging.error("Failed to create Iris plugin data folder for Java agent: " + parent.getAbsolutePath());
return false; return false;
} }
try (InputStream in = openBundledAgentJar()) { try (InputStream in = openBundledAgentJar()) {
if (in == null) { if (in == null) {
if (AGENT_JAR.isFile() && AGENT_JAR.length() > 0) { if (AGENT_JAR.isFile() && AGENT_JAR.length() > 0) {
Iris.warn("Bundled agent.jar not found in Iris plugin jar. Reusing existing " + AGENT_JAR.getAbsolutePath()); IrisLogging.warn("Bundled agent.jar not found in Iris plugin jar. Reusing existing " + AGENT_JAR.getAbsolutePath());
return true; return true;
} }
Iris.error("Bundled agent.jar was not found in Iris plugin jar. Rebuild/deploy Iris with embedded agent.jar."); IrisLogging.error("Bundled agent.jar was not found in Iris plugin jar. Rebuild/deploy Iris with embedded agent.jar.");
return false; return false;
} }
Files.copy(in, AGENT_JAR.toPath(), StandardCopyOption.REPLACE_EXISTING); Files.copy(in, AGENT_JAR.toPath(), StandardCopyOption.REPLACE_EXISTING);
return true; return true;
} catch (Throwable e) { } catch (Throwable e) {
Iris.error("Failed to prepare Java agent jar: " + e.getMessage()); IrisLogging.error("Failed to prepare Java agent jar: " + e.getMessage());
Iris.reportError(e); IrisLogging.reportError(e);
return false; return false;
} }
} }
@@ -18,10 +18,10 @@
package art.arcane.iris.util.project.context; package art.arcane.iris.util.project.context;
import art.arcane.iris.Iris;
import art.arcane.iris.core.loader.IrisData; import art.arcane.iris.core.loader.IrisData;
import art.arcane.iris.engine.IrisComplex; import art.arcane.iris.engine.IrisComplex;
import art.arcane.iris.engine.framework.Engine; import art.arcane.iris.engine.framework.Engine;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.collection.KMap;
import art.arcane.volmlib.util.scheduling.ChronoLatch; import art.arcane.volmlib.util.scheduling.ChronoLatch;
import lombok.Data; import lombok.Data;
@@ -76,7 +76,7 @@ public class IrisContext {
} }
if (!thread.isAlive() || context.engine.isClosed()) { if (!thread.isAlive() || context.engine.isClosed()) {
Iris.debug("Dereferenced Context<Engine> " + thread.getName() + " " + thread.threadId()); IrisLogging.debug("Dereferenced Context<Engine> " + thread.getName() + " " + thread.threadId());
it.remove(); it.remove();
} }
} }
@@ -18,9 +18,9 @@
package art.arcane.iris.util.project.hunk; package art.arcane.iris.util.project.hunk;
import art.arcane.iris.Iris;
import art.arcane.iris.engine.data.chunk.TerrainChunk; import art.arcane.iris.engine.data.chunk.TerrainChunk;
import art.arcane.iris.engine.object.IrisPosition; import art.arcane.iris.engine.object.IrisPosition;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.volmlib.util.function.*; import art.arcane.volmlib.util.function.*;
import art.arcane.volmlib.util.hunk.HunkComputeSupport; import art.arcane.volmlib.util.hunk.HunkComputeSupport;
import art.arcane.volmlib.util.hunk.HunkCoreSupport; import art.arcane.volmlib.util.hunk.HunkCoreSupport;
@@ -991,7 +991,7 @@ public interface Hunk<T> extends HunkLike<T> {
*/ */
default void set(int x, int y, int z, T t) { default void set(int x, int y, int z, T t) {
if (!contains(x, y, z)) { if (!contains(x, y, z)) {
Iris.warn("OUT OF BOUNDS " + x + " " + y + " " + z + " in bounds " + getWidth() + " " + getHeight() + " " + getDepth()); IrisLogging.warn("OUT OF BOUNDS " + x + " " + y + " " + z + " in bounds " + getWidth() + " " + getHeight() + " " + getDepth());
return; return;
} }
@@ -18,9 +18,9 @@
package art.arcane.iris.util.project.matter; package art.arcane.iris.util.project.matter;
import art.arcane.iris.Iris;
import art.arcane.iris.engine.object.IrisObject; import art.arcane.iris.engine.object.IrisObject;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.iris.util.project.matter.slices.EntityMatter; import art.arcane.iris.util.project.matter.slices.EntityMatter;
import art.arcane.iris.util.project.matter.slices.IdentifierMatter; import art.arcane.iris.util.project.matter.slices.IdentifierMatter;
import art.arcane.iris.util.project.matter.slices.SpawnerMatter; import art.arcane.iris.util.project.matter.slices.SpawnerMatter;
@@ -90,9 +90,9 @@ public final class IrisMatterSupport {
long oldSize = folder.length(); long oldSize = folder.length();
object.read(folder); object.read(folder);
from(object).write(folder); from(object).write(folder);
Iris.info("Converted " + folder.getPath() + " Saved " + (oldSize - folder.length())); IrisLogging.info("Converted " + folder.getPath() + " Saved " + (oldSize - folder.length()));
} catch (Throwable e) { } catch (Throwable e) {
Iris.error("Failed to convert " + folder.getPath()); IrisLogging.error("Failed to convert " + folder.getPath());
e.printStackTrace(); e.printStackTrace();
} }
@@ -18,8 +18,8 @@
package art.arcane.iris.util.project.matter; package art.arcane.iris.util.project.matter;
import art.arcane.iris.Iris;
import art.arcane.iris.engine.object.TileData; import art.arcane.iris.engine.object.TileData;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.volmlib.util.data.Cuboid; import art.arcane.volmlib.util.data.Cuboid;
import art.arcane.volmlib.util.matter.IrisMatter; import art.arcane.volmlib.util.matter.IrisMatter;
import art.arcane.volmlib.util.matter.Matter; import art.arcane.volmlib.util.matter.Matter;
@@ -47,7 +47,7 @@ public class WorldMatter {
IrisMatterSupport.ensureRegistered(); IrisMatterSupport.ensureRegistered();
Cuboid c = new Cuboid(a, b); Cuboid c = new Cuboid(a, b);
Matter s = new IrisMatter(c.getSizeX(), c.getSizeY(), c.getSizeZ()); Matter s = new IrisMatter(c.getSizeX(), c.getSizeY(), c.getSizeZ());
Iris.info(s.getWidth() + " " + s.getHeight() + " " + s.getDepth()); IrisLogging.info(s.getWidth() + " " + s.getHeight() + " " + s.getDepth());
s.getHeader().setAuthor(author); s.getHeader().setAuthor(author);
s.slice(BlockData.class).readFrom(c.getLowerNE()); s.slice(BlockData.class).readFrom(c.getLowerNE());
s.slice(MatterEntityGroup.class).readFrom(c.getLowerNE()); s.slice(MatterEntityGroup.class).readFrom(c.getLowerNE());
@@ -18,9 +18,9 @@
package art.arcane.iris.util.project.noise; package art.arcane.iris.util.project.noise;
import art.arcane.iris.Iris;
import art.arcane.iris.engine.object.IRare; import art.arcane.iris.engine.object.IRare;
import art.arcane.iris.engine.object.NoiseStyle; import art.arcane.iris.engine.object.NoiseStyle;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.volmlib.util.cache.FloatCache; import art.arcane.volmlib.util.cache.FloatCache;
import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KList;
import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.format.Form;
@@ -286,7 +286,7 @@ public class CNG {
fbc.writeCache(dos); fbc.writeCache(dos);
dos.close(); dos.close();
if (!quiet) { if (!quiet) {
Iris.info("Saved Noise Cache " + f.getName()); IrisLogging.info("Saved Noise Cache " + f.getName());
} }
} catch (IOException e) { } catch (IOException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
@@ -509,7 +509,7 @@ public class CNG {
try { try {
return values.get(fit2D(0, values.size() - 1, x, z)); return values.get(fit2D(0, values.size() - 1, x, z));
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
} }
return values.get(0); return values.get(0);
@@ -548,7 +548,7 @@ public class CNG {
try { try {
return v.get(fit(0, v.size() - 1, dim)); return v.get(fit(0, v.size() - 1, dim));
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
} }
return v.get(0); return v.get(0);
@@ -18,12 +18,12 @@
package art.arcane.iris.util.project.stream; package art.arcane.iris.util.project.stream;
import art.arcane.iris.Iris;
import art.arcane.iris.core.loader.IrisData; import art.arcane.iris.core.loader.IrisData;
import art.arcane.iris.engine.data.cache.Cache; import art.arcane.iris.engine.data.cache.Cache;
import art.arcane.iris.engine.framework.Engine; import art.arcane.iris.engine.framework.Engine;
import art.arcane.iris.engine.object.IRare; import art.arcane.iris.engine.object.IRare;
import art.arcane.iris.engine.object.IrisStyledRange; import art.arcane.iris.engine.object.IrisStyledRange;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KList;
import art.arcane.volmlib.util.stream.ProceduralLayer; import art.arcane.volmlib.util.stream.ProceduralLayer;
import art.arcane.volmlib.util.stream.Significance; import art.arcane.volmlib.util.stream.Significance;
@@ -51,8 +51,8 @@ public interface ProceduralStream<T> extends ProceduralLayer, Interpolated<T> {
try { try {
return of(f, Interpolated.DOUBLE); return of(f, Interpolated.DOUBLE);
} catch (IncompatibleClassChangeError e) { } catch (IncompatibleClassChangeError e) {
Iris.warn(f.toString()); IrisLogging.warn(f.toString());
Iris.reportError(e); IrisLogging.reportError(e);
e.printStackTrace(); e.printStackTrace();
return null; return null;
} }
@@ -18,8 +18,8 @@
package art.arcane.iris.util.project.stream.interpolation; package art.arcane.iris.util.project.stream.interpolation;
import art.arcane.iris.Iris;
import art.arcane.iris.engine.object.CaveResult; import art.arcane.iris.engine.object.CaveResult;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.spi.PlatformBlockState;
import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KList;
import art.arcane.volmlib.util.math.RNG; import art.arcane.volmlib.util.math.RNG;
@@ -62,7 +62,7 @@ public interface Interpolated<T> {
return new InterpolatorFactory<>((ProceduralStream<T>) this); return new InterpolatorFactory<>((ProceduralStream<T>) this);
} }
Iris.warn("Cannot interpolate " + this.getClass().getCanonicalName() + "!"); IrisLogging.warn("Cannot interpolate " + this.getClass().getCanonicalName() + "!");
return null; return null;
} }
} }
@@ -18,7 +18,7 @@
package art.arcane.iris.util.project.stream.utility; package art.arcane.iris.util.project.stream.utility;
import art.arcane.iris.Iris; import art.arcane.iris.spi.IrisLogging;
import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KList;
import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.format.Form;
import art.arcane.volmlib.util.math.RollingSequence; import art.arcane.volmlib.util.math.RollingSequence;
@@ -133,7 +133,7 @@ public class ProfiledStream<T> extends BasicStream<T> {
try { try {
metrics.put(p.getMilliseconds()); metrics.put(p.getMilliseconds());
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
} }
return t; return t;
@@ -146,7 +146,7 @@ public class ProfiledStream<T> extends BasicStream<T> {
try { try {
metrics.put(p.getMilliseconds()); metrics.put(p.getMilliseconds());
} catch (Throwable e) { } catch (Throwable e) {
Iris.reportError(e); IrisLogging.reportError(e);
} }
return t; return t;
@@ -1,6 +1,6 @@
package art.arcane.iris.util.project.stream.utility; package art.arcane.iris.util.project.stream.utility;
import art.arcane.iris.Iris; import art.arcane.iris.spi.IrisLogging;
import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.collection.KList;
import art.arcane.volmlib.util.collection.KMap; import art.arcane.volmlib.util.collection.KMap;
import art.arcane.iris.util.project.stream.BasicStream; import art.arcane.iris.util.project.stream.BasicStream;
@@ -23,19 +23,19 @@ public class WasteDetector<T> extends BasicStream<T> {
public static void printAll() { public static void printAll() {
if (checking) { if (checking) {
Iris.warn("========================================================="); IrisLogging.warn("=========================================================");
for (String i : allAccesses.sortKNumber().reverse()) { for (String i : allAccesses.sortKNumber().reverse()) {
Iris.warn(i + ": " + allAccesses.get(i) + " Time(s)"); IrisLogging.warn(i + ": " + allAccesses.get(i) + " Time(s)");
} }
Iris.warn("========================================================="); IrisLogging.warn("=========================================================");
for (String i : allAccesses.sortKNumber().reverse()) { for (String i : allAccesses.sortKNumber().reverse()) {
Iris.warn("======== " + i + " ========"); IrisLogging.warn("======== " + i + " ========");
for (Throwable j : allThrows.get(i)) { for (Throwable j : allThrows.get(i)) {
j.printStackTrace(); j.printStackTrace();
} }
Iris.warn("---------------------------------------------------------"); IrisLogging.warn("---------------------------------------------------------");
} }
Iris.warn("========================================================="); IrisLogging.warn("=========================================================");
} }
} }
@@ -0,0 +1,79 @@
/*
* Iris is a World Generator for Minecraft Bukkit Servers
* Copyright (c) 2026 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 <https://www.gnu.org/licenses/>.
*/
package art.arcane.iris.spi;
import java.util.IllegalFormatException;
public final class IrisLogging {
private IrisLogging() {
}
public static void info(String format, Object... args) {
emit(LogLevel.INFO, safeFormat(format, args));
}
public static void debug(String message) {
emit(LogLevel.DEBUG, message);
}
public static void warn(String format, Object... args) {
emit(LogLevel.WARN, safeFormat(format, args));
}
public static void error(String format, Object... args) {
emit(LogLevel.ERROR, safeFormat(format, args));
}
public static void reportError(Throwable error) {
if (IrisPlatforms.isBound()) {
IrisPlatforms.get().reportError(error);
return;
}
if (error != null) {
System.out.println("[Iris/ERROR] " + error.getClass().getName() + (error.getMessage() == null ? "" : ": " + error.getMessage()));
error.printStackTrace(System.out);
}
}
private static void emit(LogLevel level, String message) {
if (IrisPlatforms.isBound()) {
IrisPlatforms.get().log(level, message);
return;
}
System.out.println("[Iris/" + level + "] " + message);
}
private static String safeFormat(String format, Object... args) {
if (format == null) {
return "null";
}
if (args == null || args.length == 0) {
return format;
}
try {
return String.format(format, args);
} catch (IllegalFormatException ignored) {
return format;
}
}
}
@@ -43,4 +43,6 @@ public interface IrisPlatform {
void dispatchConsoleCommand(String command); void dispatchConsoleCommand(String command);
void log(LogLevel level, String message); void log(LogLevel level, String message);
void reportError(Throwable error);
} }