RegistryPatchGenerator.java

net.minecraft.data.registries.RegistryPatchGenerator

信息

  • 全限定名:net.minecraft.data.registries.RegistryPatchGenerator
  • 类型:public class
  • 包:net.minecraft.data.registries
  • 源码路径:src/main/java/net/minecraft/data/registries/RegistryPatchGenerator.java
  • 起始行号:L16
  • 职责:

    TODO

字段/常量

内部类/嵌套类型

构造器

方法

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

public static CompletableFuture<RegistrySetBuilder.PatchedRegistries> createLookup(CompletableFuture<HolderLookup.Provider> vanilla, RegistrySetBuilder packBuilder) @ L17

  • 方法名:createLookup
  • 源码定位:L17
  • 返回类型:CompletableFuture<RegistrySetBuilder.PatchedRegistries>
  • 修饰符:public static

参数:

  • vanilla: CompletableFuture<HolderLookup.Provider>
  • packBuilder: RegistrySetBuilder

说明:

TODO

代码

public class RegistryPatchGenerator {
    public static CompletableFuture<RegistrySetBuilder.PatchedRegistries> createLookup(
        CompletableFuture<HolderLookup.Provider> vanilla, RegistrySetBuilder packBuilder
    ) {
        return vanilla.thenApply(
            parent -> {
                RegistryAccess.Frozen staticRegistries = RegistryAccess.fromRegistryOfRegistries(BuiltInRegistries.REGISTRY);
                Cloner.Factory cloner = new Cloner.Factory();
                RegistryDataLoader.WORLDGEN_REGISTRIES.forEach(registryData -> registryData.runWithArguments(cloner::addCodec));
                RegistrySetBuilder.PatchedRegistries newRegistries = packBuilder.buildPatch(staticRegistries, parent, cloner);
                HolderLookup.Provider fullPatchedRegistry = newRegistries.full();
                Optional<? extends HolderLookup.RegistryLookup<Biome>> biomes = fullPatchedRegistry.lookup(Registries.BIOME);
                Optional<? extends HolderLookup.RegistryLookup<PlacedFeature>> features = fullPatchedRegistry.lookup(Registries.PLACED_FEATURE);
                if (biomes.isPresent() || features.isPresent()) {
                    VanillaRegistries.validateThatAllBiomeFeaturesHaveBiomeFilter(
                        DataFixUtils.orElseGet(features, () -> parent.lookupOrThrow(Registries.PLACED_FEATURE)),
                        DataFixUtils.orElseGet(biomes, () -> parent.lookupOrThrow(Registries.BIOME))
                    );
                }
 
                return newRegistries;
            }
        );
    }
}

引用的其他类

  • Cloner

    • 引用位置: 方法调用/构造调用
    • 关联成员: Cloner.Factory(), Factory()
  • HolderLookup

    • 引用位置: 参数
  • RegistryAccess

    • 引用位置: 方法调用
    • 关联成员: RegistryAccess.fromRegistryOfRegistries()
  • RegistrySetBuilder

    • 引用位置: 参数/返回值
  • VanillaRegistries

    • 引用位置: 方法调用
    • 关联成员: VanillaRegistries.validateThatAllBiomeFeaturesHaveBiomeFilter()