39 lines
2.2 KiB
Java
39 lines
2.2 KiB
Java
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<C extends BiomeSourceSettings, T extends BiomeSource> {
|
|
public static final BiomeSourceType<CheckerboardBiomeSourceSettings, CheckerboardColumnBiomeSource> CHECKERBOARD;
|
|
public static final BiomeSourceType<FixedBiomeSourceSettings, FixedBiomeSource> FIXED;
|
|
public static final BiomeSourceType<OverworldBiomeSourceSettings, OverworldBiomeSource> VANILLA_LAYERED;
|
|
public static final BiomeSourceType<TheEndBiomeSourceSettings, TheEndBiomeSource> THE_END;
|
|
private final Function<C, T> factory;
|
|
private final Function<LevelData, C> settingsFactory;
|
|
|
|
private static <C extends BiomeSourceSettings, T extends BiomeSource> BiomeSourceType<C, T> register(final String string, final Function<C, T> function2, final Function<LevelData, C> function3) {
|
|
return Registry.<BiomeSourceType<C, T>>register(Registry.BIOME_SOURCE_TYPE, string, new BiomeSourceType<C, T>(function2, function3));
|
|
}
|
|
|
|
private BiomeSourceType(final Function<C, T> function1, final Function<LevelData, C> 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.<CheckerboardBiomeSourceSettings, CheckerboardColumnBiomeSource>register("checkerboard", CheckerboardColumnBiomeSource::new, CheckerboardBiomeSourceSettings::new);
|
|
FIXED = BiomeSourceType.<FixedBiomeSourceSettings, FixedBiomeSource>register("fixed", FixedBiomeSource::new, FixedBiomeSourceSettings::new);
|
|
VANILLA_LAYERED = BiomeSourceType.<OverworldBiomeSourceSettings, OverworldBiomeSource>register("vanilla_layered", OverworldBiomeSource::new, OverworldBiomeSourceSettings::new);
|
|
THE_END = BiomeSourceType.<TheEndBiomeSourceSettings, TheEndBiomeSource>register("the_end", TheEndBiomeSource::new, TheEndBiomeSourceSettings::new);
|
|
}
|
|
}
|