EquipmentDispenseItemBehavior.java
net.minecraft.core.dispenser.EquipmentDispenseItemBehavior
信息
- 全限定名:net.minecraft.core.dispenser.EquipmentDispenseItemBehavior
- 类型:public class
- 包:net.minecraft.core.dispenser
- 源码路径:src/main/java/net/minecraft/core/dispenser/EquipmentDispenseItemBehavior.java
- 起始行号:L12
- 继承:DefaultDispenseItemBehavior
- 职责:
TODO
字段/常量
INSTANCE- 类型:
EquipmentDispenseItemBehavior - 修饰符:
public static final - 源码定位:
L13 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
- 无
方法
下面的方法块按源码顺序生成。
protected ItemStack execute(BlockSource source, ItemStack dispensed) @ L15
- 方法名:execute
- 源码定位:L15
- 返回类型:ItemStack
- 修饰符:protected
参数:
- source: BlockSource
- dispensed: ItemStack
说明:
TODO
public static boolean dispenseEquipment(BlockSource source, ItemStack dispensed) @ L20
- 方法名:dispenseEquipment
- 源码定位:L20
- 返回类型:boolean
- 修饰符:public static
参数:
- source: BlockSource
- dispensed: ItemStack
说明:
TODO
代码
public class EquipmentDispenseItemBehavior extends DefaultDispenseItemBehavior {
public static final EquipmentDispenseItemBehavior INSTANCE = new EquipmentDispenseItemBehavior();
@Override
protected ItemStack execute(BlockSource source, ItemStack dispensed) {
return dispenseEquipment(source, dispensed) ? dispensed : super.execute(source, dispensed);
}
public static boolean dispenseEquipment(BlockSource source, ItemStack dispensed) {
BlockPos pos = source.pos().relative(source.state().getValue(DispenserBlock.FACING));
List<LivingEntity> entities = source.level().getEntitiesOfClass(LivingEntity.class, new AABB(pos), entity -> entity.canEquipWithDispenser(dispensed));
if (entities.isEmpty()) {
return false;
} else {
LivingEntity target = entities.getFirst();
EquipmentSlot slot = target.getEquipmentSlotForItem(dispensed);
ItemStack equip = dispensed.split(1);
target.setItemSlot(slot, equip);
if (target instanceof Mob targetMob) {
targetMob.setGuaranteedDrop(slot);
targetMob.setPersistenceRequired();
}
return true;
}
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
继承
- 引用位置:
-
- 引用位置:
参数/返回值
- 引用位置:
-
- 引用位置:
构造调用 - 关联成员:
AABB()
- 引用位置: