我的世界通过数据包自定义新的火焰效果
英文版:https://github.com/DSLM/Firewood/wiki/Custom-New-Fire
首先,在数据包命名空间文件夹下创建一个新文件夹“firewood_fire_effects”(整合包制作者通常可以用firewood命名空间)。图例:
然后,你可以给每个新的火焰效果创建一个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。缓存数据保存在火焰物品或方块中,如果在所有目标处理完成前有生物再次触发了火焰,那么火焰计算处理伤害、最低生命值、冷却时间等数据的时候会无视还未完成处理的火焰效果。目前只对方块转化类效果生效。