英文版:https://github.com/DSLM/Firewood/wiki/Custom-New-Fire

首先,在数据包命名空间文件夹下创建一个新文件夹“firewood_fire_effects”(整合包制作者通常可以用firewood命名空间)。图例:

通过数据包自定义新的火焰效果-第1张图片

然后,你可以给每个新的火焰效果创建一个JSON文件,也可以创建一个空JSON文件来覆盖删除已有的火焰效果。


所有火焰效果JSON文件通用字段

{
  "type": "smelter",
  "sub_type": "smelter",
  "color": "0xc2ccd0",
  "damage": 0.5,
  "min_health": 1.0,
  "process": 8,
  "range": 2,
  "cooldown": 10,
  "target_limit": 5
}

type(必填)

此字段决定了效果的大体类型。您可以查看默认效果以确认您想要的效果。

sub_type(必填)

此字段代表了同类大体类型效果下具体某个火焰效果的唯一ID。两个相同的子类型将覆盖前者。

color(必填)

此字段代表了火焰的颜色,“0x”不是必要的,它只是代表了十六进制数字,以免歧义。最后6位是十六进制格式的RGB值。

damage(必填)

此字段代表了火焰的伤害。触发火焰效果后触发生物会受到的“燃烧之躯”效果伤害。实际伤害值为所有效果伤害值之和。

min_health

此字段代表了火焰的最低生命值需求。min_health的默认值等于damage。当生物尝试触发火焰效果时,如果其生命值小于所有火焰效果的最低生命值需求之和,那么只会受到伤害而不会成功激活效果。

process(必填)

此字段代表了火焰的需求进度。每次成功触发火焰效果都会为其添加1点进度,如果当前进度大于等于火焰效果需求进度,效果方能成功激活。

range(必填)

此字段代表了火焰的生效范围半径。此字段有两种书写方式:

[x, y, z]

代表三个维度上的半径;

r

等价于[r, r, r]。

最终范围是一个长方体。例子:0或者[0,0,0]包含1个方块,1或者[1,1,1]包含3*3=27个方块……

特例:-1或者[-1,-1,-1]会将效果限定为仅在触发生物身上(对方块转换类效果无效,视为无范围)。

cooldown(必填)

此字段代表了火焰的冷却时间。触发生物会获得“燃烧之躯”效果,而在此期间此生物无法触发任何其他的火焰效果(包括灵性之火,提灯,篝火等),换而言之,这个“燃烧之躯”效果即是火焰效果的冷却时间,而它的持续时间即是所有火焰效果冷却时间之和。

target_limit

此字段代表了火焰每Tick的目标数量上限。target_limit的默认值为2147483647。缓存数据保存在火焰物品或方块中,如果在所有目标处理完成前有生物再次触发了火焰,那么火焰计算处理伤害、最低生命值、冷却时间等数据的时候会无视还未完成处理的火焰效果。目前只对方块转化类效果生效。