AbstractBlockPropertyFix.java
net.minecraft.util.datafix.fixes.AbstractBlockPropertyFix
信息
- 全限定名:net.minecraft.util.datafix.fixes.AbstractBlockPropertyFix
- 类型:public abstract class
- 包:net.minecraft.util.datafix.fixes
- 源码路径:src/main/java/net/minecraft/util/datafix/fixes/AbstractBlockPropertyFix.java
- 起始行号:L11
- 继承:DataFix
- 职责:
TODO
字段/常量
name- 类型:
String - 修饰符:
private final - 源码定位:
L12 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public AbstractBlockPropertyFix(Schema outputSchema, String name) @ L14
- 构造器名:AbstractBlockPropertyFix
- 源码定位:L14
- 修饰符:public
参数:
- outputSchema: Schema
- name: String
说明:
TODO
方法
下面的方法块按源码顺序生成。
protected TypeRewriteRule makeRule() @ L19
- 方法名:makeRule
- 源码定位:L19
- 返回类型:TypeRewriteRule
- 修饰符:protected
参数:
- 无
说明:
TODO
private Dynamic<?> fixBlockState(Dynamic<?> tag) @ L26
- 方法名:fixBlockState
- 源码定位:L26
- 返回类型:Dynamic<?>
- 修饰符:private
参数:
- tag: Dynamic<?>
说明:
TODO
protected abstract boolean shouldFix(String blockId) @ L33
- 方法名:shouldFix
- 源码定位:L33
- 返回类型:boolean
- 修饰符:protected abstract
参数:
- blockId: String
说明:
TODO
protected abstract <T> Dynamic<T> fixProperties(String blockId, Dynamic<T> properties) @ L35
- 方法名:fixProperties
- 源码定位:L35
- 返回类型:
Dynamic - 修饰符:protected abstract
参数:
- blockId: String
- properties: Dynamic
说明:
TODO
代码
public abstract class AbstractBlockPropertyFix extends DataFix {
private final String name;
public AbstractBlockPropertyFix(Schema outputSchema, String name) {
super(outputSchema, false);
this.name = name;
}
@Override
protected TypeRewriteRule makeRule() {
return this.fixTypeEverywhereTyped(
this.name, this.getInputSchema().getType(References.BLOCK_STATE), input -> input.update(DSL.remainderFinder(), this::fixBlockState)
);
}
private Dynamic<?> fixBlockState(Dynamic<?> tag) {
Optional<String> blockId = tag.get("Name").asString().result().map(NamespacedSchema::ensureNamespaced);
return blockId.isPresent() && this.shouldFix(blockId.get())
? tag.update("Properties", properties -> this.fixProperties(blockId.get(), properties))
: tag;
}
protected abstract boolean shouldFix(String blockId);
protected abstract <T> Dynamic<T> fixProperties(String blockId, Dynamic<T> properties);
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数/返回值
- 引用位置: