More Codecs

This commit is contained in:
Frank 2022-01-20 03:36:39 +01:00
parent 7b789ba57a
commit 44517e0749
2 changed files with 14 additions and 0 deletions

View file

@ -1,12 +1,19 @@
package ru.bclib.api.surface.rules; package ru.bclib.api.surface.rules;
import com.mojang.serialization.Codec;
import ru.bclib.interfaces.NumericProvider; import ru.bclib.interfaces.NumericProvider;
import ru.bclib.mixin.common.SurfaceRulesContextAccessor; import ru.bclib.mixin.common.SurfaceRulesContextAccessor;
import ru.bclib.util.MHelper; import ru.bclib.util.MHelper;
public record RandomIntProvider(int range) implements NumericProvider { public record RandomIntProvider(int range) implements NumericProvider {
public static final Codec<RandomIntProvider> CODEC = Codec.INT.fieldOf("nethrangeer_noise").xmap(RandomIntProvider::new, obj -> obj.range).codec();
@Override @Override
public int getNumber(SurfaceRulesContextAccessor context) { public int getNumber(SurfaceRulesContextAccessor context) {
return MHelper.RANDOM.nextInt(range); return MHelper.RANDOM.nextInt(range);
} }
@Override
public Codec<? extends NumericProvider> pcodec() {
return CODEC;
}
} }

View file

@ -1,7 +1,14 @@
package ru.bclib.interfaces; 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 ru.bclib.mixin.common.SurfaceRulesContextAccessor;
import java.util.function.Function;
public interface NumericProvider { public interface NumericProvider {
int getNumber(SurfaceRulesContextAccessor context); int getNumber(SurfaceRulesContextAccessor context);
Codec<? extends NumericProvider> pcodec();
} }