Condition.java
net.minecraft.client.renderer.block.dispatch.multipart.Condition
信息
- 全限定名:net.minecraft.client.renderer.block.dispatch.multipart.Condition
- 类型:public interface
- 包:net.minecraft.client.renderer.block.dispatch.multipart
- 源码路径:src/main/java/net/minecraft/client/renderer/block/dispatch/multipart/Condition.java
- 起始行号:L18
- 职责:
TODO
字段/常量
CODEC- 类型:
Codec<Condition> - 修饰符:
default - 源码定位:
L19 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
- 无
方法
下面的方法块按源码顺序生成。
<O,S extends StateHolder<O,S>> Predicate<S> instantiate(StateDefinition<O,S> definition) @ L44
- 方法名:instantiate
- 源码定位:L44
- 返回类型:<O,S extends StateHolder<O,S>> Predicate
- 修饰符:package-private
参数:
- definition: StateDefinition<O,S>
说明:
TODO
代码
@FunctionalInterface
@OnlyIn(Dist.CLIENT)
public interface Condition {
Codec<Condition> CODEC = Codec.recursive(
"condition",
self -> {
Codec<CombinedCondition> combinerCodec = Codec.simpleMap(
CombinedCondition.Operation.CODEC, self.listOf(), StringRepresentable.keys(CombinedCondition.Operation.values())
)
.codec()
.comapFlatMap(map -> {
if (map.size() != 1) {
return DataResult.error(() -> "Invalid map size for combiner condition, expected exactly one element");
} else {
Entry<CombinedCondition.Operation, List<Condition>> entry = map.entrySet().iterator().next();
return DataResult.success(new CombinedCondition(entry.getKey(), entry.getValue()));
}
}, condition -> Map.of(condition.operation(), condition.terms()));
return Codec.either(combinerCodec, KeyValueCondition.CODEC).flatComapMap(either -> either.map(l -> l, r -> r), condition -> {
return switch (condition) {
case CombinedCondition combiner -> DataResult.success(Either.left(combiner));
case KeyValueCondition keyValue -> DataResult.success(Either.right(keyValue));
default -> DataResult.error(() -> "Unrecognized condition");
};
});
}
);
<O, S extends StateHolder<O, S>> Predicate<S> instantiate(StateDefinition<O, S> definition);
}引用的其他类
-
- 引用位置:
方法调用/构造调用 - 关联成员:
CombinedCondition(), CombinedCondition.Operation.values()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
StringRepresentable.keys()
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
返回值
- 引用位置: