From 898f815878d934bb02d6e45837f2392d9f16f493 Mon Sep 17 00:00:00 2001 From: RePixelatedMC <107539181+RePixelatedMC@users.noreply.github.com> Date: Sun, 8 Sep 2024 18:51:27 +0200 Subject: [PATCH] sync --- .../engine/service/EngineMobHandlerSVC.java | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/com/volmit/iris/engine/service/EngineMobHandlerSVC.java b/core/src/main/java/com/volmit/iris/engine/service/EngineMobHandlerSVC.java index f77782238..2bb6680a8 100644 --- a/core/src/main/java/com/volmit/iris/engine/service/EngineMobHandlerSVC.java +++ b/core/src/main/java/com/volmit/iris/engine/service/EngineMobHandlerSVC.java @@ -4,6 +4,7 @@ import com.volmit.iris.Iris; import com.volmit.iris.core.nms.INMS; import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.object.IrisEngineService; +import com.volmit.iris.util.format.C; import com.volmit.iris.util.format.Form; import com.volmit.iris.util.mobs.IrisMobDataHandler; import com.volmit.iris.util.mobs.IrisMobPiece; @@ -34,7 +35,7 @@ public class EngineMobHandlerSVC extends IrisEngineService implements IrisMobDat private int id; public int energyMax; public int energy; - private long iteration = 0; // 1 every second + private long iteration = 0; // ~1 every second private HashSet loadedChunks; private HashMap bukkitLimits; private Function entityType; @@ -93,16 +94,26 @@ public class EngineMobHandlerSVC extends IrisEngineService implements IrisMobDat ))); Consumer tick = piece -> piece.tick(costs.get(piece)); + double oe = energy; pieces.stream() .filter(shouldTick) .forEach(tick); + oe -= energy; + history.add(new HistoryData(DataType.ENERGY_CONSUMPTION, oe, iteration)); stopwatch.end(); Iris.info("Took: " + Form.f(stopwatch.getMilliseconds())); - double millis = stopwatch.getMilliseconds(); - int size = pieces.size(); - wait = size == 0 ? 50L : (long) Math.max(50d / size - millis, 0); + long millis = stopwatch.getMillis(); + + // todo finish this rubbish + wait = 1000 - millis; + if (wait < 0) { + return wait; + } else { + Iris.info(C.YELLOW + "Mob Engine lagging behind: " + Form.f(stopwatch.getMilliseconds())); + return 0; + } } catch (Throwable notIgnored) { notIgnored.printStackTrace(); }