LockCode.java
net.minecraft.world.LockCode
信息
- 全限定名:net.minecraft.world.LockCode
- 类型:public record
- 包:net.minecraft.world
- 源码路径:src/main/java/net/minecraft/world/LockCode.java
- 起始行号:L11
- 职责:
TODO
字段/常量
-
NO_LOCK- 类型:
LockCode - 修饰符:
public static final - 源码定位:
L12 - 说明:
TODO
- 类型:
-
CODEC- 类型:
Codec<LockCode> - 修饰符:
public static final - 源码定位:
L13 - 说明:
TODO
- 类型:
-
TAG_LOCK- 类型:
String - 修饰符:
public static final - 源码定位:
L14 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
- 无
方法
下面的方法块按源码顺序生成。
public boolean unlocksWith(ItemStack itemStack) @ L16
- 方法名:unlocksWith
- 源码定位:L16
- 返回类型:boolean
- 修饰符:public
参数:
- itemStack: ItemStack
说明:
TODO
public void addToTag(ValueOutput parent) @ L20
- 方法名:addToTag
- 源码定位:L20
- 返回类型:void
- 修饰符:public
参数:
- parent: ValueOutput
说明:
TODO
public boolean canUnlock(Player player) @ L26
- 方法名:canUnlock
- 源码定位:L26
- 返回类型:boolean
- 修饰符:public
参数:
- player: Player
说明:
TODO
public static LockCode fromTag(ValueInput parent) @ L30
- 方法名:fromTag
- 源码定位:L30
- 返回类型:LockCode
- 修饰符:public static
参数:
- parent: ValueInput
说明:
TODO
代码
public record LockCode(ItemPredicate predicate) {
public static final LockCode NO_LOCK = new LockCode(ItemPredicate.Builder.item().build());
public static final Codec<LockCode> CODEC = ItemPredicate.CODEC.xmap(LockCode::new, LockCode::predicate);
public static final String TAG_LOCK = "lock";
public boolean unlocksWith(ItemStack itemStack) {
return this.predicate.test((ItemInstance)itemStack);
}
public void addToTag(ValueOutput parent) {
if (this != NO_LOCK) {
parent.store("lock", CODEC, this);
}
}
public boolean canUnlock(Player player) {
return player.isSpectator() || this.unlocksWith(player.getMainHandItem());
}
public static LockCode fromTag(ValueInput parent) {
return parent.read("lock", CODEC).orElse(NO_LOCK);
}
}引用的其他类
-
- 引用位置:
方法调用 - 关联成员:
ItemPredicate.Builder.item()
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置: