EntityHorseSaddleFix.java
net.minecraft.util.datafix.fixes.EntityHorseSaddleFix
信息
- 全限定名:net.minecraft.util.datafix.fixes.EntityHorseSaddleFix
- 类型:public class
- 包:net.minecraft.util.datafix.fixes
- 源码路径:src/main/java/net/minecraft/util/datafix/fixes/EntityHorseSaddleFix.java
- 起始行号:L13
- 继承:NamedEntityFix
- 职责:
TODO
字段/常量
- 无
内部类/嵌套类型
- 无
构造器
public EntityHorseSaddleFix(Schema outputSchema, boolean changesType) @ L14
- 构造器名:EntityHorseSaddleFix
- 源码定位:L14
- 修饰符:public
参数:
- outputSchema: Schema
- changesType: boolean
说明:
TODO
方法
下面的方法块按源码顺序生成。
protected Typed<?> fix(Typed<?> entity) @ L18
- 方法名:fix
- 源码定位:L18
- 返回类型:Typed<?>
- 修饰符:protected
参数:
- entity: Typed<?>
说明:
TODO
代码
public class EntityHorseSaddleFix extends NamedEntityFix {
public EntityHorseSaddleFix(Schema outputSchema, boolean changesType) {
super(outputSchema, changesType, "EntityHorseSaddleFix", References.ENTITY, "EntityHorse");
}
@Override
protected Typed<?> fix(Typed<?> entity) {
OpticFinder<Pair<String, String>> idF = DSL.fieldFinder("id", DSL.named(References.ITEM_NAME.typeName(), NamespacedSchema.namespacedString()));
Type<?> itemStackType = this.getInputSchema().getTypeRaw(References.ITEM_STACK);
OpticFinder<?> saddleF = DSL.fieldFinder("SaddleItem", itemStackType);
Optional<? extends Typed<?>> saddle = entity.getOptionalTyped(saddleF);
Dynamic<?> tag = entity.get(DSL.remainderFinder());
if (saddle.isEmpty() && tag.get("Saddle").asBoolean(false)) {
Typed<?> newSaddle = itemStackType.pointTyped(entity.getOps()).orElseThrow(IllegalStateException::new);
newSaddle = newSaddle.set(idF, Pair.of(References.ITEM_NAME.typeName(), "minecraft:saddle"));
Dynamic<?> saddleTag = tag.emptyMap();
saddleTag = saddleTag.set("Count", saddleTag.createByte((byte)1));
saddleTag = saddleTag.set("Damage", saddleTag.createShort((short)0));
newSaddle = newSaddle.set(DSL.remainderFinder(), saddleTag);
tag.remove("Saddle");
return entity.set(saddleF, newSaddle).set(DSL.remainderFinder(), tag);
} else {
return entity;
}
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
继承
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
NamespacedSchema.namespacedString()
- 引用位置: