RemapChunkStatusFix.java
net.minecraft.util.datafix.fixes.RemapChunkStatusFix
信息
- 全限定名:net.minecraft.util.datafix.fixes.RemapChunkStatusFix
- 类型:public class
- 包:net.minecraft.util.datafix.fixes
- 源码路径:src/main/java/net/minecraft/util/datafix/fixes/RemapChunkStatusFix.java
- 起始行号:L13
- 继承:DataFix
- 职责:
TODO
字段/常量
-
name- 类型:
String - 修饰符:
private final - 源码定位:
L14 - 说明:
TODO
- 类型:
-
mapper- 类型:
UnaryOperator<String> - 修饰符:
private final - 源码定位:
L15 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public RemapChunkStatusFix(Schema schema, String name, UnaryOperator<String> mapper) @ L17
- 构造器名:RemapChunkStatusFix
- 源码定位:L17
- 修饰符:public
参数:
- schema: Schema
- name: String
- mapper: UnaryOperator
说明:
TODO
方法
下面的方法块按源码顺序生成。
protected TypeRewriteRule makeRule() @ L23
- 方法名:makeRule
- 源码定位:L23
- 返回类型:TypeRewriteRule
- 修饰符:protected
参数:
- 无
说明:
TODO
private <T> Dynamic<T> fixStatus(Dynamic<T> dynamic) @ L36
- 方法名:fixStatus
- 源码定位:L36
- 返回类型:
Dynamic - 修饰符:private
参数:
- dynamic: Dynamic
说明:
TODO
代码
public class RemapChunkStatusFix extends DataFix {
private final String name;
private final UnaryOperator<String> mapper;
public RemapChunkStatusFix(Schema schema, String name, UnaryOperator<String> mapper) {
super(schema, false);
this.name = name;
this.mapper = mapper;
}
@Override
protected TypeRewriteRule makeRule() {
return this.fixTypeEverywhereTyped(
this.name,
this.getInputSchema().getType(References.CHUNK),
input -> input.update(
DSL.remainderFinder(),
data -> data.update("Status", this::fixStatus)
.update("below_zero_retrogen", belowZeroRetrogen -> belowZeroRetrogen.update("target_status", this::fixStatus))
)
);
}
private <T> Dynamic<T> fixStatus(Dynamic<T> dynamic) {
Optional<Dynamic<T>> remapped = dynamic.asString().result().map(NamespacedSchema::ensureNamespaced).map(this.mapper).map(dynamic::createString);
return DataFixUtils.orElse(remapped, dynamic);
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数/返回值
- 引用位置: