粉笔

基本信息

属性 值
modid modernmarkings
注册名 chalk
资源名 modernmarkings:chalk
实现类 modernmarkings.items.ItemBase
声明位置 modernmarkings.init.ModItems.CHALK
数量 1(本 mod 唯一的手持物品)
public static final Item CHALK = new ItemBase("chalk", "chalk");

它唯一的用途

全仓库对 CHALK 的引用只有两处,且都不是游戏内功能:

  1. ModTab#getTabIconItem() —— 创造模式标签页的图标
  2. 上面的声明本身
@Override
public Item getTabIconItem() {
    return new ItemStack(ModItems.CHALK).getItem();
}

没有任何其他功能

  • 没有合成配方:ModRecipes 里只有 FLOOR_MARKING_EXIT 与 WALL_MARKING_EXIT 两条配方,都用纸 + 木板,都不涉及粉笔。粉笔在生存模式下无法获得。
  • 没有燃料值:ModFuelHandler 判定的是 Block.getBlockFromItem(fuel.getItem()) instanceof BlockBase——只有方块物品返回 4 tick,普通 Item 一律返回 0。粉笔不是方块物品,因此烧不出任何时间。
  • 没有 Tooltip / 特殊能力:ItemBase 的构造函数只设了创造标签页、未本地化名和材质名,没有覆写任何 Item 方法。
  • 没有右键贴地功能:尽管叫「粉笔」、材质名也是 chalk,但没有任何代码让它画出或放置方块。

[!NOTE] 因此 chalk 是一个纯粹为图标而存在的占位物品——选它大概是因为「用粉笔在地面画标线」的意象贴切,但功能尚未实现。

创造模式标签页

ModernMarkings.CREATIVE_TAB 是一个 new ModTab("modernmarkings"),其内部 tab 名为 modernmarkings.modernmarkings(ModernMarkings.MODID + "." + name,name 恰好又等于 modid)。ItemBase 与 BlockBase 的构造函数都会 setCreativeTab(CREATIVE_TAB),所以 170 个方块物品和粉笔都归到这个标签页。

[!NOTE] 构造参数传的 "modernmarkings" 与 ModernMarkings.MODID 完全相同,因此最终 tab 标识符是 modernmarkings.modernmarkings(重复一次)。这与实际存档/配置中的字符串一致,不是笔误,但读起来重复。

相关条目