EmptyItemInHotbarFix.java
net.minecraft.util.datafix.fixes.EmptyItemInHotbarFix
信息
- 全限定名:net.minecraft.util.datafix.fixes.EmptyItemInHotbarFix
- 类型:public class
- 包:net.minecraft.util.datafix.fixes
- 源码路径:src/main/java/net/minecraft/util/datafix/fixes/EmptyItemInHotbarFix.java
- 起始行号:L15
- 继承:DataFix
- 职责:
TODO
字段/常量
- 无
内部类/嵌套类型
- 无
构造器
public EmptyItemInHotbarFix(Schema outputSchema) @ L16
- 构造器名:EmptyItemInHotbarFix
- 源码定位:L16
- 修饰符:public
参数:
- outputSchema: Schema
说明:
TODO
方法
下面的方法块按源码顺序生成。
public TypeRewriteRule makeRule() @ L20
- 方法名:makeRule
- 源码定位:L20
- 返回类型:TypeRewriteRule
- 修饰符:public
参数:
- 无
说明:
TODO
代码
public class EmptyItemInHotbarFix extends DataFix {
public EmptyItemInHotbarFix(Schema outputSchema) {
super(outputSchema, false);
}
@Override
public TypeRewriteRule makeRule() {
OpticFinder<Pair<String, Pair<Either<Pair<String, String>, Unit>, Pair<Either<?, Unit>, Dynamic<?>>>>> itemStackF = DSL.typeFinder(
(Type<Pair<String, Pair<Either<Pair<String, String>, Unit>, Pair<Either<?, Unit>, Dynamic<?>>>>>)this.getInputSchema()
.getType(References.ITEM_STACK)
);
return this.fixTypeEverywhereTyped(
"EmptyItemInHotbarFix",
this.getInputSchema().getType(References.HOTBAR),
input -> input.update(itemStackF, namedStack -> namedStack.mapSecond(itemStack -> {
Optional<String> id = itemStack.getFirst().left().map(Pair::getSecond);
Dynamic<?> remainder = itemStack.getSecond().getSecond();
boolean isAir = id.isEmpty() || id.get().equals("minecraft:air");
boolean isEmpty = remainder.get("Count").asInt(0) <= 0;
return !isAir && !isEmpty ? itemStack : Pair.of(Either.right(Unit.INSTANCE), Pair.of(Either.right(Unit.INSTANCE), remainder.emptyMap()));
}))
);
}
}引用的其他类
- Schema
- 引用位置:
参数
- 引用位置: