From c0ac08e428d0c578a2d8767350d90600bdddfe54 Mon Sep 17 00:00:00 2001 From: ishland Date: Tue, 18 Apr 2023 18:32:14 +0800 Subject: [PATCH] fix: incorrect random instance derive --- .../com/ishland/c2me/base/mixin/access/ISimpleRandom.java | 5 +++-- .../general/common/random_instances/RandomUtils.java | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/c2me-base/src/main/java/com/ishland/c2me/base/mixin/access/ISimpleRandom.java b/c2me-base/src/main/java/com/ishland/c2me/base/mixin/access/ISimpleRandom.java index e1e8c4e0..d250b423 100644 --- a/c2me-base/src/main/java/com/ishland/c2me/base/mixin/access/ISimpleRandom.java +++ b/c2me-base/src/main/java/com/ishland/c2me/base/mixin/access/ISimpleRandom.java @@ -3,6 +3,7 @@ import net.minecraft.util.math.random.LocalRandom; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; +import org.spongepowered.asm.mixin.gen.Invoker; @Mixin(LocalRandom.class) public interface ISimpleRandom { @@ -10,7 +11,7 @@ public interface ISimpleRandom { @Accessor long getSeed(); - @Accessor - void setSeed(long seed); + @Invoker + void invokeSetSeed(long seed); } diff --git a/c2me-opts-worldgen-general/src/main/java/com/ishland/c2me/opts/worldgen/general/common/random_instances/RandomUtils.java b/c2me-opts-worldgen-general/src/main/java/com/ishland/c2me/opts/worldgen/general/common/random_instances/RandomUtils.java index fc088b18..09b88568 100644 --- a/c2me-opts-worldgen-general/src/main/java/com/ishland/c2me/opts/worldgen/general/common/random_instances/RandomUtils.java +++ b/c2me-opts-worldgen-general/src/main/java/com/ishland/c2me/opts/worldgen/general/common/random_instances/RandomUtils.java @@ -28,7 +28,7 @@ public static void derive(RandomSplitter deriver, Random random, int x, int y, i if (deriver instanceof CheckedRandom.Splitter) { final ISimpleRandom random1 = (ISimpleRandom) random; final IAtomicSimpleRandomDeriver deriver1 = (IAtomicSimpleRandomDeriver) deriver; - random1.setSeed(MathHelper.hashCode(x, y, z) ^ deriver1.getSeed()); + random1.invokeSetSeed(MathHelper.hashCode(x, y, z) ^ deriver1.getSeed()); return; } throw new IllegalArgumentException();