SpawnEggItemBehavior.java

net.minecraft.core.dispenser.SpawnEggItemBehavior

信息

  • 全限定名:net.minecraft.core.dispenser.SpawnEggItemBehavior
  • 类型:public class
  • 包:net.minecraft.core.dispenser
  • 源码路径:src/main/java/net/minecraft/core/dispenser/SpawnEggItemBehavior.java
  • 起始行号:L11
  • 继承:DefaultDispenseItemBehavior
  • 职责:

    TODO

字段/常量

  • INSTANCE
    • 类型: SpawnEggItemBehavior
    • 修饰符: public static final
    • 源码定位: L12
    • 说明:

      TODO

内部类/嵌套类型

构造器

方法

下面的方法块按源码顺序生成。

public ItemStack execute(BlockSource source, ItemStack dispensed) @ L14

  • 方法名:execute
  • 源码定位:L14
  • 返回类型:ItemStack
  • 修饰符:public

参数:

  • source: BlockSource
  • dispensed: ItemStack

说明:

TODO

代码

public class SpawnEggItemBehavior extends DefaultDispenseItemBehavior {
    public static final SpawnEggItemBehavior INSTANCE = new SpawnEggItemBehavior();
 
    @Override
    public ItemStack execute(BlockSource source, ItemStack dispensed) {
        Direction direction = source.state().getValue(DispenserBlock.FACING);
        EntityType<?> type = SpawnEggItem.getType(dispensed);
        if (type == null) {
            return dispensed;
        } else {
            try {
                type.spawn(source.level(), dispensed, null, source.pos().relative(direction), EntitySpawnReason.DISPENSER, direction != Direction.UP, false);
            } catch (Exception var6) {
                LOGGER.error("Error while dispensing spawn egg from dispenser at {}", source.pos(), var6);
                return ItemStack.EMPTY;
            }
 
            dispensed.shrink(1);
            source.level().gameEvent(null, GameEvent.ENTITY_PLACE, source.pos());
            return dispensed;
        }
    }
}

引用的其他类