BeehiveFieldRenameFix.java
net.minecraft.util.datafix.fixes.BeehiveFieldRenameFix
信息
- 全限定名:net.minecraft.util.datafix.fixes.BeehiveFieldRenameFix
- 类型:public class
- 包:net.minecraft.util.datafix.fixes
- 源码路径:src/main/java/net/minecraft/util/datafix/fixes/BeehiveFieldRenameFix.java
- 起始行号:L13
- 继承:DataFix
- 职责:
TODO
字段/常量
- 无
内部类/嵌套类型
- 无
构造器
public BeehiveFieldRenameFix(Schema outputSchema) @ L14
- 构造器名:BeehiveFieldRenameFix
- 源码定位:L14
- 修饰符:public
参数:
- outputSchema: Schema
说明:
TODO
方法
下面的方法块按源码顺序生成。
private Dynamic<?> fixBeehive(Dynamic<?> beehive) @ L18
- 方法名:fixBeehive
- 源码定位:L18
- 返回类型:Dynamic<?>
- 修饰符:private
参数:
- beehive: Dynamic<?>
说明:
TODO
private Dynamic<?> fixBee(Dynamic<?> bee) @ L22
- 方法名:fixBee
- 源码定位:L22
- 返回类型:Dynamic<?>
- 修饰符:private
参数:
- bee: Dynamic<?>
说明:
TODO
public TypeRewriteRule makeRule() @ L28
- 方法名:makeRule
- 源码定位:L28
- 返回类型:TypeRewriteRule
- 修饰符:public
参数:
- 无
说明:
TODO
代码
public class BeehiveFieldRenameFix extends DataFix {
public BeehiveFieldRenameFix(Schema outputSchema) {
super(outputSchema, true);
}
private Dynamic<?> fixBeehive(Dynamic<?> beehive) {
return beehive.remove("Bees");
}
private Dynamic<?> fixBee(Dynamic<?> bee) {
bee = bee.remove("EntityData");
bee = bee.renameField("TicksInHive", "ticks_in_hive");
return bee.renameField("MinOccupationTicks", "min_ticks_in_hive");
}
@Override
public TypeRewriteRule makeRule() {
Type<?> beehiveType = this.getInputSchema().getChoiceType(References.BLOCK_ENTITY, "minecraft:beehive");
OpticFinder<?> beehiveF = DSL.namedChoice("minecraft:beehive", beehiveType);
ListType<?> beesType = (ListType<?>)beehiveType.findFieldType("Bees");
Type<?> beeType = beesType.getElement();
OpticFinder<?> beesF = DSL.fieldFinder("Bees", beesType);
OpticFinder<?> beeF = DSL.typeFinder(beeType);
Type<?> entityType = this.getInputSchema().getType(References.BLOCK_ENTITY);
Type<?> newEntityType = this.getOutputSchema().getType(References.BLOCK_ENTITY);
return this.fixTypeEverywhereTyped(
"BeehiveFieldRenameFix",
entityType,
newEntityType,
input -> ExtraDataFixUtils.cast(
newEntityType,
input.updateTyped(
beehiveF,
beehive -> beehive.update(DSL.remainderFinder(), this::fixBeehive)
.updateTyped(beesF, bees -> bees.updateTyped(beeF, bee -> bee.update(DSL.remainderFinder(), this::fixBee)))
)
)
);
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
ExtraDataFixUtils.cast()
- 引用位置:
-
- 引用位置:
参数/返回值
- 引用位置: