From 773be08b24c598f651aa9354094fd30897b368bd Mon Sep 17 00:00:00 2001 From: RePixelatedMC <107539181+RePixelatedMC@users.noreply.github.com> Date: Thu, 22 Aug 2024 17:16:46 +0200 Subject: [PATCH] SYNc --- .../engine/service/EngineMobHandlerSVC.java | 16 +++----- .../iris/util/mobs/IrisMobDataHandler.java | 17 +++++++- .../volmit/iris/util/mobs/IrisMobPiece.java | 41 +++++++++++++++++++ 3 files changed, 63 insertions(+), 11 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 a5d02fe3c..f8aad661d 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 @@ -31,15 +31,6 @@ public class EngineMobHandlerSVC extends IrisEngineService implements IrisMobDat private HashMap bukkitLimits; private Function entityType; private ConcurrentLinkedQueue pieces; - public enum Types { - monsters, - animals, - water_animals, - water_ambient, - water_underground_creature, - axolotls, - ambient - } public EngineMobHandlerSVC(Engine engine) { super(engine); @@ -53,7 +44,7 @@ public class EngineMobHandlerSVC extends IrisEngineService implements IrisMobDat this.entityType = (entityType) -> Types.valueOf(INMS.get().getMobCategory(entityType)); this.bukkitLimits = getBukkitLimits(); - //new Ticker(); + new Ticker(); } @Override @@ -152,6 +143,11 @@ public class EngineMobHandlerSVC extends IrisEngineService implements IrisMobDat return engine; } + @Override + public HashMap bukkitLimits() { + return bukkitLimits; + } + @Override public double getEnergy() { fixEnergy(); diff --git a/core/src/main/java/com/volmit/iris/util/mobs/IrisMobDataHandler.java b/core/src/main/java/com/volmit/iris/util/mobs/IrisMobDataHandler.java index a69447532..05c607e07 100644 --- a/core/src/main/java/com/volmit/iris/util/mobs/IrisMobDataHandler.java +++ b/core/src/main/java/com/volmit/iris/util/mobs/IrisMobDataHandler.java @@ -5,14 +5,29 @@ import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.service.EngineMobHandlerSVC; import org.bukkit.entity.EntityType; +import java.util.HashMap; import java.util.function.Function; public interface IrisMobDataHandler { - Function getMobType(); + HashMap bukkitLimits = null; + + enum Types { + monsters, + animals, + water_animals, + water_ambient, + water_underground_creature, + axolotls, + ambient + } + + Function getMobType(); Engine getEngine(); + HashMap bukkitLimits(); + double getEnergy(); diff --git a/core/src/main/java/com/volmit/iris/util/mobs/IrisMobPiece.java b/core/src/main/java/com/volmit/iris/util/mobs/IrisMobPiece.java index 5d1e05ab5..0f77d247f 100644 --- a/core/src/main/java/com/volmit/iris/util/mobs/IrisMobPiece.java +++ b/core/src/main/java/com/volmit/iris/util/mobs/IrisMobPiece.java @@ -1,8 +1,13 @@ package com.volmit.iris.util.mobs; import com.volmit.iris.engine.framework.Engine; +import com.volmit.iris.engine.object.IrisEngineChunkData; +import com.volmit.iris.engine.object.IrisEngineSpawnerCooldown; +import com.volmit.iris.engine.object.IrisEntitySpawn; +import com.volmit.iris.engine.object.IrisPosition; import com.volmit.iris.engine.service.EngineMobHandlerSVC; import com.volmit.iris.util.math.M; +import com.volmit.iris.util.math.RNG; import jakarta.activation.DataHandler; import lombok.Getter; import org.bukkit.entity.Player; @@ -49,4 +54,40 @@ public class IrisMobPiece { public void close() { } + +// private void spawn(IrisPosition c, IrisEntitySpawn i) { +// boolean allow = true; +// +// if (!i.getReferenceSpawner().getMaximumRatePerChunk().isInfinite()) { +// allow = false; +// IrisEngineChunkData cd = dataHandler.getEngine().getEngineData().getChunk(c.getX() >> 4, c.getZ() >> 4); +// IrisEngineSpawnerCooldown sc = null; +// for (IrisEngineSpawnerCooldown j : cd.getCooldowns()) { +// if (j.getSpawner().equals(i.getReferenceSpawner().getLoadKey())) { +// sc = j; +// break; +// } +// } +// +// if (sc == null) { +// sc = new IrisEngineSpawnerCooldown(); +// sc.setSpawner(i.getReferenceSpawner().getLoadKey()); +// cd.getCooldowns().add(sc); +// } +// +// if (sc.canSpawn(i.getReferenceSpawner().getMaximumRatePerChunk())) { +// sc.spawn(dataHandler.getEngine()); +// allow = true; +// } +// } +// +// if (allow) { +// int s = i.spawn(dataHandler.getEngine(), c, RNG.r); +// actuallySpawned += s; +// if (s > 0) { +// getCooldown(i.getReferenceSpawner()).spawn(dataHandler.getEngine()); +// energy -= s * ((i.getEnergyMultiplier() * i.getReferenceSpawner().getEnergyMultiplier() * 1)); +// } +// } +// } } \ No newline at end of file