From 04fc1e25e49d6d90cf2d53095275ac1bb02e7941 Mon Sep 17 00:00:00 2001 From: Daniel Mills Date: Fri, 30 Jul 2021 09:37:21 -0400 Subject: [PATCH] Coord annotations --- .../com/volmit/iris/engine/IrisEngine.java | 4 ++++ .../iris/engine/IrisEngineCompound.java | 4 ++++ .../volmit/iris/engine/IrisWorldManager.java | 3 +++ .../volmit/iris/engine/framework/Engine.java | 19 +++++++++++++++++++ 4 files changed, 30 insertions(+) diff --git a/src/main/java/com/volmit/iris/engine/IrisEngine.java b/src/main/java/com/volmit/iris/engine/IrisEngine.java index 52553821e..4fec0f9fc 100644 --- a/src/main/java/com/volmit/iris/engine/IrisEngine.java +++ b/src/main/java/com/volmit/iris/engine/IrisEngine.java @@ -25,6 +25,7 @@ import com.volmit.iris.engine.hunk.Hunk; import com.volmit.iris.engine.object.*; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KMap; +import com.volmit.iris.util.documentation.BlockCoordinates; import com.volmit.iris.util.documentation.ChunkCoordinates; import com.volmit.iris.util.format.C; import com.volmit.iris.util.format.Form; @@ -147,11 +148,13 @@ public class IrisEngine extends BlockPopulator implements Engine { getFramework().recycle(); } + @BlockCoordinates @Override public double modifyX(double x) { return x / getDimension().getTerrainZoom(); } + @BlockCoordinates @Override public double modifyZ(double z) { return z / getDimension().getTerrainZoom(); @@ -215,6 +218,7 @@ public class IrisEngine extends BlockPopulator implements Engine { close(); } + @ChunkCoordinates @Override public void populate(@NotNull World world, @NotNull Random random, @NotNull Chunk c) { getWorldManager().spawnInitialEntities(c); diff --git a/src/main/java/com/volmit/iris/engine/IrisEngineCompound.java b/src/main/java/com/volmit/iris/engine/IrisEngineCompound.java index 85ab10d2a..dc9a6c8ee 100644 --- a/src/main/java/com/volmit/iris/engine/IrisEngineCompound.java +++ b/src/main/java/com/volmit/iris/engine/IrisEngineCompound.java @@ -34,6 +34,8 @@ import com.volmit.iris.engine.parallel.MultiBurst; import com.volmit.iris.util.atomics.AtomicRollingSequence; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KMap; +import com.volmit.iris.util.documentation.BlockCoordinates; +import com.volmit.iris.util.documentation.ChunkCoordinates; import com.volmit.iris.util.format.C; import com.volmit.iris.util.format.Form; import com.volmit.iris.util.scheduling.PrecisionStopwatch; @@ -212,6 +214,7 @@ public class IrisEngineCompound implements EngineCompound { return new File(world.worldFolder(), "iris/engine-metadata.json"); } + @ChunkCoordinates @Override public void generate(int x, int z, Hunk blocks, Hunk postblocks, Hunk biomes, boolean multicore) { recycle(); @@ -259,6 +262,7 @@ public class IrisEngineCompound implements EngineCompound { engineMetadata.save(getEngineMetadataFile()); } + @BlockCoordinates @Override public IrisDataManager getData(int height) { return getEngineForHeight(height).getData(); diff --git a/src/main/java/com/volmit/iris/engine/IrisWorldManager.java b/src/main/java/com/volmit/iris/engine/IrisWorldManager.java index 42aa871bf..0126e0cd2 100644 --- a/src/main/java/com/volmit/iris/engine/IrisWorldManager.java +++ b/src/main/java/com/volmit/iris/engine/IrisWorldManager.java @@ -25,6 +25,7 @@ import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.framework.EngineAssignedWorldManager; import com.volmit.iris.engine.object.*; import com.volmit.iris.util.collection.KList; +import com.volmit.iris.util.documentation.ChunkCoordinates; import com.volmit.iris.util.math.RNG; import com.volmit.iris.util.scheduling.J; import org.bukkit.Chunk; @@ -52,6 +53,7 @@ public class IrisWorldManager extends EngineAssignedWorldManager { getEngine().getParallax().saveAll(); } + @ChunkCoordinates @Override public void spawnInitialEntities(Chunk c) { RNG rng = new RNG(Cache.key(c)); @@ -148,6 +150,7 @@ public class IrisWorldManager extends EngineAssignedWorldManager { return false; } + @ChunkCoordinates private void trySpawn(KList s, Chunk c, RNG rng) { for (IrisEntityInitialSpawn i : s) { i.spawn(getEngine(), c, rng); diff --git a/src/main/java/com/volmit/iris/engine/framework/Engine.java b/src/main/java/com/volmit/iris/engine/framework/Engine.java index c756185e1..31d529b9c 100644 --- a/src/main/java/com/volmit/iris/engine/framework/Engine.java +++ b/src/main/java/com/volmit/iris/engine/framework/Engine.java @@ -31,6 +31,8 @@ import com.volmit.iris.engine.object.common.IrisWorld; import com.volmit.iris.engine.parallax.ParallaxAccess; import com.volmit.iris.engine.parallel.MultiBurst; import com.volmit.iris.util.collection.KList; +import com.volmit.iris.util.documentation.BlockCoordinates; +import com.volmit.iris.util.documentation.ChunkCoordinates; import com.volmit.iris.util.math.BlockPosition; import com.volmit.iris.util.math.M; import com.volmit.iris.util.math.RNG; @@ -77,10 +79,13 @@ public interface Engine extends DataProvider, Fallible, GeneratorAccess, LootPro int getMinHeight(); + @BlockCoordinates double modifyX(double x); + @BlockCoordinates double modifyZ(double z); + @ChunkCoordinates void generate(int x, int z, Hunk blocks, Hunk biomes, boolean multicore); EngineMetrics getMetrics(); @@ -117,6 +122,7 @@ public interface Engine extends DataProvider, Fallible, GeneratorAccess, LootPro return getTarget().getParallaxWorld(); } + @BlockCoordinates default Color draw(double x, double z) { IrisRegion region = getRegion((int) x, (int) z); IrisBiome biome = getSurfaceBiome((int) x, (int) z); @@ -131,6 +137,7 @@ public interface Engine extends DataProvider, Fallible, GeneratorAccess, LootPro return IrisColor.blend(rc, bc, bc, Color.getHSBColor(0, 0, (float) heightFactor)); } + @BlockCoordinates @Override default IrisRegion getRegion(int x, int z) { return getFramework().getComplex().getRegionStream().get(x, z); @@ -141,21 +148,25 @@ public interface Engine extends DataProvider, Fallible, GeneratorAccess, LootPro return getParallax(); } + @BlockCoordinates @Override default IrisBiome getCaveBiome(int x, int z) { return getFramework().getComplex().getCaveBiomeStream().get(x, z); } + @BlockCoordinates @Override default IrisBiome getSurfaceBiome(int x, int z) { return getFramework().getComplex().getTrueBiomeStream().get(x, z); } + @BlockCoordinates @Override default int getHeight(int x, int z) { return getFramework().getEngineParallax().getHighest(x, z, true); } + @BlockCoordinates @Override default void catchBlockUpdates(int x, int y, int z, BlockData data) { if (data == null) { @@ -168,10 +179,12 @@ public interface Engine extends DataProvider, Fallible, GeneratorAccess, LootPro } } + @ChunkCoordinates default void placeTiles(Chunk c) { } + @ChunkCoordinates @Override default void updateChunk(Chunk c) { PrecisionStopwatch p = PrecisionStopwatch.start(); @@ -195,6 +208,7 @@ public interface Engine extends DataProvider, Fallible, GeneratorAccess, LootPro getMetrics().getUpdates().put(p.getMilliseconds()); } + @BlockCoordinates default void updateLighting(int x, int y, int z, Chunk c) { Block block = c.getBlock(x, y, z); BlockData data = block.getBlockData(); @@ -210,6 +224,7 @@ public interface Engine extends DataProvider, Fallible, GeneratorAccess, LootPro } } + @BlockCoordinates @Override default void update(int x, int y, int z, Chunk c, RNG rf) { Block block = c.getBlock(x, y, z); @@ -285,6 +300,7 @@ public interface Engine extends DataProvider, Fallible, GeneratorAccess, LootPro list.addAll(r.getLootTables(getFramework().getComplex())); } + @BlockCoordinates @Override default KList getLootTables(RNG rng, Block b) { int rx = b.getX(); @@ -362,14 +378,17 @@ public interface Engine extends DataProvider, Fallible, GeneratorAccess, LootPro burst().lazy(() -> getParallax().cleanup()); } + @BlockCoordinates default IrisBiome getBiome(Location l) { return getBiome(l.getBlockX(), l.getBlockY(), l.getBlockZ()); } + @BlockCoordinates default IrisRegion getRegion(Location l) { return getRegion(l.getBlockX(), l.getBlockZ()); } + @BlockCoordinates default boolean contains(Location l) { return l.getBlockY() >= getMinHeight() && l.getBlockY() <= getMaxHeight(); }