not really lazy but oh well at least it fixed a crash

This commit is contained in:
RePixelatedMC
2023-11-30 10:19:57 +01:00
parent 80d8449f02
commit 18a69e97b3
@@ -2,6 +2,7 @@ package com.volmit.iris.core.pregenerator;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.util.format.C; import com.volmit.iris.util.format.C;
import com.volmit.iris.util.format.Form; import com.volmit.iris.util.format.Form;
import com.volmit.iris.util.io.IO; import com.volmit.iris.util.io.IO;
@@ -9,6 +10,8 @@ import com.volmit.iris.util.math.M;
import com.volmit.iris.util.math.Position2; import com.volmit.iris.util.math.Position2;
import com.volmit.iris.util.math.RollingSequence; import com.volmit.iris.util.math.RollingSequence;
import com.volmit.iris.util.math.Spiraler; import com.volmit.iris.util.math.Spiraler;
import com.volmit.iris.util.parallel.BurstExecutor;
import com.volmit.iris.util.parallel.MultiBurst;
import com.volmit.iris.util.scheduling.ChronoLatch; import com.volmit.iris.util.scheduling.ChronoLatch;
import com.volmit.iris.util.scheduling.J; import com.volmit.iris.util.scheduling.J;
import io.papermc.lib.PaperLib; import io.papermc.lib.PaperLib;
@@ -22,6 +25,7 @@ import org.bukkit.event.world.WorldUnloadEvent;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.concurrent.Executors;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicLong;
@@ -137,6 +141,8 @@ public class LazyPregenerator extends Thread implements Listener {
} }
private void tickGenerate(Position2 chunk) { private void tickGenerate(Position2 chunk) {
BurstExecutor burstExecutor = new BurstExecutor(Executors.newFixedThreadPool(IrisSettings.get().getConcurrency().getParallelism()), lazyTotalChunks.get());
burstExecutor.queue(() -> {
if (PaperLib.isPaper()) { if (PaperLib.isPaper()) {
PaperLib.getChunkAtAsync(world, chunk.getX(), chunk.getZ(), true).thenAccept((i) -> Iris.verbose("Generated Async " + chunk)); PaperLib.getChunkAtAsync(world, chunk.getX(), chunk.getZ(), true).thenAccept((i) -> Iris.verbose("Generated Async " + chunk));
} else { } else {
@@ -144,6 +150,7 @@ public class LazyPregenerator extends Thread implements Listener {
Iris.verbose("Generated " + chunk); Iris.verbose("Generated " + chunk);
} }
lazyGeneratedChunks.addAndGet(1); lazyGeneratedChunks.addAndGet(1);
});
} }
private void tickRegenerate(Position2 chunk) { private void tickRegenerate(Position2 chunk) {