From b3883149f4d65afdd57fca5a06b501e3bb63a2a0 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 10 Jan 2020 16:18:21 -0500 Subject: [PATCH] added slime chunk data --- .../seedcracker/cracker/SlimeChunkData.java | 22 +++++++++++++++++++ .../kaptainwutax/seedcracker/util/Seeds.java | 6 +++++ 2 files changed, 28 insertions(+) create mode 100644 src/main/java/kaptainwutax/seedcracker/cracker/SlimeChunkData.java diff --git a/src/main/java/kaptainwutax/seedcracker/cracker/SlimeChunkData.java b/src/main/java/kaptainwutax/seedcracker/cracker/SlimeChunkData.java new file mode 100644 index 0000000..beea311 --- /dev/null +++ b/src/main/java/kaptainwutax/seedcracker/cracker/SlimeChunkData.java @@ -0,0 +1,22 @@ +package kaptainwutax.seedcracker.cracker; + +import kaptainwutax.seedcracker.util.Rand; +import kaptainwutax.seedcracker.util.Seeds; +import net.minecraft.util.math.ChunkPos; + +public class SlimeChunkData { + + protected ChunkPos chunkPos; + protected boolean isSlimeChunk; + + public SlimeChunkData(ChunkPos chunkPos, boolean isSlimeChunk) { + this.chunkPos = chunkPos; + this.isSlimeChunk = isSlimeChunk; + } + + public boolean test(long seed, Rand rand) { + Seeds.setSlimeChunkSeed(rand, seed, this.chunkPos.x, this.chunkPos.z, 987234911L); + return (rand.nextInt(10) == 0) == this.isSlimeChunk; + } + +} diff --git a/src/main/java/kaptainwutax/seedcracker/util/Seeds.java b/src/main/java/kaptainwutax/seedcracker/util/Seeds.java index 2939f23..7198e4f 100644 --- a/src/main/java/kaptainwutax/seedcracker/util/Seeds.java +++ b/src/main/java/kaptainwutax/seedcracker/util/Seeds.java @@ -26,4 +26,10 @@ public class Seeds { return seed; } + public static long setSlimeChunkSeed(Rand rand, long worldSeed, int chunkX, int chunkZ, long salt) { + long seed = worldSeed + (long)(chunkX * chunkX * 4987142) + (long)(chunkX * 5947611) + (long)(chunkZ * chunkZ) * 4392871L + (long)(chunkZ * 389711) ^ salt; + rand.setSeed(seed, true); + return seed; + } + }