PresetEditor.java

net.minecraft.client.gui.screens.worldselection.PresetEditor

信息

  • 全限定名:net.minecraft.client.gui.screens.worldselection.PresetEditor
  • 类型:public interface
  • 包:net.minecraft.client.gui.screens.worldselection
  • 源码路径:src/main/java/net/minecraft/client/gui/screens/worldselection/PresetEditor.java
  • 起始行号:L30
  • 职责:

    TODO

字段/常量

  • EDITORS
    • 类型: Map<Optional<ResourceKey<WorldPreset>>,PresetEditor>
    • 修饰符: package-private
    • 源码定位: L31
    • 说明:

      TODO

内部类/嵌套类型

构造器

方法

下面的方法块按源码顺序生成。

Screen createEditScreen(CreateWorldScreen parent, WorldCreationContext settings) @ L51

  • 方法名:createEditScreen
  • 源码定位:L51
  • 返回类型:Screen
  • 修饰符:package-private

参数:

  • parent: CreateWorldScreen
  • settings: WorldCreationContext

说明:

TODO

static WorldCreationContext.DimensionsUpdater flatWorldConfigurator(FlatLevelGeneratorSettings generatorSettings) @ L53

  • 方法名:flatWorldConfigurator
  • 源码定位:L53
  • 返回类型:WorldCreationContext.DimensionsUpdater
  • 修饰符:static

参数:

  • generatorSettings: FlatLevelGeneratorSettings

说明:

TODO

private static WorldCreationContext.DimensionsUpdater fixedBiomeConfigurator(Holder<Biome> biome) @ L60

  • 方法名:fixedBiomeConfigurator
  • 源码定位:L60
  • 返回类型:WorldCreationContext.DimensionsUpdater
  • 修饰符:private static

参数:

  • biome: Holder

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public interface PresetEditor {
    Map<Optional<ResourceKey<WorldPreset>>, PresetEditor> EDITORS = Map.of(
        Optional.of(WorldPresets.FLAT),
        (parent, settings) -> {
            ChunkGenerator overworld = settings.selectedDimensions().overworld();
            RegistryAccess registryAccess = settings.worldgenLoadContext();
            HolderGetter<Biome> biomes = registryAccess.lookupOrThrow(Registries.BIOME);
            HolderGetter<StructureSet> structureSets = registryAccess.lookupOrThrow(Registries.STRUCTURE_SET);
            HolderGetter<PlacedFeature> placedFeatures = registryAccess.lookupOrThrow(Registries.PLACED_FEATURE);
            return new CreateFlatWorldScreen(
                parent,
                flatWorldSettings -> parent.getUiState().updateDimensions(flatWorldConfigurator(flatWorldSettings)),
                overworld instanceof FlatLevelSource
                    ? ((FlatLevelSource)overworld).settings()
                    : FlatLevelGeneratorSettings.getDefault(biomes, structureSets, placedFeatures)
            );
        },
        Optional.of(WorldPresets.SINGLE_BIOME_SURFACE),
        (parent, settings) -> new CreateBuffetWorldScreen(parent, settings, biome -> parent.getUiState().updateDimensions(fixedBiomeConfigurator(biome)))
    );
 
    Screen createEditScreen(final CreateWorldScreen parent, final WorldCreationContext settings);
 
    static WorldCreationContext.DimensionsUpdater flatWorldConfigurator(FlatLevelGeneratorSettings generatorSettings) {
        return (registryAccess, dimensions) -> {
            ChunkGenerator generator = new FlatLevelSource(generatorSettings);
            return dimensions.replaceOverworldGenerator(registryAccess, generator);
        };
    }
 
    private static WorldCreationContext.DimensionsUpdater fixedBiomeConfigurator(Holder<Biome> biome) {
        return (registryAccess, dimensions) -> {
            Registry<NoiseGeneratorSettings> noiseGeneratorSettings = registryAccess.lookupOrThrow(Registries.NOISE_SETTINGS);
            Holder<NoiseGeneratorSettings> noiseSettings = noiseGeneratorSettings.getOrThrow(NoiseGeneratorSettings.OVERWORLD);
            BiomeSource biomeSource = new FixedBiomeSource(biome);
            ChunkGenerator generator = new NoiseBasedChunkGenerator(biomeSource, noiseSettings);
            return dimensions.replaceOverworldGenerator(registryAccess, generator);
        };
    }
}

引用的其他类