
仪式物品
用于创建数据驱动召唤仪式的模组
查看大图仪式之物(Ritual thingy)
一个允许模组、整合包或数据包创作者添加数据驱动召唤仪式的模组。
特性
多方块结构
多方块结构目前通过 Patchouli 支持,其它多方块系统正在开发中。 通过 Patchouli 的 json 文件或使用 Patchouli API 添加多方块结构。 添加到 ritual-thingy:altar 方块标签中的方块在右键点击时会被检查是否为多方块结构。
物品条件
该模组支持玩家主手中的物品条件。其它物品条件可通过 API 添加。
生物波次
该模组支持添加多个波次,每个波次包含多组可自定义 NBT 的生物。每个波次可拥有自定义名称、Boss 栏颜色以及两种 Boss 栏运行模式(按实体数量或实体总生命值)。
物品操作
该模组支持将物品给予物品栏、将其掉落于仪式方块内部,或将其掉落于仪式方块上方。其它物品操作可通过 API 添加。
其它特性包括可自定义的延迟 Boss 栏、自定义开始与结束消息,以及自定义开始与结束音效。
格式
仪式文件应位于 data/YOUR_NAMESPACE/rituals/RITUAL_NAME.json
标记有 * 的键为必填项(但如果父标签被省略,则也可省略)
{
"soundEvent": "block.beacon.activate", //开始时播放的音效
"maxUses": 1, //每位玩家最大仪式使用次数。设为 0 以禁用
"altar"*: {
"patchouli": true, //必须设为 true
"id"*: "ritual-thingy:test_altar", //Patchouli 祭坛的标识符
"itemCondition": { //不包含此项以禁用物品条件
"predicate": "ritual-thingy:mainhand", //谓词的标识符(默认为 "ritual-thingy:mainhand")
"ingredient"*: { // 原料:使用与配方相同的格式
"item": "minecraft:stick"
},
"decrement":1 //若使用了正确的物品,则从堆叠中移除该数量的物品
},
"dimensionCondition":{
"dimensions":[
"minecraft:overworld"
], //允许的维度列表
"allowed":true //true 表示该列表为允许的维度,false 表示其为不允许的维度
}
},
"stack": { //物品奖励,参见 [Item Stack](https://origins.readthedocs.io/en/latest/types/data_types/item_stack/)
"item"*: "minecraft:diamond_sword"
"count" : 1
},
"startMessage": "Ritual starting", //开始时发送的消息
"completeMessage": "Ritual ending", //结束时发送的消息
"completeAction": "ritual-thingy:drop_offset", //物品操作的标识符(默认为 "ritual-thingy:none")
"trial": { //省略此项以使仪式立即完成
"waveTickDelay": 80, //试炼波次之间的延迟,单位为刻
"beginningCountdown": 80, //试炼的倒计时,单位为刻
"delayBossBarColor": "blue", //延迟与倒计时所用的 Boss 栏颜色
"waves"* : [ //实体波次
{
"bossBarText": "Pig", //该波次的 Boss 栏文本
"bossBarColor": "blue", //该波次的 Boss 栏颜色
"isBoss": true, //Boss 栏是否应显示生命值而非实体数量
"spawnRange": 4, //生物相对于被点击方块的生成范围
"startSound": "entity.wither.shoot", //波次开始时播放的音效
"endSound": "entity.experience_orb.pickup", //波次结束时播放的音效
"groups": [ //单个实体组
{//该组包含一只没有额外数据的猪
"count": 1,
"entityType"*: "minecraft:pig"
}
]
},
{
"bossBarText": "Cows",
"bossBarColor": "blue",
"spawnRange": 4,
"startSound": "entity.wither.shoot",
"endSound": "entity.experience_orb.pickup",//使用最后一波次的结束音效作为仪式本身的结束音效
"groups": [
{
"count": 8,
"entityType"*: "minecraft:cow",
"tag": "{}" //额外的实体数据(名称、盔甲、效果、变种……)
}
]
}
]
}
}
依赖
若要作为开发者使用该 API 或该模组的其它部分,请将以下内容添加到你的 build.gradle 中
repositories {
maven {
url = 'https://maven.riftrealms.de/releases'
}
repositories {
maven { url 'https://maven.blamejared.com' }
}
}
dependencies {
//将版本添加到你的 gradle.properties 中,或将 ${project.ritual_thingy_version} 替换为模组版本
modApi "eu.ansquare.ritualthingy:ritual-thingy:${project.ritual_thingy_version}"
}
API
Ritual API 允许模组开发者添加自己的物品操作、条件以及阻止仪式开始的事件。它们会在通用初始化器中以以下格式注册:
条件
ItemConditionPredicate YOUR_CONDITION = RitualApi.registerItemCondition(new Identifier("YOUR_MOD_ID", "YOUR_CONDITION_ID"), (ingredient, player, pos) -> {
ItemStack stack = //获取物品堆叠
return new Pair<>(ingredient.test(stack), stack);//用原料测试该堆叠并返回它,以便可能地进行递减
});
默认条件为
- ritual-thingy:mainhand 检查玩家主手中的物品
操作
ItemConditionPredicate YOUR_ACTION = RitualApi.registerItemAction(new Identifier("YOUR_MOD_ID", "YOUR_ACTION_ID"), (stack, player, pos) -> {
//执行操作
});
默认操作为
- ritual-thingy:none 什么都不做
- ritual-thingy:give 将物品给予玩家
- ritual-thingy:drop 将其掉落于仪式方块的位置
- ritual-thingy:drop_offset 将其掉落于仪式方块上方一格(即其顶部)
阻止仪式
PreventRitualCallback.EVENT.register((player, world, hand, hitResult) -> {
return false; //若不允许仪式发生,则返回 false
});
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。