diff --git a/src/main/java/ru/bclib/api/surface/rules/RandomIntProvider.java b/src/main/java/ru/bclib/api/surface/rules/RandomIntProvider.java index 14c1dffb..12ace5a3 100644 --- a/src/main/java/ru/bclib/api/surface/rules/RandomIntProvider.java +++ b/src/main/java/ru/bclib/api/surface/rules/RandomIntProvider.java @@ -1,12 +1,19 @@ package ru.bclib.api.surface.rules; +import com.mojang.serialization.Codec; import ru.bclib.interfaces.NumericProvider; import ru.bclib.mixin.common.SurfaceRulesContextAccessor; import ru.bclib.util.MHelper; public record RandomIntProvider(int range) implements NumericProvider { + public static final Codec CODEC = Codec.INT.fieldOf("nethrangeer_noise").xmap(RandomIntProvider::new, obj -> obj.range).codec(); @Override public int getNumber(SurfaceRulesContextAccessor context) { return MHelper.RANDOM.nextInt(range); } + + @Override + public Codec pcodec() { + return CODEC; + } } diff --git a/src/main/java/ru/bclib/interfaces/NumericProvider.java b/src/main/java/ru/bclib/interfaces/NumericProvider.java index 6d647f81..06befdd1 100644 --- a/src/main/java/ru/bclib/interfaces/NumericProvider.java +++ b/src/main/java/ru/bclib/interfaces/NumericProvider.java @@ -1,7 +1,14 @@ package ru.bclib.interfaces; +import com.mojang.serialization.Codec; +import net.minecraft.core.Registry; +import net.minecraft.world.level.levelgen.SurfaceRules; import ru.bclib.mixin.common.SurfaceRulesContextAccessor; +import java.util.function.Function; + public interface NumericProvider { int getNumber(SurfaceRulesContextAccessor context); + + Codec pcodec(); }