diff --git a/src/main/java/ru/betterend/world/surface/SplitNoiseCondition.java b/src/main/java/ru/betterend/world/surface/SplitNoiseCondition.java index d3e6aa4e..179b30cc 100644 --- a/src/main/java/ru/betterend/world/surface/SplitNoiseCondition.java +++ b/src/main/java/ru/betterend/world/surface/SplitNoiseCondition.java @@ -1,14 +1,20 @@ package ru.betterend.world.surface; +import com.mojang.serialization.Codec; +import net.minecraft.core.Registry; import ru.bclib.interfaces.NumericProvider; import ru.bclib.mixin.common.SurfaceRulesContextAccessor; import ru.bclib.util.MHelper; +import ru.betterend.BetterEnd; import ru.betterend.noise.OpenSimplexNoise; /** * Noise source that returns a value in [0, 1] */ public class SplitNoiseCondition implements NumericProvider { + public static final SplitNoiseCondition DEFAULT = new SplitNoiseCondition(); + public static final Codec CODEC = Codec.BYTE.fieldOf("split_noise").xmap((obj)->DEFAULT, obj -> (byte)0).codec(); + private static final OpenSimplexNoise NOISE = new OpenSimplexNoise(4141); @Override @@ -18,4 +24,13 @@ public class SplitNoiseCondition implements NumericProvider { float noise = (float) NOISE.eval(x * 0.1, z * 0.1) + MHelper.randRange(-0.4F, 0.4F, MHelper.RANDOM); return noise > 0 ? 1 : 0; } + + @Override + public Codec pcodec() { + return CODEC; + } + + static { + Registry.register(NumericProvider.NUMERIC_PROVIDER , BetterEnd.makeID("split_noise"), SplitNoiseCondition.CODEC); + } } diff --git a/src/main/java/ru/betterend/world/surface/SulphuricSurfaceNoiseCondition.java b/src/main/java/ru/betterend/world/surface/SulphuricSurfaceNoiseCondition.java index 1ad16c08..70159892 100644 --- a/src/main/java/ru/betterend/world/surface/SulphuricSurfaceNoiseCondition.java +++ b/src/main/java/ru/betterend/world/surface/SulphuricSurfaceNoiseCondition.java @@ -1,14 +1,20 @@ package ru.betterend.world.surface; +import com.mojang.serialization.Codec; +import net.minecraft.core.Registry; import ru.bclib.interfaces.NumericProvider; import ru.bclib.mixin.common.SurfaceRulesContextAccessor; import ru.bclib.util.MHelper; +import ru.betterend.BetterEnd; import ru.betterend.noise.OpenSimplexNoise; /** * Noise source that returns a value in [0, 3] */ public class SulphuricSurfaceNoiseCondition implements NumericProvider { + public static final SulphuricSurfaceNoiseCondition DEFAULT = new SulphuricSurfaceNoiseCondition(); + public static final Codec CODEC = Codec.BYTE.fieldOf("sulphuric_surf").xmap((obj)->DEFAULT, obj -> (byte)0).codec(); + private static final OpenSimplexNoise NOISE = new OpenSimplexNoise(5123); @Override @@ -21,4 +27,13 @@ public class SulphuricSurfaceNoiseCondition implements NumericProvider { if (value < 0.5) return 2; return 3; } + + @Override + public Codec pcodec() { + return CODEC; + } + + static { + Registry.register(NumericProvider.NUMERIC_PROVIDER , BetterEnd.makeID("sulphuric_surf"), SulphuricSurfaceNoiseCondition.CODEC); + } } diff --git a/src/main/java/ru/betterend/world/surface/UmbraSurfaceNoiseCondition.java b/src/main/java/ru/betterend/world/surface/UmbraSurfaceNoiseCondition.java index 83fea882..4cc3f8d7 100644 --- a/src/main/java/ru/betterend/world/surface/UmbraSurfaceNoiseCondition.java +++ b/src/main/java/ru/betterend/world/surface/UmbraSurfaceNoiseCondition.java @@ -1,14 +1,20 @@ package ru.betterend.world.surface; +import com.mojang.serialization.Codec; +import net.minecraft.core.Registry; import ru.bclib.interfaces.NumericProvider; import ru.bclib.mixin.common.SurfaceRulesContextAccessor; import ru.bclib.util.MHelper; +import ru.betterend.BetterEnd; import ru.betterend.noise.OpenSimplexNoise; /** * Noise source that returns a value in [0, 4] */ public class UmbraSurfaceNoiseCondition implements NumericProvider { + public static final UmbraSurfaceNoiseCondition DEFAULT = new UmbraSurfaceNoiseCondition(); + public static final Codec CODEC = Codec.BYTE.fieldOf("umbra_srf").xmap((obj)->DEFAULT, obj -> (byte)0).codec(); + private static final OpenSimplexNoise NOISE = new OpenSimplexNoise(1512); @Override @@ -26,4 +32,13 @@ public class UmbraSurfaceNoiseCondition implements NumericProvider { if (value > -0.4) return 3; return 4; } + + @Override + public Codec pcodec() { + return CODEC; + } + + static { + Registry.register(NumericProvider.NUMERIC_PROVIDER , BetterEnd.makeID("umbra_srf"), UmbraSurfaceNoiseCondition.CODEC); + } }