Added Codecs for SurfaceRule Objects (paulevsGitch/BetterNether#503)
This commit is contained in:
parent
2892e6fa11
commit
4b27f00eb6
3 changed files with 45 additions and 0 deletions
|
@ -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<SplitNoiseCondition> 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<? extends NumericProvider> pcodec() {
|
||||
return CODEC;
|
||||
}
|
||||
|
||||
static {
|
||||
Registry.register(NumericProvider.NUMERIC_PROVIDER , BetterEnd.makeID("split_noise"), SplitNoiseCondition.CODEC);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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<SulphuricSurfaceNoiseCondition> 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<? extends NumericProvider> pcodec() {
|
||||
return CODEC;
|
||||
}
|
||||
|
||||
static {
|
||||
Registry.register(NumericProvider.NUMERIC_PROVIDER , BetterEnd.makeID("sulphuric_surf"), SulphuricSurfaceNoiseCondition.CODEC);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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<UmbraSurfaceNoiseCondition> 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<? extends NumericProvider> pcodec() {
|
||||
return CODEC;
|
||||
}
|
||||
|
||||
static {
|
||||
Registry.register(NumericProvider.NUMERIC_PROVIDER , BetterEnd.makeID("umbra_srf"), UmbraSurfaceNoiseCondition.CODEC);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue