CauldronInteraction.java

net.minecraft.core.cauldron.CauldronInteraction

信息

  • 全限定名:net.minecraft.core.cauldron.CauldronInteraction
  • 类型:public interface
  • 包:net.minecraft.core.cauldron
  • 源码路径:src/main/java/net/minecraft/core/cauldron/CauldronInteraction.java
  • 起始行号:L17
  • 职责:

    TODO

字段/常量

  • DEFAULT
    • 类型: CauldronInteraction
    • 修饰符: package-private
    • 源码定位: L18
    • 说明:

      TODO

内部类/嵌套类型

  • net.minecraft.core.cauldron.CauldronInteraction.Dispatcher
    • 类型: class
    • 修饰符: public static
    • 源码定位: L22
    • 说明:

      TODO

构造器

方法

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

InteractionResult interact(BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, ItemStack itemInHand) @ L20

  • 方法名:interact
  • 源码定位:L20
  • 返回类型:InteractionResult
  • 修饰符:package-private

参数:

  • state: BlockState
  • level: Level
  • pos: BlockPos
  • player: Player
  • hand: InteractionHand
  • itemInHand: ItemStack

说明:

TODO

代码

@FunctionalInterface
public interface CauldronInteraction {
    CauldronInteraction DEFAULT = (var0, var1, var2, var3, var4, var5) -> InteractionResult.TRY_WITH_EMPTY_HAND;
 
    InteractionResult interact(BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, ItemStack itemInHand);
 
    public static class Dispatcher {
        private final Map<TagKey<Item>, CauldronInteraction> tags = new HashMap<>();
        private final Map<Item, CauldronInteraction> items = new HashMap<>();
 
        void put(Item item, CauldronInteraction interaction) {
            this.items.put(item, interaction);
        }
 
        void put(TagKey<Item> tag, CauldronInteraction interaction) {
            this.tags.put(tag, interaction);
        }
 
        public CauldronInteraction get(ItemStack itemStack) {
            for (Entry<TagKey<Item>, CauldronInteraction> e : this.tags.entrySet()) {
                if (itemStack.is(e.getKey())) {
                    return e.getValue();
                }
            }
 
            return this.items.getOrDefault(itemStack.getItem(), CauldronInteraction.DEFAULT);
        }
    }
}

引用的其他类