782 发表于 2022-6-3 14:57:46

附加包教程第十七期——物品:物品组件(1)

本帖最后由 782 于 2022-6-4 15:31 编辑


物品(十)
物品组件(1)
一、前言
上一期,我们学习了有关物品的事件函数;
今天,我们就来学习物品的组件。
提示:由于这些组件均为1.16.100实验性组件,必须打开“假日创造者功能”实验性玩法!
(没有作用或功能未知的均不列出)
备注:内容太多,分两期
static/image/hrline/line4.png
二、正文
minecraft:damage
定义物品的伤害点数
示例:
{
    "minecraft:damage": 5
}

minecraft:armor
定义盔甲给予的护甲值等内容
参数:

[*]“protection”:定义盔甲给予的护甲值,填写整数。
[*]“texture_type”:(具体功能未知)定义适用于盔甲的纹理类型,填写字符串。
可用值:
none:无
leather:皮革
chain:锁链
iron:铁
diamond:钻石
gold:金
elytra:鞘翅
turtle:海龟壳
netherite:下界合金

示例:
{
    "minecraft:armor":{
      "protection": 5,
      "texture_type": "diamond"
    }
}

minecraft:block_placer
让物品可以在某种方块上放置方块
参数:

[*]“block”:指定要放置的方块,填写字符串。
[*]“use_on”:指定方块可以放在什么方块上的一个数组或字符串。留空则允许所有方块。

示例:
{
    "minecraft:block_placer":{
      "block": "seeds",
      "use_on" : ["dirt", "grass"]
    }
}

minecraft:cooldown
设置物品使用后的冷却时间
参数:

[*]“category”:指定冷却的类型,填写字符串。可能是自定义字符串。
[*]“duration”:定义冷却时间,单位为秒,填写浮点数(小数)。

示例:
{
    "minecraft:cooldown":{
      "category" : "ender_pearl",
      "duration" : 0.2
    }
}

minecraft:digger
定义物品可以挖掘的方块及速度
参数:

[*]“use_efficiency”:指定物品是否可以使用效率附魔加快挖掘速度,默认为false,填写布尔值。
[*]“destroy_speeds”:定义挖掘方块的类型与速度等内容,数组内还包含:

[*]“block”:指定挖掘的方块,填写字符串。亦可使用方块标签。
[*]“speed”:定义挖掘速度,填写整数。
[*]“on_dig”内的“event”:指定挖掘此方块后执行的事件,填写字符串。
[*]“on_dig”内的“event”:指定挖掘任何方块后后执行的事件,填写字符串。

示例:
{
    "minecraft:digger": {
      "use_efficiency": true,
      "destroy_speeds": [
            {
                "block": {
                  "tags": "query.any_tag('stone', 'metal')"
                },
                "speed": 6,
                "on_dig": {
                  "event": "on_dig"
                }
            }
      ]
    }
}

minecraft:display_name
定义物品的显示名称
示例:
{
    "minecraft:display_name":{
      "value": "secret_weapon"//显示名称
    }
}

minecraft:durability
定义物品的耐久度等信息
参数:

[*]“damage_chance”:定义使用后耐久度减少的概率,填写整数或浮点数(小数),默认为100。
[*]“max_durability”:定义物品的最大耐久值,填写整数。

示例:
{
    "minecraft:durability":{
      "damage_chance": 0.015, //15%
      "max_durability": 36
    }
}

minecraft:dye_powder
为染料定义颜色
参数:

[*]“color”:定义该染料是哪种颜色,填写字符串。
可填值:
“black”:黑色
“red”:红色
“green”:绿色
“brown”:棕色
“blue”:蓝色
“purple”:紫色
“cyan”:青色
“silver”:银色
“gray”:灰色
“pink”:粉色
“lime”:酸橙色
“yellow”:黄色
“lightblue”:亮蓝色
“magenta”:红紫色
“orange”:橙色
“white”:白色

示例:
{
    "minecraft:dye_powder":{
      "color" : "purple"
    }
}

minecraft:entity_placer
让物品可以在某种方块上生成实体
参数:

[*]“dispense_on”:指定该物品可以被发射器发射在其上的方块,是一个数组或字符串。留空则允许所有方块。
[*]“entity”:要生成的实体,填写字符串。
[*]“use_on”:指定方块可以放在什么方块上的一个数组或字符串。留空则允许所有方块。

示例:
{
    "minecraft:entity_placer":{
      "dispense_on": "",
      "entity" : "minecraft:spider",
      "use_on" : "minecraft:web"
    }
}

minecraft:food
定义可食用物品(食物)
参数:

