HorseBodyArmorItemFix.java
net.minecraft.util.datafix.fixes.HorseBodyArmorItemFix
信息
- 全限定名:net.minecraft.util.datafix.fixes.HorseBodyArmorItemFix
- 类型:public class
- 包:net.minecraft.util.datafix.fixes
- 源码路径:src/main/java/net/minecraft/util/datafix/fixes/HorseBodyArmorItemFix.java
- 起始行号:L8
- 继承:NamedEntityWriteReadFix
- 职责:
TODO
字段/常量
-
previousBodyArmorTag- 类型:
String - 修饰符:
private final - 源码定位:
L9 - 说明:
TODO
- 类型:
-
clearArmorItems- 类型:
boolean - 修饰符:
private final - 源码定位:
L10 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public HorseBodyArmorItemFix(Schema outputSchema, String entityName, String previousBodyArmorTag, boolean clearArmorItems) @ L12
- 构造器名:HorseBodyArmorItemFix
- 源码定位:L12
- 修饰符:public
参数:
- outputSchema: Schema
- entityName: String
- previousBodyArmorTag: String
- clearArmorItems: boolean
说明:
TODO
方法
下面的方法块按源码顺序生成。
protected <T> Dynamic<T> fix(Dynamic<T> input) @ L18
- 方法名:fix
- 源码定位:L18
- 返回类型:
Dynamic - 修饰符:protected
参数:
- input: Dynamic
说明:
TODO
代码
public class HorseBodyArmorItemFix extends NamedEntityWriteReadFix {
private final String previousBodyArmorTag;
private final boolean clearArmorItems;
public HorseBodyArmorItemFix(Schema outputSchema, String entityName, String previousBodyArmorTag, boolean clearArmorItems) {
super(outputSchema, true, "Horse armor fix for " + entityName, References.ENTITY, entityName);
this.previousBodyArmorTag = previousBodyArmorTag;
this.clearArmorItems = clearArmorItems;
}
@Override
protected <T> Dynamic<T> fix(Dynamic<T> input) {
Optional<? extends Dynamic<?>> previousBodyArmor = input.get(this.previousBodyArmorTag).result();
if (previousBodyArmor.isPresent()) {
Dynamic<?> bodyArmorItem = (Dynamic<?>)previousBodyArmor.get();
Dynamic<T> output = input.remove(this.previousBodyArmorTag);
if (this.clearArmorItems) {
output = output.update(
"ArmorItems",
armorItems -> armorItems.createList(Streams.mapWithIndex(armorItems.asStream(), (entry, index) -> index == 2L ? entry.emptyMap() : entry))
);
output = output.update(
"ArmorDropChances",
armorDropChances -> armorDropChances.createList(
Streams.mapWithIndex(armorDropChances.asStream(), (entry, index) -> index == 2L ? entry.createFloat(0.085F) : entry)
)
);
}
output = output.set("body_armor_item", bodyArmorItem);
return output.set("body_armor_drop_chance", input.createFloat(2.0F));
} else {
return input;
}
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
继承
- 引用位置:
-
- 引用位置:
参数/返回值
- 引用位置: