From 7ca61f82b2b6e6a750b995193aaeb2045516f59a Mon Sep 17 00:00:00 2001 From: Zoe Gidiere Date: Sat, 12 Oct 2024 00:22:18 -0600 Subject: [PATCH] Some API clean up --- .../pipeline/v2/PipelineBiomeProvider.java | 7 ++++--- .../biome/pipeline/v2/api/Pipeline.java | 4 +++- .../biome/pipeline/v2/api/SeededVector.java | 19 ------------------- .../pipeline/v2/pipeline/BiomeChunkImpl.java | 16 ++++++++-------- .../pipeline/v2/pipeline/PipelineImpl.java | 5 +++-- 5 files changed, 18 insertions(+), 33 deletions(-) delete mode 100644 common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/api/SeededVector.java diff --git a/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/PipelineBiomeProvider.java b/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/PipelineBiomeProvider.java index 8c36a7ccf..6858a3731 100644 --- a/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/PipelineBiomeProvider.java +++ b/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/PipelineBiomeProvider.java @@ -1,5 +1,7 @@ package com.dfsek.terra.addons.biome.pipeline.v2; +import com.dfsek.terra.api.util.cache.SeededVector2Key; + import com.github.benmanes.caffeine.cache.Caffeine; import com.github.benmanes.caffeine.cache.LoadingCache; @@ -11,7 +13,6 @@ import java.util.stream.StreamSupport; import com.dfsek.terra.addons.biome.pipeline.v2.api.BiomeChunk; import com.dfsek.terra.addons.biome.pipeline.v2.api.Pipeline; -import com.dfsek.terra.addons.biome.pipeline.v2.api.SeededVector; import com.dfsek.terra.addons.biome.pipeline.v2.api.Stage; import com.dfsek.terra.addons.biome.pipeline.v2.api.biome.PipelineBiome; import com.dfsek.terra.api.noise.NoiseSampler; @@ -23,7 +24,7 @@ import com.dfsek.terra.api.world.biome.generation.BiomeProvider; public class PipelineBiomeProvider implements BiomeProvider { - private final LoadingCache biomeChunkCache; + private final LoadingCache biomeChunkCache; private final int chunkSize; private final int resolution; private final NoiseSampler mutator; @@ -90,7 +91,7 @@ public class PipelineBiomeProvider implements BiomeProvider { int xInChunk = x - chunkWorldX; int zInChunk = z - chunkWorldZ; - return biomeChunkCache.get(new SeededVector(seed, chunkWorldX, chunkWorldZ)).get(xInChunk, zInChunk).getBiome(); + return biomeChunkCache.get(new SeededVector2Key(chunkWorldX, chunkWorldZ, seed)).get(xInChunk, zInChunk).getBiome(); } @Override diff --git a/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/api/Pipeline.java b/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/api/Pipeline.java index 37c8f1db0..9c48aff9f 100644 --- a/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/api/Pipeline.java +++ b/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/api/Pipeline.java @@ -1,10 +1,12 @@ package com.dfsek.terra.addons.biome.pipeline.v2.api; +import com.dfsek.terra.api.util.cache.SeededVector2Key; + import java.util.List; public interface Pipeline { - BiomeChunk generateChunk(SeededVector worldCoordinates); + BiomeChunk generateChunk(SeededVector2Key worldCoordinates); int getChunkSize(); diff --git a/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/api/SeededVector.java b/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/api/SeededVector.java deleted file mode 100644 index bee1f2424..000000000 --- a/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/api/SeededVector.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.dfsek.terra.addons.biome.pipeline.v2.api; - -public record SeededVector(long seed, int x, int z) { - - @Override - public boolean equals(Object obj) { - if(obj instanceof SeededVector that) { - return this.z == that.z && this.x == that.x && this.seed == that.seed; - } - return false; - } - - @Override - public int hashCode() { - int code = x; - code = 31 * code + z; - return 31 * code + ((int) (seed ^ (seed >>> 32))); - } -} diff --git a/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/pipeline/BiomeChunkImpl.java b/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/pipeline/BiomeChunkImpl.java index 78b0fe806..0e0b4d5f6 100644 --- a/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/pipeline/BiomeChunkImpl.java +++ b/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/pipeline/BiomeChunkImpl.java @@ -4,20 +4,20 @@ import java.util.List; import com.dfsek.terra.addons.biome.pipeline.v2.api.BiomeChunk; import com.dfsek.terra.addons.biome.pipeline.v2.api.Expander; -import com.dfsek.terra.addons.biome.pipeline.v2.api.SeededVector; import com.dfsek.terra.addons.biome.pipeline.v2.api.Stage; import com.dfsek.terra.addons.biome.pipeline.v2.api.biome.PipelineBiome; +import com.dfsek.terra.api.util.cache.SeededVector2Key; public class BiomeChunkImpl implements BiomeChunk { - private final SeededVector worldOrigin; + private final SeededVector2Key worldOrigin; private final int chunkOriginArrayIndex; private final int worldCoordinateScale; private final int size; private PipelineBiome[] biomes; - public BiomeChunkImpl(SeededVector worldOrigin, PipelineImpl pipeline) { + public BiomeChunkImpl(SeededVector2Key worldOrigin, PipelineImpl pipeline) { this.worldOrigin = worldOrigin; this.chunkOriginArrayIndex = pipeline.getChunkOriginArrayIndex(); @@ -44,7 +44,7 @@ public class BiomeChunkImpl implements BiomeChunk { for(int gridZ = 0; gridZ < gridSize; gridZ++) { int xIndex = gridOrigin + gridX * gridInterval; int zIndex = gridOrigin + gridZ * gridInterval; - biomes[(xIndex * size) + zIndex] = pipeline.getSource().get(worldOrigin.seed(), xIndexToWorldCoordinate(xIndex), + biomes[(xIndex * size) + zIndex] = pipeline.getSource().get(worldOrigin.seed, xIndexToWorldCoordinate(xIndex), zIndexToWorldCoordinate(zIndex)); } } @@ -139,14 +139,14 @@ public class BiomeChunkImpl implements BiomeChunk { } private int xIndexToWorldCoordinate(int xIndex) { - return (worldOrigin.x() + xIndex - chunkOriginArrayIndex) * worldCoordinateScale; + return (worldOrigin.x + xIndex - chunkOriginArrayIndex) * worldCoordinateScale; } private int zIndexToWorldCoordinate(int zIndex) { - return (worldOrigin.z() + zIndex - chunkOriginArrayIndex) * worldCoordinateScale; + return (worldOrigin.z + zIndex - chunkOriginArrayIndex) * worldCoordinateScale; } - private SeededVector getOrigin() { + private SeededVector2Key getOrigin() { return worldOrigin; } @@ -216,7 +216,7 @@ public class BiomeChunkImpl implements BiomeChunk { } public long worldSeed() { - return chunk.getOrigin().seed(); + return chunk.getOrigin().seed; } } } diff --git a/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/pipeline/PipelineImpl.java b/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/pipeline/PipelineImpl.java index 3adef3d8e..71032531a 100644 --- a/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/pipeline/PipelineImpl.java +++ b/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/pipeline/PipelineImpl.java @@ -1,5 +1,7 @@ package com.dfsek.terra.addons.biome.pipeline.v2.pipeline; +import com.dfsek.terra.api.util.cache.SeededVector2Key; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -8,7 +10,6 @@ import java.util.List; import com.dfsek.terra.addons.biome.pipeline.v2.api.BiomeChunk; import com.dfsek.terra.addons.biome.pipeline.v2.api.Expander; import com.dfsek.terra.addons.biome.pipeline.v2.api.Pipeline; -import com.dfsek.terra.addons.biome.pipeline.v2.api.SeededVector; import com.dfsek.terra.addons.biome.pipeline.v2.api.Source; import com.dfsek.terra.addons.biome.pipeline.v2.api.Stage; @@ -55,7 +56,7 @@ public class PipelineImpl implements Pipeline { } @Override - public BiomeChunk generateChunk(SeededVector worldCoordinates) { + public BiomeChunk generateChunk(SeededVector2Key worldCoordinates) { return new BiomeChunkImpl(worldCoordinates, this); }