类net.minecraft.util.registry.DefaultedRegistry源码实例Demo

下面列出了怎么用net.minecraft.util.registry.DefaultedRegistry的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: patchwork-api   文件: Identifiers.java
/**
 * Gets the current {@link Identifier} for the object in the registry if it exists. If the object does not exist in
 * the provided registry, {@code fallback} will be returned instead.
 *
 * @param registry the registry to query. Must NOT be an instance of {@link DefaultedRegistry}, or else this method
 *                 will throw an {@link IllegalArgumentException}.
 * @return an {@link Identifier} if the instance is registered or if the fallback is non null, otherwise null
 */
@Nullable
public static <T> Identifier getOrFallback(Registry<T> registry, T instance, @Nullable Identifier fallback) {
	if (registry instanceof DefaultedRegistry) {
		// While we could just cast here, I want to catch these cases where they come up and fix them in the mixin.
		throw new IllegalArgumentException("Used the non-defaulted getOrFallback method with a DefaultedRegistry");
	}

	Identifier current = registry.getId(instance);

	if (current == null) {
		return fallback;
	} else {
		return current;
	}
}
 
源代码2 项目: multiconnect   文件: AbstractProtocol.java
@SuppressWarnings("unchecked")
protected <T> void postMutateRegistry(Registry<T> registry) {
    if (!(registry instanceof SimpleRegistry)) return;
    if (registry instanceof DefaultedRegistry) return;
    ISimpleRegistry<T> iregistry = (ISimpleRegistry<T>) registry;
    DefaultRegistry<T> defaultRegistry = (DefaultRegistry<T>) DefaultRegistry.DEFAULT_REGISTRIES.get(registry);
    if (defaultRegistry == null) return;
    for (Map.Entry<Identifier, T> entry : defaultRegistry.defaultEntriesById.entrySet()) {
        if (registry.getId(entry.getValue()) == null) {
            RegistryKey<T> key = RegistryKey.of(iregistry.getRegistryKey(), entry.getKey());
            iregistry.register(entry.getValue(), iregistry.getNextId(), key, false);
        }
    }
}
 
源代码3 项目: patchwork-api   文件: ForgeRegistry.java
@Override
public Identifier getDefaultKey() {
	if (vanilla instanceof DefaultedRegistry) {
		return ((DefaultedRegistry<V>) vanilla).getDefaultId();
	}

	return null;
}
 
源代码4 项目: patchwork-api   文件: Identifiers.java
/**
 * Gets the current {@link Identifier} for the object in the registry if it exists. If the object does not exist in
 * the provided registry, {@code fallback} will be returned instead.
 *
 * @param registry the registry to query. Must be an instance of {@link DefaultedRegistry}.
 * @return an {@link Identifier} if the instance is registered or if the fallback is non null, otherwise null
 */
@Nullable
public static <T> Identifier getOrFallback(DefaultedRegistry<T> registry, T instance, @Nullable Identifier fallback) {
	Identifier current = registry.getId(instance);

	if (current.equals(registry.getDefaultId())) {
		return fallback;
	} else {
		return current;
	}
}
 
源代码5 项目: MineLittlePony   文件: NpcClothingFeature.java
public <K> VillagerResourceMetadata.HatType getHatType(Object2ObjectMap<K, HatType> cache, String type, DefaultedRegistry<K> registry, K key) {
    if (cache.containsKey(key)) {
        return cache.get(key); // People often complain that villagers cause lag,
                               // so let's do better than Mojang and rather NOT go
                               // through all the lambda generations if we can avoid it.
    }
    return loadHatType(cache, type, registry, key);
}
 
源代码6 项目: MineLittlePony   文件: NpcClothingFeature.java
private <K> VillagerResourceMetadata.HatType loadHatType(Map<K, HatType> cache, String type, DefaultedRegistry<K> registry, K key) {
    return cache.computeIfAbsent(key, k -> {
        try (Resource res = resourceManager.getResource(findTexture(type, registry.getId(k)))) {
            VillagerResourceMetadata meta = res.getMetadata(VillagerResourceMetadata.READER);
            if (meta != null) {
                return meta.getHatType();
            }
        } catch (IOException e) { }
        return HatType.NONE;
    });
}
 
@SuppressWarnings("UnnecessaryQualifiedMemberReference")
@Redirect(method = "Lnet/minecraft/village/TradeOffers$TypeAwareBuyForOneEmeraldFactory;<init>(IIILjava/util/Map;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/registry/DefaultedRegistry;stream()Ljava/util/stream/Stream;"))
private Stream<VillagerType> skipCheck(DefaultedRegistry<VillagerType> defaultedRegistry) {
    return Stream.empty(); //skip check
}
 
 类所在包
 类方法
 同包方法