package net.minecraft.world.level.biome; import net.minecraft.core.Registry; import net.minecraft.world.level.storage.LevelData; import java.util.function.Function; public class BiomeSourceType { public static final BiomeSourceType CHECKERBOARD; public static final BiomeSourceType FIXED; public static final BiomeSourceType VANILLA_LAYERED; public static final BiomeSourceType THE_END; private final Function factory; private final Function settingsFactory; private static BiomeSourceType register(final String string, final Function function2, final Function function3) { return Registry.>register(Registry.BIOME_SOURCE_TYPE, string, new BiomeSourceType(function2, function3)); } private BiomeSourceType(final Function function1, final Function function2) { this.factory = function1; this.settingsFactory = function2; } public T create(final C bku) { return this.factory.apply(bku); } public C createSettings(final LevelData crj) { return this.settingsFactory.apply(crj); } static { CHECKERBOARD = BiomeSourceType.register("checkerboard", CheckerboardColumnBiomeSource::new, CheckerboardBiomeSourceSettings::new); FIXED = BiomeSourceType.register("fixed", FixedBiomeSource::new, FixedBiomeSourceSettings::new); VANILLA_LAYERED = BiomeSourceType.register("vanilla_layered", OverworldBiomeSource::new, OverworldBiomeSourceSettings::new); THE_END = BiomeSourceType.register("the_end", TheEndBiomeSource::new, TheEndBiomeSourceSettings::new); } }