782 发表于 2022-5-8 20:02:24

附加包教程第八期——物品:基础

本帖最后由 782 于 2022-6-6 18:20 编辑


物品(一)
基础
一、简介
物品既需要一个行为包文件来确定物品的作用,也需要一个资源包文件来确定物品的外观。
在本期教程中,我们将会理解物品的基础组件。
static/image/hrline/line4.png
二、行为包文件示例与详解
路径:行为包/items/物品名称.item.json
示例:
{
    "format_version": "1.10",
    "minecraft:item": {
      "description": {
            "identifier": "demo:my_item"
      },
      "components": {
            "minecraft:hand_equipped": false,
            "minecraft:stacked_by_data": true,
            "minecraft:foil": false,
            "minecraft:max_stack_size": 64
      }
    }
}
详解:
“format_version”定义文件使用的版本,填写字符串。
在这里,我们将使用1.10,
以后学到高级的物品组件时,会使用1.16.100。

“description”里面的“identifier”定义了物品的名称,填写字符串
一定要使用命名空间!

“components”定义了物品的功能:

[*]“minecraft:hand_equipped”定义物品是否“装备”在手中,填写布尔值。
这控制了物品在玩家等生物手上的显示方式。
例如,木剑能在手上“装备”,但苹果不能。
[*]“minecraft:stacked_by_data”定义此具有不同数据值的物品是否能够堆叠,填写布尔值。
[*]"minecraft:foil"定义物品上是否会有附魔的光芒,填写布尔值。
例如,附魔武器将此组件设置为true。
[*]“minecraft:max_stack_size”物品的最大堆叠数量,填写整数。
看到这里,你是不是觉得可以做终极堆叠了?当然不行,因为它不能大于64。
对于不可堆叠的物品,请将此设置为1。

如果你现在导入并激活附加包后进入游戏,物品将正常存在,但它没有纹理。
可以通过执行“/give @s 物品名称”命令来测试物品。
现在,让我们在资源包文件夹中定义物品的纹理和其他资源文件。
static/image/hrline/line2.png
三、资源包文件示例与详解
路径:资源包/items/物品名称.item.json
示例:
{
    "format_version": "1.10",
    "minecraft:item": {
      "description": {
            "identifier": "demo:my_item",
            "category": "Nature"
      },
      "components": {
            "minecraft:icon": "my_icon",
            "minecraft:render_offsets": "tools"
      }
    }
}

详解:
“format_version”和行为包文件中的一样,填写字符串。

在“description”下设置相同的标识符“identifier”,填写字符串。
就像在物品的行为包文件中一样,这会将物品的资源包文件与行为包文件联系起来。

“category”定义物品栏中物品的类别,填写字符串。
可以设置为“Nature”(自然)、“Equipment”(装备)、“Construction”(建筑)或“Items”(物品)。

资源文件中的“components”现在定义物品的显示方式:

[*]“minecraft:render_offsets”定义了物品应该如何呈现,填写字符串。
它可以设置为几乎任何原版物品名称,例如“apple”。
[*]“minecraft:icon”定义了物品的纹理,填写字符串。
接下来,让我们更深入地研究一下物品纹理。

static/image/hrline/line7.png
四、物品纹理与纹理短名称
要定义物品纹理的短名称(在物品上使用纹理),首先需要创建纹理。
创建一个正方形图像,并将其保存到 资源包/textures/items/图像名称.png。
现在让我们在textures文件夹创建一个定义物品纹理短名称的文件:item_texture.json,
下面示例中,以textures/items/my_item.png作为纹理。
路径:资源包/textures/item_texture.json
示例:
{
    "resource_pack_name": "demo",
    "texture_name": "atlas.items",
    "texture_data": {
      "my_icon": {
            "textures": "textures/items/my_item"
      }
    }
}
详解:
“resource_pack_name”是资源包的名称,填写字符串。
不用填写真实的资源包名称,可以将其设置为命名空间或其他字符。

“texture_name”定义此文件包含哪些类型的纹理,填写字符串。
由于这个文件针对于项目,我们将其设置为“atlas.items”即可。

我们在“texture_data”对象中定义所有项目纹理短名称。
“my_icon”是添加的路径为“textures/items/my_item”纹理的缩写,注意不要有后缀名!
这是在物品资源包文件的 minecraft:icon组件中定义的纹理名称。
static/image/hrline/line3.png
五、定义.lang文件
物品创建成功后,在游戏中会显示lang代码,
我们只需要在 资源包/texts/zh_CN.lang 文件中添加lang代码与定义即可。
示例:
item.demo:my_item.name=我的第一个物品
static/image/hrline/line9.png
六、本期文件下载
行为包物品文件示例:
资源包物品文件示例:
item_texture.json文件示例:
static/image/hrline/5.gif
预告:下一期会带大家创建一个可食用的物品
大家的打赏是对楼主最好的鼓励!

附加包教程系列导航
上一期下一期

粗粗复方一 发表于 2022-5-9 10:36:39

能不能教一下怎么给模组武器加自带附魔效果

782 发表于 2022-5-9 18:05:11

粗粗复方一 发表于 2022-5-9 10:36
能不能教一下怎么给模组武器加自带附魔效果

可能有点难,但我会尽量尝试的

基岩星涵 发表于 2022-6-16 20:04:20

苹果为什么不能在手上装备啊?是什么意思啊?

782 发表于 2022-6-16 21:17:18

基岩星涵 发表于 2022-6-16 20:04
苹果为什么不能在手上装备啊?是什么意思啊?

指mc里的,不是苹果手机

虹蓝梅七 发表于 2022-7-28 16:03:26

我也这么做了,结果不是不能现实就是紫黑方块,气的我想爆锤mojang

一只呆明球 发表于 2022-10-2 14:20:04

如果整一个铁面包会是什么样子[贴吧_滑稽]

粤湛猫? 发表于 2023-1-19 19:35:07

6666666666

Philosophyer 发表于 2023-3-25 16:34:17

怎么像原版一样多个物品共用一个ID

XingQiu2307 发表于 2023-5-1 21:40:31

粗粗复方一 发表于 2022-5-9 10:36
能不能教一下怎么给模组武器加自带附魔效果


{
    "format_version": "1.10",
    "minecraft:item": {
      "components": {
            "minecraft:foil": true
      },
      "description": {
            "category": "?",
            "identifier": "?:?"
      }
    }
//"minecraft:foil"即附魔闪烁效果


页: [1]2
查看完整版本: 附加包教程第八期——物品:基础