自定义元数据 (Chemdah 开发者文档)
来自Purtmars Wikipedia —— 普特莫斯维基
目录
- Chemdah
- 开始
- 基本
- 事件
- ink.ptms.chemdah.api.event.collect.ConversationEvents
- ink.ptms.chemdah.api.event.collect.ObjectiveEvents
- ink.ptms.chemdah.api.event.collect.PlayerEvents
- ink.ptms.chemdah.api.event.collect.QuestEvents
- ink.ptms.chemdah.api.event.collect.TemplateEvents
- ink.ptms.chemdah.api.event.InferEntityHookEvent
- ink.ptms.chemdah.api.event.InferItemHookEvent
- ink.ptms.chemdah.api.event.PartyHookEvent
- 对话相关
- 数据相关
- 任务相关
自定义元数据
元数据指任务中的被动行为或配置,常用于名称、标签等数据的设置。均继承自 ink.ptms.chemdah.core.quest.meta.Meta 类。
让我们从别名中学习如何自定义元数据。代码如下。
@MetaType(MetaType.Type.TEXT)
class MetaAlias(source: String?, questContainer: QuestContainer) : Meta(source, questContainer) {
val alias = source
companion object {
/**
* 使用扩展方法获取元数据
*/
fun Template.alias() = meta("alias")?.alias
@TFunction.Init
fun init() {
// 向 Chemdah 注册元数据类型
ChemdahAPI.addQuestMeta("alias", MetaAlias::class.java)
}
}
}
我们可以看到这个类使用了 @MetaType(MetaType.Type.TEXT) 注解,用于定义数据类型。
任务配置文件中书写格式如下。
template_01:
meta:
alias: alias01
很简单是吧,因为元数据本身的设计就是没有主动行为的,它的意义便是提供一个配置编写与获取的接口。