package net.minecraft.server; import java.util.function.Function; public class BiomeLayout<C extends BiomeLayoutConfiguration, T extends WorldChunkManager> { public static final BiomeLayout<BiomeLayoutCheckerboardConfiguration, WorldChunkManagerCheckerBoard> a = a("checkerboard", WorldChunkManagerCheckerBoard::new, BiomeLayoutCheckerboardConfiguration::new); public static final BiomeLayout<BiomeLayoutFixedConfiguration, WorldChunkManagerHell> b = a("fixed", WorldChunkManagerHell::new, BiomeLayoutFixedConfiguration::new); public static final BiomeLayout<BiomeLayoutOverworldConfiguration, WorldChunkManagerOverworld> c = a("vanilla_layered", WorldChunkManagerOverworld::new, BiomeLayoutOverworldConfiguration::new); public static final BiomeLayout<BiomeLayoutTheEndConfiguration, WorldChunkManagerTheEnd> d = a("the_end", WorldChunkManagerTheEnd::new, BiomeLayoutTheEndConfiguration::new); private final Function<C, T> e; private final Function<WorldData, C> f; private static <C extends BiomeLayoutConfiguration, T extends WorldChunkManager> BiomeLayout<C, T> a(String s, Function<C, T> function, Function<WorldData, C> function1) { return (BiomeLayout) IRegistry.a(IRegistry.BIOME_SOURCE_TYPE, s, (Object) (new BiomeLayout<>(function, function1))); } private BiomeLayout(Function<C, T> function, Function<WorldData, C> function1) { this.e = function; this.f = function1; } public T a(C c0) { return (WorldChunkManager) this.e.apply(c0); } public C a(WorldData worlddata) { return (BiomeLayoutConfiguration) this.f.apply(worlddata); } }