From 9310114c0e8685bdd77abf4fe3519631294bc963 Mon Sep 17 00:00:00 2001 From: dfsek Date: Sat, 9 Jan 2021 02:58:02 -0700 Subject: [PATCH] cleanup --- common/src/main/java/com/dfsek/terra/api/math/MathUtil.java | 4 ++++ .../api/world/generation/population/ChunkCoordinate.java | 2 +- common/src/main/java/com/dfsek/terra/carving/CarverCache.java | 2 +- .../java/com/dfsek/terra/generation/math/SamplerCache.java | 3 ++- .../region/src/main/java/com/dfsek/terra/DirectUtils.java | 3 ++- 5 files changed, 10 insertions(+), 4 deletions(-) diff --git a/common/src/main/java/com/dfsek/terra/api/math/MathUtil.java b/common/src/main/java/com/dfsek/terra/api/math/MathUtil.java index 8d39207ab..a16981af3 100644 --- a/common/src/main/java/com/dfsek/terra/api/math/MathUtil.java +++ b/common/src/main/java/com/dfsek/terra/api/math/MathUtil.java @@ -90,4 +90,8 @@ public final class MathUtil { return Math.sqrt(((xVal2 - xVal1) * (xVal2 - xVal1)) + ((zVal2 - zVal1) * (zVal2 - zVal1)) + ((yVal2 - yVal1) * (yVal2 - yVal1))); } + + public static long squash(int first, int last) { + return (((long) first) << 32) | (last & 0xffffffffL); + } } diff --git a/common/src/main/java/com/dfsek/terra/api/world/generation/population/ChunkCoordinate.java b/common/src/main/java/com/dfsek/terra/api/world/generation/population/ChunkCoordinate.java index bffc444e5..befa179d5 100644 --- a/common/src/main/java/com/dfsek/terra/api/world/generation/population/ChunkCoordinate.java +++ b/common/src/main/java/com/dfsek/terra/api/world/generation/population/ChunkCoordinate.java @@ -43,7 +43,7 @@ public class ChunkCoordinate implements Serializable { @Override public boolean equals(Object obj) { - if(!(obj instanceof com.dfsek.terra.api.world.generation.population.ChunkCoordinate)) return false; + if(!(obj instanceof ChunkCoordinate)) return false; com.dfsek.terra.api.world.generation.population.ChunkCoordinate other = (com.dfsek.terra.api.world.generation.population.ChunkCoordinate) obj; return other.getX() == x && other.getZ() == z; } diff --git a/common/src/main/java/com/dfsek/terra/carving/CarverCache.java b/common/src/main/java/com/dfsek/terra/carving/CarverCache.java index c6ce44956..e48fc08f7 100644 --- a/common/src/main/java/com/dfsek/terra/carving/CarverCache.java +++ b/common/src/main/java/com/dfsek/terra/carving/CarverCache.java @@ -37,7 +37,7 @@ public class CarverCache { public List getPoints(int chunkX, int chunkZ, UserDefinedCarver carver) { synchronized(carvers) { - return carvers.computeIfAbsent((((long) chunkX) << 32) | (chunkZ & 0xffffffffL), key -> { + return carvers.computeIfAbsent(MathUtil.squash(chunkX, chunkZ), key -> { TerraBiomeGrid grid = main.getWorld(w).getGrid(); if(carver.isChunkCarved(w, chunkX, chunkZ, new FastRandom(MathUtil.getCarverChunkSeed(chunkX, chunkZ, w.getSeed() + carver.hashCode())))) { long seed = MathUtil.getCarverChunkSeed(chunkX, chunkZ, w.getSeed()); diff --git a/common/src/main/java/com/dfsek/terra/generation/math/SamplerCache.java b/common/src/main/java/com/dfsek/terra/generation/math/SamplerCache.java index 36399fc57..421a7d2e9 100644 --- a/common/src/main/java/com/dfsek/terra/generation/math/SamplerCache.java +++ b/common/src/main/java/com/dfsek/terra/generation/math/SamplerCache.java @@ -1,6 +1,7 @@ package com.dfsek.terra.generation.math; import com.dfsek.terra.TerraWorld; +import com.dfsek.terra.api.math.MathUtil; import com.dfsek.terra.api.platform.TerraPlugin; import com.dfsek.terra.api.platform.world.World; import net.jafama.FastMath; @@ -53,7 +54,7 @@ public class SamplerCache { } public Sampler getChunk(int cx, int cz) { - long key = (((long) cx) << 32) | (cz & 0xffffffffL); + long key = MathUtil.squash(cx, cz); synchronized(cache) { return cache.computeIfAbsent(key, k -> new Sampler(cx, cz, terraWorld.getGrid(), world, terraWorld.getConfig().getTemplate().getBaseBlend(), terraWorld.getConfig().getTemplate().getElevationBlend())); } diff --git a/platforms/region/src/main/java/com/dfsek/terra/DirectUtils.java b/platforms/region/src/main/java/com/dfsek/terra/DirectUtils.java index f5beb0bbd..2be2ebf6e 100644 --- a/platforms/region/src/main/java/com/dfsek/terra/DirectUtils.java +++ b/platforms/region/src/main/java/com/dfsek/terra/DirectUtils.java @@ -1,5 +1,6 @@ package com.dfsek.terra; +import com.dfsek.terra.api.math.MathUtil; import net.querz.mca.MCAUtil; public final class DirectUtils { @@ -12,6 +13,6 @@ public final class DirectUtils { * @return Region IS */ public static long regionID(int x, int z) { - return (((long) MCAUtil.chunkToRegion(x)) << 32) | (MCAUtil.chunkToRegion(z) & 0xffffffffL); + return MathUtil.squash(MCAUtil.chunkToRegion(x), MCAUtil.chunkToRegion(z)); } }