13 自定义物品和物品ToolTip
要使用KubeJS来添加物品,你需要使用事件item.registry
。该事件属于StartUp事件。
一、事件监听
你可以使用event.create("自定义物品ID")
语句来创建物品。
物品的材质应被放于kubejs/assets/kubejs/textures/item/物品ID.png
如果你想使用自定义的物品模型,你可以使用 Blockbench 制作然后把它放于kubejs/assets/kubejs/models/item/物品ID.json
此外,你还可以手动定义材质路径,详见下文。
注意:1.18.2中事件监听方式有修改,详见1.18.2 方块 / 物品注册修改 章节
二、ItemBuilder
你可以使用以下方法设定物品属性。
方法 | 描述 | 属性默认值 | 返回值 |
---|---|---|---|
type(ItemType 类型) | 设置物品类型[1](仅1.16) | basic | ItemBuilder |
tier(字符串 类型) | 设置物品Tier[2] | - | ItemBuilder |
modifyTier(tier => ...) | 自定义物品tier | - | ItemBuilder |
maxStackSize(整形 数量) | 设置物品单组最大数量 | 64 | ItemBuilder |
maxDamage(整形 耐久值) | 设置物品最大耐久值 | 0 | ItemBuilder |
burnTime(整形 燃烧时间) | (燃料)设置物品燃烧时间 | 0 | ItemBuilder |
containerItem(字符串 物品ID) | 设置物品容器ID[3] | "minecraft:air" | ItemBuilder |
subtypes(Function<ItemStackJS, Collection> fn) | 设置物品的SubTypes | null | ItemBuilder |
tool(ToolType 类型, 整形 等级) | 设置物品工具属性 | new HashMap<>() | ItemBuilder |
miningSpeed(浮点型 速度) | (工具)设置挖掘速度 | 1.0F | ItemBuilder |
attackDamage(浮点型 伤害) | (武器)设置攻击伤害 | - | ItemBuilder |
attackSpeed(浮点型 速度) | (武器)设置攻击速度 | - | ItemBuilder |
rarity(RarityWrapper 稀有度) | 设置物品稀有度 | RarityWrapper.COMMON | ItemBuilder |
glow(布尔值 是否发光) | 设置物品是否发光 | false | ItemBuilder |
tooltip(Component 文本) | 设置物品的ToolTip | new ArrayList<>() | ItemBuilder |
group(字符串 物品组) | 设置物品的创造物品栏位[4] | KubeJS.tab | ItemBuilder |
color(整形 index, 整形 c) | 设置物品颜色 | 0xFFFFFFFF | ItemBuilder |
texture(字符串 材质路径) | 手动设置物品材质 | 空字符串 | ItemBuilder |
parentModel(字符串 模型路径) | 手动设置物品模型 | 空字符串 | ItemBuilder |
food(Consumer b) | (转换为食物)设置食物属性 | null | ItemBuilder |
[1] 可用值有:basic(默认值)、sword、pickaxe、axe、shovel、hoe、helmet、chestplate、leggings、boots。
注意:1.18.2中该方法有修改,详见1.18.2 方块 / 物品注册修改 章节
[2] 工具类的tier类型有:wood、stone、iron、gold、diamond、netherite;护甲类的tier类型有:leather、chainmail、iron、gold、diamond、turtle、netherite
[3] 支持的方法同新建tier
[4] 即类似于岩浆桶和空桶之间的关系。
[5] 可用值有:search、buildingBlocks、decorations、redstone、transportation、misc、food、tools、combat、brewing
注:以上方法中attackDamage(浮点型 伤害)
、attackSpeed(浮点型 速度)
在1.16.5版本中可能无法生效,截至编辑本节时仍未修复。
以下为示例:
另请参阅:ItemBuilder、FoodBuilder、ItemFoodEatenEventJS
三、新建Tier
通过新建Tier你可以将一套属性快速应用于多个物品上。
在添加完毕以上tier后,你可以在type(ItemType 类型)
中传入你自己添加的tier_id
来应用它。
四、ToolTip
以下为部分示例:
另请参阅:ItemTooltipEventJS