AbstractUUIDFix.java
net.minecraft.util.datafix.fixes.AbstractUUIDFix
信息
- 全限定名:net.minecraft.util.datafix.fixes.AbstractUUIDFix
- 类型:public abstract class
- 包:net.minecraft.util.datafix.fixes
- 源码路径:src/main/java/net/minecraft/util/datafix/fixes/AbstractUUIDFix.java
- 起始行号:L15
- 继承:DataFix
- 职责:
TODO
字段/常量
typeReference- 类型:
TypeReference - 修饰符:
protected final - 源码定位:
L16 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public AbstractUUIDFix(Schema outputSchema, TypeReference typeReference) @ L18
- 构造器名:AbstractUUIDFix
- 源码定位:L18
- 修饰符:public
参数:
- outputSchema: Schema
- typeReference: TypeReference
说明:
TODO
方法
下面的方法块按源码顺序生成。
protected Typed<?> updateNamedChoice(Typed<?> input, String name, Function<Dynamic<?>,Dynamic<?>> function) @ L23
- 方法名:updateNamedChoice
- 源码定位:L23
- 返回类型:Typed<?>
- 修饰符:protected
参数:
- input: Typed<?>
- name: String
- function: Function<Dynamic,Dynamic>
说明:
TODO
protected static Optional<Dynamic<?>> replaceUUIDString(Dynamic<?> tag, String oldKey, String newKey) @ L29
- 方法名:replaceUUIDString
- 源码定位:L29
- 返回类型:Optional<Dynamic<?>>
- 修饰符:protected static
参数:
- tag: Dynamic<?>
- oldKey: String
- newKey: String
说明:
TODO
protected static Optional<Dynamic<?>> replaceUUIDMLTag(Dynamic<?> tag, String oldKey, String newKey) @ L33
- 方法名:replaceUUIDMLTag
- 源码定位:L33
- 返回类型:Optional<Dynamic<?>>
- 修饰符:protected static
参数:
- tag: Dynamic<?>
- oldKey: String
- newKey: String
说明:
TODO
protected static Optional<Dynamic<?>> replaceUUIDLeastMost(Dynamic<?> tag, String oldKey, String newKey) @ L37
- 方法名:replaceUUIDLeastMost
- 源码定位:L37
- 返回类型:Optional<Dynamic<?>>
- 修饰符:protected static
参数:
- tag: Dynamic<?>
- oldKey: String
- newKey: String
说明:
TODO
protected static Optional<Dynamic<?>> createUUIDFromString(Dynamic<?> tag, String oldKey) @ L43
- 方法名:createUUIDFromString
- 源码定位:L43
- 返回类型:Optional<Dynamic<?>>
- 修饰符:protected static
参数:
- tag: Dynamic<?>
- oldKey: String
说明:
TODO
protected static Optional<Dynamic<?>> createUUIDFromML(Dynamic<?> tag) @ L58
- 方法名:createUUIDFromML
- 源码定位:L58
- 返回类型:Optional<Dynamic<?>>
- 修饰符:protected static
参数:
- tag: Dynamic<?>
说明:
TODO
protected static Optional<Dynamic<?>> createUUIDFromLongs(Dynamic<?> tag, String mostKey, String leastKey) @ L62
- 方法名:createUUIDFromLongs
- 源码定位:L62
- 返回类型:Optional<Dynamic<?>>
- 修饰符:protected static
参数:
- tag: Dynamic<?>
- mostKey: String
- leastKey: String
说明:
TODO
protected static Optional<Dynamic<?>> createUUIDTag(Dynamic<?> tag, long mostSignificantBits, long leastSignificantBits) @ L68
- 方法名:createUUIDTag
- 源码定位:L68
- 返回类型:Optional<Dynamic<?>>
- 修饰符:protected static
参数:
- tag: Dynamic<?>
- mostSignificantBits: long
- leastSignificantBits: long
说明:
TODO
代码
public abstract class AbstractUUIDFix extends DataFix {
protected final TypeReference typeReference;
public AbstractUUIDFix(Schema outputSchema, TypeReference typeReference) {
super(outputSchema, false);
this.typeReference = typeReference;
}
protected Typed<?> updateNamedChoice(Typed<?> input, String name, Function<Dynamic<?>, Dynamic<?>> function) {
Type<?> oldType = this.getInputSchema().getChoiceType(this.typeReference, name);
Type<?> newType = this.getOutputSchema().getChoiceType(this.typeReference, name);
return input.updateTyped(DSL.namedChoice(name, oldType), newType, typedTag -> typedTag.update(DSL.remainderFinder(), function));
}
protected static Optional<Dynamic<?>> replaceUUIDString(Dynamic<?> tag, String oldKey, String newKey) {
return createUUIDFromString(tag, oldKey).map(uuidTag -> tag.remove(oldKey).set(newKey, (Dynamic<?>)uuidTag));
}
protected static Optional<Dynamic<?>> replaceUUIDMLTag(Dynamic<?> tag, String oldKey, String newKey) {
return tag.get(oldKey).result().flatMap(AbstractUUIDFix::createUUIDFromML).map(uuidTag -> tag.remove(oldKey).set(newKey, (Dynamic<?>)uuidTag));
}
protected static Optional<Dynamic<?>> replaceUUIDLeastMost(Dynamic<?> tag, String oldKey, String newKey) {
String mostKey = oldKey + "Most";
String leastKey = oldKey + "Least";
return createUUIDFromLongs(tag, mostKey, leastKey).map(uuidTag -> tag.remove(mostKey).remove(leastKey).set(newKey, (Dynamic<?>)uuidTag));
}
protected static Optional<Dynamic<?>> createUUIDFromString(Dynamic<?> tag, String oldKey) {
return tag.get(oldKey).result().flatMap(uuidStringTag -> {
String uuidString = uuidStringTag.asString(null);
if (uuidString != null) {
try {
UUID uuid = UUID.fromString(uuidString);
return createUUIDTag(tag, uuid.getMostSignificantBits(), uuid.getLeastSignificantBits());
} catch (IllegalArgumentException var4) {
}
}
return Optional.empty();
});
}
protected static Optional<Dynamic<?>> createUUIDFromML(Dynamic<?> tag) {
return createUUIDFromLongs(tag, "M", "L");
}
protected static Optional<Dynamic<?>> createUUIDFromLongs(Dynamic<?> tag, String mostKey, String leastKey) {
long mostSignificantBits = tag.get(mostKey).asLong(0L);
long leastSignificantBits = tag.get(leastKey).asLong(0L);
return mostSignificantBits != 0L && leastSignificantBits != 0L ? createUUIDTag(tag, mostSignificantBits, leastSignificantBits) : Optional.empty();
}
protected static Optional<Dynamic<?>> createUUIDTag(Dynamic<?> tag, long mostSignificantBits, long leastSignificantBits) {
return Optional.of(
tag.createIntList(
Arrays.stream(
new int[]{(int)(mostSignificantBits >> 32), (int)mostSignificantBits, (int)(leastSignificantBits >> 32), (int)leastSignificantBits}
)
)
);
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数/返回值
- 引用位置: