WorldCreationContext.java

net.minecraft.client.gui.screens.worldselection.WorldCreationContext

信息

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

    TODO

字段/常量

内部类/嵌套类型

  • net.minecraft.client.gui.screens.worldselection.WorldCreationContext.DimensionsUpdater

    • 类型: interface
    • 修饰符: public
    • 源码定位: L113
    • 说明:

      TODO

  • net.minecraft.client.gui.screens.worldselection.WorldCreationContext.OptionsModifier

    • 类型: interface
    • 修饰符: public
    • 源码定位: L117
    • 说明:

      TODO

构造器

public WorldCreationContext(WorldGenSettings worldGenSettings, LayeredRegistryAccess<RegistryLayer> loadedRegistries, ReloadableServerResources dataPackResources, WorldDataConfiguration dataConfiguration) @ L30

  • 构造器名:WorldCreationContext
  • 源码定位:L30
  • 修饰符:public

参数:

  • worldGenSettings: WorldGenSettings
  • loadedRegistries: LayeredRegistryAccess
  • dataPackResources: ReloadableServerResources
  • dataConfiguration: WorldDataConfiguration

说明:

TODO

public WorldCreationContext(WorldOptions worldOptions, WorldDimensions worldDimensions, LayeredRegistryAccess<RegistryLayer> loadedRegistries, ReloadableServerResources dataPackResources, WorldDataConfiguration dataConfiguration, InitialWorldCreationOptions initialWorldCreationOptions) @ L46

  • 构造器名:WorldCreationContext
  • 源码定位:L46
  • 修饰符:public

参数:

  • worldOptions: WorldOptions
  • worldDimensions: WorldDimensions
  • loadedRegistries: LayeredRegistryAccess
  • dataPackResources: ReloadableServerResources
  • dataConfiguration: WorldDataConfiguration
  • initialWorldCreationOptions: InitialWorldCreationOptions

说明:

TODO

方法

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

public WorldCreationContext withSettings(WorldOptions options, WorldDimensions dimensions) @ L65

  • 方法名:withSettings
  • 源码定位:L65
  • 返回类型:WorldCreationContext
  • 修饰符:public

参数:

  • options: WorldOptions
  • dimensions: WorldDimensions

说明:

TODO

public WorldCreationContext withOptions(WorldCreationContext.OptionsModifier modifier) @ L77

  • 方法名:withOptions
  • 源码定位:L77
  • 返回类型:WorldCreationContext
  • 修饰符:public

参数:

  • modifier: WorldCreationContext.OptionsModifier

说明:

TODO

public WorldCreationContext withDimensions(WorldCreationContext.DimensionsUpdater modifier) @ L89

  • 方法名:withDimensions
  • 源码定位:L89
  • 返回类型:WorldCreationContext
  • 修饰符:public

参数:

  • modifier: WorldCreationContext.DimensionsUpdater

说明:

TODO

public RegistryAccess.Frozen worldgenLoadContext() @ L101

  • 方法名:worldgenLoadContext
  • 源码定位:L101
  • 返回类型:RegistryAccess.Frozen
  • 修饰符:public

参数:

说明:

TODO

public void validate() @ L105

  • 方法名:validate
  • 源码定位:L105
  • 返回类型:void
  • 修饰符:public

参数:

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public record WorldCreationContext(
    WorldOptions options,
    Registry<LevelStem> datapackDimensions,
    WorldDimensions selectedDimensions,
    LayeredRegistryAccess<RegistryLayer> worldgenRegistries,
    ReloadableServerResources dataPackResources,
    WorldDataConfiguration dataConfiguration,
    InitialWorldCreationOptions initialWorldCreationOptions
) {
    public WorldCreationContext(
        WorldGenSettings worldGenSettings,
        LayeredRegistryAccess<RegistryLayer> loadedRegistries,
        ReloadableServerResources dataPackResources,
        WorldDataConfiguration dataConfiguration
    ) {
        this(
            worldGenSettings.options(),
            worldGenSettings.dimensions(),
            loadedRegistries,
            dataPackResources,
            dataConfiguration,
            new InitialWorldCreationOptions(WorldCreationUiState.SelectedGameMode.SURVIVAL, GameRuleMap.of(), null)
        );
    }
 
    public WorldCreationContext(
        WorldOptions worldOptions,
        WorldDimensions worldDimensions,
        LayeredRegistryAccess<RegistryLayer> loadedRegistries,
        ReloadableServerResources dataPackResources,
        WorldDataConfiguration dataConfiguration,
        InitialWorldCreationOptions initialWorldCreationOptions
    ) {
        this(
            worldOptions,
            loadedRegistries.getLayer(RegistryLayer.DIMENSIONS).lookupOrThrow(Registries.LEVEL_STEM),
            worldDimensions,
            loadedRegistries.replaceFrom(RegistryLayer.DIMENSIONS),
            dataPackResources,
            dataConfiguration,
            initialWorldCreationOptions
        );
    }
 
    public WorldCreationContext withSettings(WorldOptions options, WorldDimensions dimensions) {
        return new WorldCreationContext(
            options,
            this.datapackDimensions,
            dimensions,
            this.worldgenRegistries,
            this.dataPackResources,
            this.dataConfiguration,
            this.initialWorldCreationOptions
        );
    }
 
    public WorldCreationContext withOptions(WorldCreationContext.OptionsModifier modifier) {
        return new WorldCreationContext(
            modifier.apply(this.options),
            this.datapackDimensions,
            this.selectedDimensions,
            this.worldgenRegistries,
            this.dataPackResources,
            this.dataConfiguration,
            this.initialWorldCreationOptions
        );
    }
 
    public WorldCreationContext withDimensions(WorldCreationContext.DimensionsUpdater modifier) {
        return new WorldCreationContext(
            this.options,
            this.datapackDimensions,
            modifier.apply(this.worldgenLoadContext(), this.selectedDimensions),
            this.worldgenRegistries,
            this.dataPackResources,
            this.dataConfiguration,
            this.initialWorldCreationOptions
        );
    }
 
    public RegistryAccess.Frozen worldgenLoadContext() {
        return this.worldgenRegistries.compositeAccess();
    }
 
    public void validate() {
        for (LevelStem stem : this.datapackDimensions()) {
            stem.generator().validate();
        }
    }
 
    @FunctionalInterface
    @OnlyIn(Dist.CLIENT)
    public interface DimensionsUpdater extends BiFunction<RegistryAccess.Frozen, WorldDimensions, WorldDimensions> {
    }
 
    @OnlyIn(Dist.CLIENT)
    public interface OptionsModifier extends UnaryOperator<WorldOptions> {
    }
}

引用的其他类