From 83e311870fc2e380397fd561e2515b386343bc70 Mon Sep 17 00:00:00 2001 From: RePixelatedMC Date: Sun, 3 Dec 2023 16:56:56 +0100 Subject: [PATCH] Sync --- .../com/volmit/iris/core/IrisSettings.java | 1 - .../iris/core/service/IrisEngineSVC.java | 73 +++++++++++++------ .../com/volmit/iris/util/mantle/Mantle.java | 7 +- 3 files changed, 53 insertions(+), 28 deletions(-) diff --git a/core/src/main/java/com/volmit/iris/core/IrisSettings.java b/core/src/main/java/com/volmit/iris/core/IrisSettings.java index d06774c21..5b69fa71f 100644 --- a/core/src/main/java/com/volmit/iris/core/IrisSettings.java +++ b/core/src/main/java/com/volmit/iris/core/IrisSettings.java @@ -142,7 +142,6 @@ public class IrisSettings { public int objectLoaderCacheSize = 4_096; public int scriptLoaderCacheSize = 512; public int tectonicUnloadThreads = -1; // -1 = Disabled and instead use the dynamic method - public boolean dynamicPerformanceMode = true; public boolean AggressiveTectonicUnload = false; public int AggressiveTectonicThreshold = -1; // -1 = Disabled and instead uses the tectonicLimit public int LazyPregenMaxCPM = -1; // -1 = no limit diff --git a/core/src/main/java/com/volmit/iris/core/service/IrisEngineSVC.java b/core/src/main/java/com/volmit/iris/core/service/IrisEngineSVC.java index 382e49e77..067c6fde8 100644 --- a/core/src/main/java/com/volmit/iris/core/service/IrisEngineSVC.java +++ b/core/src/main/java/com/volmit/iris/core/service/IrisEngineSVC.java @@ -3,33 +3,49 @@ package com.volmit.iris.core.service; import com.volmit.iris.Iris; import com.volmit.iris.core.IrisSettings; import com.volmit.iris.core.tools.IrisToolbelt; +import com.volmit.iris.engine.data.cache.Cache; import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.IrisWorld; -import com.volmit.iris.util.mantle.Mantle; +import com.volmit.iris.util.collection.KSet; +import com.volmit.iris.util.format.C; +import com.volmit.iris.util.format.Form; +import com.volmit.iris.util.mantle.TectonicPlate; +import com.volmit.iris.util.math.M; import com.volmit.iris.util.misc.getHardware; +import com.volmit.iris.util.parallel.BurstExecutor; +import com.volmit.iris.util.parallel.HyperLock; +import com.volmit.iris.util.parallel.MultiBurst; import com.volmit.iris.util.plugin.IrisService; import com.volmit.iris.util.scheduling.Looper; +import io.papermc.lib.PaperLib; +import lombok.Getter; import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.plugin.java.JavaPlugin; +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.concurrent.Executors; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicInteger; + import static com.volmit.iris.util.mantle.Mantle.tectonicLimit; public class IrisEngineSVC implements IrisService { private JavaPlugin plugin; public Looper ticker; - public Mantle mantle; - public final World IrisWorld = Bukkit.getWorld("test"); - // public Engine engine = IrisToolbelt.access(IrisWorld).getEngine(); + public List IrisWorlds = new ArrayList<>(); + public List corruptedIrisWorlds = new ArrayList<>(); + @Override public void onEnable() { this.plugin = Iris.instance; - if (IrisSettings.get().getPerformance().dynamicPerformanceMode) { - this.startupPerformance(); - this.IrisEngine(); - ticker.start(); - } + this.IrisStartup(); + this.IrisEngine(); + ticker.start(); } public void IrisEngine(){ @@ -37,7 +53,11 @@ public class IrisEngineSVC implements IrisService { @Override protected long loop() { try { + for (World world : IrisWorlds){ + Engine engine = IrisToolbelt.access(world).getEngine(); + + } } catch (Throwable e) { Iris.reportError(e); e.printStackTrace(); @@ -48,19 +68,30 @@ public class IrisEngineSVC implements IrisService { } }; } - public void startupPerformance(){ - if (IrisSettings.get().getPerformance().dynamicPerformanceMode) { - tectonicLimit.set(2); - long t = getHardware.getProcessMemory(); - for (; t > 250; ) { - tectonicLimit.getAndAdd(1); - t = t - 250; - } - tectonicLimit.set(10); + public void IrisStartup(){ + tectonicLimit.set(2); + long t = getHardware.getProcessMemory(); + for (; t > 250; ) { + tectonicLimit.getAndAdd(1); + t = t - 250; } - } - public void getAllIrisWorlds(){ + tectonicLimit.set(10); // DEBUG CODE + for (World w : Bukkit.getServer().getWorlds()) { + File container = Bukkit.getWorldContainer(); + Bukkit.getWorldContainer(); + if(IrisToolbelt.access(w) != null){ + IrisWorlds.add(w); + } else { + File worldDirectory = new File(container, w.getName()); + File IrisWorldTest = new File(worldDirectory, "Iris"); + if (IrisWorldTest.exists()){ + if(IrisToolbelt.access(w) == null){ + corruptedIrisWorlds.add(w); + } + } + } + } } @Override diff --git a/core/src/main/java/com/volmit/iris/util/mantle/Mantle.java b/core/src/main/java/com/volmit/iris/util/mantle/Mantle.java index 2eda30e8d..099c29cac 100644 --- a/core/src/main/java/com/volmit/iris/util/mantle/Mantle.java +++ b/core/src/main/java/com/volmit/iris/util/mantle/Mantle.java @@ -418,7 +418,6 @@ public class Mantle { forceAggressiveThreshold.set(IrisSettings.get().getPerformance().getAggressiveTectonicThreshold()); } - if(IrisSettings.get().getPerformance().dynamicPerformanceMode) { // todo Repixel improve the logic int h = dynamicThreads.get() - 1; if (toUnload.size() != 0) { @@ -438,24 +437,20 @@ public class Mantle { } } oldFakeToUnload.set(toUnload.size()); - } - if (!IrisSettings.get().getPerformance().dynamicPerformanceMode){ + if(IrisSettings.get().getPerformance().getTectonicUnloadThreads() <= -1){ dynamicThreads.set(1); } else { dynamicThreads.set(IrisSettings.get().getPerformance().getTectonicUnloadThreads()); } - } adjustedIdleDuration.set(baseIdleDuration); if (loadedRegions != null) { if (loadedRegions.size() > tectonicLimit.get()) { // todo update this correctly and maybe do something when its above a 100% - if (IrisSettings.get().getPerformance().dynamicPerformanceMode) { int tectonicLimitValue = tectonicLimit.get(); adjustedIdleDuration.set(Math.max(adjustedIdleDuration.get() - (1000 * (((loadedRegions.size() - tectonicLimitValue) / (double) tectonicLimitValue) * 100) * 0.4), 4000)); - } } }