68 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| package net.minecraft.world.level.levelgen;
 | |
| 
 | |
| import com.mojang.serialization.Codec;
 | |
| import com.mojang.serialization.codecs.RecordCodecBuilder;
 | |
| import java.util.function.Function;
 | |
| 
 | |
| public record NoiseRouter(
 | |
| 	DensityFunction barrierNoise,
 | |
| 	DensityFunction fluidLevelFloodednessNoise,
 | |
| 	DensityFunction fluidLevelSpreadNoise,
 | |
| 	DensityFunction lavaNoise,
 | |
| 	DensityFunction temperature,
 | |
| 	DensityFunction vegetation,
 | |
| 	DensityFunction continents,
 | |
| 	DensityFunction erosion,
 | |
| 	DensityFunction depth,
 | |
| 	DensityFunction ridges,
 | |
| 	DensityFunction initialDensityWithoutJaggedness,
 | |
| 	DensityFunction finalDensity,
 | |
| 	DensityFunction veinToggle,
 | |
| 	DensityFunction veinRidged,
 | |
| 	DensityFunction veinGap
 | |
| ) {
 | |
| 	public static final Codec<NoiseRouter> CODEC = RecordCodecBuilder.create(
 | |
| 		instance -> instance.group(
 | |
| 				field("barrier", NoiseRouter::barrierNoise),
 | |
| 				field("fluid_level_floodedness", NoiseRouter::fluidLevelFloodednessNoise),
 | |
| 				field("fluid_level_spread", NoiseRouter::fluidLevelSpreadNoise),
 | |
| 				field("lava", NoiseRouter::lavaNoise),
 | |
| 				field("temperature", NoiseRouter::temperature),
 | |
| 				field("vegetation", NoiseRouter::vegetation),
 | |
| 				field("continents", NoiseRouter::continents),
 | |
| 				field("erosion", NoiseRouter::erosion),
 | |
| 				field("depth", NoiseRouter::depth),
 | |
| 				field("ridges", NoiseRouter::ridges),
 | |
| 				field("initial_density_without_jaggedness", NoiseRouter::initialDensityWithoutJaggedness),
 | |
| 				field("final_density", NoiseRouter::finalDensity),
 | |
| 				field("vein_toggle", NoiseRouter::veinToggle),
 | |
| 				field("vein_ridged", NoiseRouter::veinRidged),
 | |
| 				field("vein_gap", NoiseRouter::veinGap)
 | |
| 			)
 | |
| 			.apply(instance, NoiseRouter::new)
 | |
| 	);
 | |
| 
 | |
| 	private static RecordCodecBuilder<NoiseRouter, DensityFunction> field(String name, Function<NoiseRouter, DensityFunction> getter) {
 | |
| 		return DensityFunction.HOLDER_HELPER_CODEC.fieldOf(name).forGetter(getter);
 | |
| 	}
 | |
| 
 | |
| 	public NoiseRouter mapAll(DensityFunction.Visitor visitor) {
 | |
| 		return new NoiseRouter(
 | |
| 			this.barrierNoise.mapAll(visitor),
 | |
| 			this.fluidLevelFloodednessNoise.mapAll(visitor),
 | |
| 			this.fluidLevelSpreadNoise.mapAll(visitor),
 | |
| 			this.lavaNoise.mapAll(visitor),
 | |
| 			this.temperature.mapAll(visitor),
 | |
| 			this.vegetation.mapAll(visitor),
 | |
| 			this.continents.mapAll(visitor),
 | |
| 			this.erosion.mapAll(visitor),
 | |
| 			this.depth.mapAll(visitor),
 | |
| 			this.ridges.mapAll(visitor),
 | |
| 			this.initialDensityWithoutJaggedness.mapAll(visitor),
 | |
| 			this.finalDensity.mapAll(visitor),
 | |
| 			this.veinToggle.mapAll(visitor),
 | |
| 			this.veinRidged.mapAll(visitor),
 | |
| 			this.veinGap.mapAll(visitor)
 | |
| 		);
 | |
| 	}
 | |
| }
 |