VillagerDataFix.java
net.minecraft.util.datafix.fixes.VillagerDataFix
信息
- 全限定名:net.minecraft.util.datafix.fixes.VillagerDataFix
- 类型:public class
- 包:net.minecraft.util.datafix.fixes
- 源码路径:src/main/java/net/minecraft/util/datafix/fixes/VillagerDataFix.java
- 起始行号:L10
- 继承:NamedEntityFix
- 职责:
TODO
字段/常量
- 无
内部类/嵌套类型
- 无
构造器
public VillagerDataFix(Schema schema, String entityType) @ L11
- 构造器名:VillagerDataFix
- 源码定位:L11
- 修饰符:public
参数:
- schema: Schema
- entityType: String
说明:
TODO
方法
下面的方法块按源码顺序生成。
protected Typed<?> fix(Typed<?> entity) @ L15
- 方法名:fix
- 源码定位:L15
- 返回类型:Typed<?>
- 修饰符:protected
参数:
- entity: Typed<?>
说明:
TODO
private static String upgradeData(int profession, int career) @ L39
- 方法名:upgradeData
- 源码定位:L39
- 返回类型:String
- 修饰符:private static
参数:
- profession: int
- career: int
说明:
TODO
代码
public class VillagerDataFix extends NamedEntityFix {
public VillagerDataFix(Schema schema, String entityType) {
super(schema, false, "Villager profession data fix (" + entityType + ")", References.ENTITY, entityType);
}
@Override
protected Typed<?> fix(Typed<?> entity) {
Dynamic<?> remainder = entity.get(DSL.remainderFinder());
return entity.set(
DSL.remainderFinder(),
remainder.remove("Profession")
.remove("Career")
.remove("CareerLevel")
.set(
"VillagerData",
remainder.createMap(
ImmutableMap.of(
remainder.createString("type"),
remainder.createString("minecraft:plains"),
remainder.createString("profession"),
remainder.createString(upgradeData(remainder.get("Profession").asInt(0), remainder.get("Career").asInt(0))),
remainder.createString("level"),
DataFixUtils.orElse(remainder.get("CareerLevel").result(), remainder.createInt(1))
)
)
)
);
}
private static String upgradeData(int profession, int career) {
if (profession == 0) {
if (career == 2) {
return "minecraft:fisherman";
} else if (career == 3) {
return "minecraft:shepherd";
} else {
return career == 4 ? "minecraft:fletcher" : "minecraft:farmer";
}
} else if (profession == 1) {
return career == 2 ? "minecraft:cartographer" : "minecraft:librarian";
} else if (profession == 2) {
return "minecraft:cleric";
} else if (profession == 3) {
if (career == 2) {
return "minecraft:weaponsmith";
} else {
return career == 3 ? "minecraft:toolsmith" : "minecraft:armorer";
}
} else if (profession == 4) {
return career == 2 ? "minecraft:leatherworker" : "minecraft:butcher";
} else {
return profession == 5 ? "minecraft:nitwit" : "minecraft:none";
}
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
继承
- 引用位置: