public static final MapCodec<MultiNoiseBiomeSource> DIRECT_CODEC = RecordCodecBuilder.mapCodec(
(instance) -> instance.group(
RecordCodecBuilder.create(
(instancex) -> instancex.group(
Climate.ParameterPoint.CODEC.fieldOf("parameters").forGetter(Pair::getFirst),
Biome.CODEC.fieldOf("biome").forGetter(Pair::getSecond)
).apply(instancex, Pair::of)
)
.listOf()
.xmap(Climate.ParameterList::new, Climate.ParameterList::biomes)
.fieldOf("biomes")
.forGetter((multiNoiseBiomeSource) -> multiNoiseBiomeSource.parameters)
).apply(instance, MultiNoiseBiomeSource::new)
);
becomes:
public static final MapCodec<MultiNoiseBiomeSource> DIRECT_CODEC = RecordCodecBuilder.mapCodec(
(instance) -> instance.group(
RecordCodecBuilder.<Pair<Climate.ParameterPoint, Supplier<Biome>>>create(
(instancex) -> instancex.group(
Climate.ParameterPoint.CODEC.fieldOf("parameters").forGetter(Pair<Climate.ParameterPoint, Supplier<Biome>>::getFirst),
Biome.CODEC.fieldOf("biome").forGetter(Pair<Climate.ParameterPoint, Supplier<Biome>>::getSecond)
).apply(instancex, Pair::of)
)
.listOf()
.xmap(Climate.ParameterList::new, Climate.ParameterList::biomes)
.fieldOf("biomes")
.forGetter((multiNoiseBiomeSource) -> multiNoiseBiomeSource.parameters)
).apply(instance, MultiNoiseBiomeSource::new)
);
private final List<Pair<Biome.ClimateParameters, Supplier<Biome>>> parameters;
Brought type parameters from Pair<F, S>
inside parameters
field, and added them.
public static final MapCodec<MultiNoiseBiomeSource.PresetInstance> CODEC = RecordCodecBuilder.mapCodec((instance) -> instance.group(ResourceLocation.CODEC.flatXmap((resourceLocation) -> (DataResult)Optional.ofNullable(MultiNoiseBiomeSource.Preset.BY_NAME.get(resourceLocation)).map(DataResult::success).orElseGet(() -> DataResult.error("Unknown preset: " + resourceLocation)), (preset) -> DataResult.success(preset.name)).fieldOf("preset").stable().forGetter(MultiNoiseBiomeSource.PresetInstance::preset), RegistryLookupCodec.create(Registry.BIOME_REGISTRY).forGetter(MultiNoiseBiomeSource.PresetInstance::biomes), Codec.LONG.fieldOf("seed").stable().forGetter(MultiNoiseBiomeSource.PresetInstance::seed)).apply(instance, instance.stable(MultiNoiseBiomeSource.PresetInstance::new)));
becomes:
public static final MapCodec<MultiNoiseBiomeSource.PresetInstance> CODEC = RecordCodecBuilder.mapCodec((instance) -> instance.group(ResourceLocation.CODEC.flatXmap((resourceLocation) -> Optional.ofNullable(MultiNoiseBiomeSource.Preset.BY_NAME.get(resourceLocation)).map(DataResult::success).orElseGet(() -> DataResult.error("Unknown preset: " + resourceLocation)), (preset) -> DataResult.success(preset.name)).fieldOf("preset").stable().forGetter(MultiNoiseBiomeSource.PresetInstance::preset), RegistryLookupCodec.create(Registry.BIOME_REGISTRY).forGetter(MultiNoiseBiomeSource.PresetInstance::biomes), Codec.LONG.fieldOf("seed").stable().forGetter(MultiNoiseBiomeSource.PresetInstance::seed)).apply(instance, instance.stable(MultiNoiseBiomeSource.PresetInstance::new)));
Just removed (DataResult)
cast (a cast without type parameter).