[*]“can_always_eat”:说明食物是否在不饥饿时食用,默认为false,填写布尔值。
[*]“effects”:定义食物食用后给予的效果,内有参数:
“name”指定了效果名称,填写字符串。
“chance”指定获得该效果的概率,填写浮点数(小数)。
填写的数就是把百分比换算成小数结果,
例如,食用生鸡肉有30%的概率获得饥饿效果,就填写“0.3”表示30%。
“duration”表示效果获得后持续的时间,填写整数。
这里和上方截然相反,这里是秒,不是游戏刻。
“amplifier”表示效果等级,填写整数。
[*]“nutrition”:定义食物食用后所恢复的饥饿值,默认为0,填写整数。
[*]“on_consume”:定义食物食用后执行的事件。
[*]“saturation_modifier”:定义食物所恢复饱和度与恢复饥饿值公式的字符串,可用的值有:
“poor”(差)、“low”(低)、“normal”(普通)、“high”(高)、“good”(好)、“max”(极好)、“supernatural”(超自然)
[*]“using_converts_to”:食物被食用后,将会转换为什么东西,填写字符串。

示例:
{
    "minecraft:food":{
       "can_always_eat": false,
      "nutrition" : 3,
      "effects" : [
            {
                "name": "poison",
                "chance": 1.0,
                "duration": 5,
                "amplifier": 0
            }
      ],
      "saturation_modifier": "normal",
      "using_converts_to": "bowl"
    }
}

minecraft:fuel
定义燃料物品
参数:

[*]“duration”:定义燃料能烧炼的总时长,单位为秒,填写浮点数(小数),最小值0.05。

示例:
{
    "minecraft:fuel":{
      "duration": 3.0
    }
}

minecraft:knockback_resistance
定义盔甲物品的抗击退能力
参数:

[*]“protection”:定义盔甲提供的抗击退能力,填写浮点数(小数),最大值为1.0

示例:
{
    "minecraft:knockback_resistance":{
      "protection": 0.5
    }
}

minecraft:icon
为物品定义图标
参数:

[*]“legacy_id”:旧版物品纹理的数据值,填写整数,目前好像没什么用。
[*]“texture”:指定在“资源包/textures/item_texture.json”中“texture_data”定义的纹理,填写字符串。

示例:
{
    "minecraft:icon":{
      "legacy_id": 1,
      "texture": "oak_slab"
    }
}

minecraft:on_use
指定物品使用后执行什么事件
示例:
{
    "minecraft:on_use":{
      "on_use": "minecraft:entity_transformed"//要触发的事件
    }
}

minecraft:on_use_on
指定物品在方块上使用后执行什么事件
示例:
{
    "minecraft:on_use_on":{
      "on_use_on": "minecraft:entity_transformed"//要触发的事件
    }
}

minecraft:item_storage
定义一个可以收纳东西的物品,类似于收纳袋
参数:

[*]“capacity”:该物品可收纳最多的物品,填写整数,最大值为64。

示例:
{
    "minecraft:item_storage": {
      "capacity": 64
    }
}

static/image/hrline/5.gif
预告:下一期会接着讲物品组件
大家的打赏是对楼主最好的鼓励!
附加包教程系列
上一期下一期

故叶 发表于 2022-6-3 20:32:14

要我说一个我的世界模组制作器就可以搞定这些东西,还更简单。

782 发表于 2022-6-3 20:36:03

梦落轻寻 发表于 2022-6-3 20:32
要我说一个我的世界模组制作器就可以搞定这些东西,还更简单。

Minecraft Addons Maker?
这个我有,但功能太少,广告太多,限制太多

故叶 发表于 2022-6-3 21:04:20

782 发表于 2022-6-3 20:36
Minecraft Addons Maker?
这个我有,但功能太少,广告太多,限制太多

缺少的地方用你这个方法补上去不就得了吗?

lxhzzy 发表于 2022-6-3 22:26:17

梦落轻寻 发表于 2022-6-3 21:04
缺少的地方用你这个方法补上去不就得了吗?

批量生成简单的项目确实好用,复杂的还是手写方便。并且软件生成的代码一言难尽.........

lxhzzy 发表于 2022-6-3 22:30:32

梦落轻寻 发表于 2022-6-3 21:04
缺少的地方用你这个方法补上去不就得了吗?

大部分较新的特性也没有实现支持,例如地物中的自定义群系功能早已失效,而AddMaker却仍然没有将其剔除

782 发表于 2022-6-4 07:26:21

送你的执念 发表于 2022-6-3 22:30
大部分较新的特性也没有实现支持,例如地物中的自定义群系功能早已失效,而AddMaker却仍然没有将其剔除 ...
还有那最烦人的广告
做稍微高级点的东西就要VIP

Philosophyer 发表于 2022-12-20 09:32:41

782 发表于 2022-6-4 07:26
还有那最烦人的广告
做稍微高级点的东西就要VIP

大大,有什么定义可以让食物能使用多次吗,还有那个类似收纳袋的定义实际上是有问题的
页: [1]
查看完整版本: 附加包教程第十七期——物品:物品组件(1)