HashedStack.java
net.minecraft.network.HashedStack
信息
- 全限定名:net.minecraft.network.HashedStack
- 类型:public interface
- 包:net.minecraft.network
- 源码路径:src/main/java/net/minecraft/network/HashedStack.java
- 起始行号:L12
- 职责:
TODO
字段/常量
-
EMPTY- 类型:
HashedStack - 修饰符:
public public - 源码定位:
L13 - 说明:
TODO
- 类型:
-
STREAM_CODEC- 类型:
StreamCodec<RegistryFriendlyByteBuf,HashedStack> - 修饰符:
package-private - 源码定位:
L24 - 说明:
TODO
- 类型:
内部类/嵌套类型
net.minecraft.network.HashedStack.ActualItem- 类型:
record - 修饰符:
public - 源码定位:
L38 - 说明:
TODO
- 类型:
构造器
- 无
方法
下面的方法块按源码顺序生成。
boolean matches(ItemStack stack, HashedPatchMap.HashGenerator hasher) @ L30
- 方法名:matches
- 源码定位:L30
- 返回类型:boolean
- 修饰符:package-private
参数:
- stack: ItemStack
- hasher: HashedPatchMap.HashGenerator
说明:
TODO
static HashedStack create(ItemStack itemStack, HashedPatchMap.HashGenerator hasher) @ L32
- 方法名:create
- 源码定位:L32
- 返回类型:HashedStack
- 修饰符:static
参数:
- itemStack: ItemStack
- hasher: HashedPatchMap.HashGenerator
说明:
TODO
代码
public interface HashedStack {
HashedStack EMPTY = new HashedStack() {
@Override
public String toString() {
return "<empty>";
}
@Override
public boolean matches(ItemStack stack, HashedPatchMap.HashGenerator hasher) {
return stack.isEmpty();
}
};
StreamCodec<RegistryFriendlyByteBuf, HashedStack> STREAM_CODEC = ByteBufCodecs.optional(HashedStack.ActualItem.STREAM_CODEC)
.map(
actualItem -> DataFixUtils.orElse((Optional<? extends HashedStack>)actualItem, EMPTY),
hashedStack -> hashedStack instanceof HashedStack.ActualItem actualItem ? Optional.of(actualItem) : Optional.empty()
);
boolean matches(ItemStack stack, HashedPatchMap.HashGenerator hasher);
static HashedStack create(ItemStack itemStack, HashedPatchMap.HashGenerator hasher) {
return (HashedStack)(itemStack.isEmpty()
? EMPTY
: new HashedStack.ActualItem(itemStack.typeHolder(), itemStack.getCount(), HashedPatchMap.create(itemStack.getComponentsPatch(), hasher)));
}
public record ActualItem(Holder<Item> item, int count, HashedPatchMap components) implements HashedStack {
public static final StreamCodec<RegistryFriendlyByteBuf, HashedStack.ActualItem> STREAM_CODEC = StreamCodec.composite(
ByteBufCodecs.holderRegistry(Registries.ITEM),
HashedStack.ActualItem::item,
ByteBufCodecs.VAR_INT,
HashedStack.ActualItem::count,
HashedPatchMap.STREAM_CODEC,
HashedStack.ActualItem::components,
HashedStack.ActualItem::new
);
@Override
public boolean matches(ItemStack itemStack, HashedPatchMap.HashGenerator hasher) {
if (this.count != itemStack.getCount()) {
return false;
} else {
return !this.item.equals(itemStack.typeHolder()) ? false : this.components.matches(itemStack.getComponentsPatch(), hasher);
}
}
}
}引用的其他类
-
- 引用位置:
参数/方法调用 - 关联成员:
HashedPatchMap.create()
- 引用位置:
-
- 引用位置:
字段
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
ByteBufCodecs.holderRegistry(), ByteBufCodecs.optional()
- 引用位置:
-
- 引用位置:
字段/方法调用 - 关联成员:
StreamCodec.composite()
- 引用位置:
-
- 引用位置:
参数
- 引用位置: