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 类。
让我们从别名中学习如何自定义元数据。代码如下。
1 @MetaType(MetaType.Type.TEXT)
2 class MetaAlias(source: String?, questContainer: QuestContainer) : Meta<String?>(source, questContainer) {
3
4 val alias = source
5
6 companion object {
7
8 /**
9 * 使用扩展方法获取元数据
10 */
11 fun Template.alias() = meta<MetaAlias>("alias")?.alias
12
13 @TFunction.Init
14 fun init() {
15 // 向 Chemdah 注册元数据类型
16 ChemdahAPI.addQuestMeta("alias", MetaAlias::class.java)
17 }
18 }
19 }
我们可以看到这个类使用了 @MetaType(MetaType.Type.TEXT) 注解,用于定义数据类型。
任务配置文件中书写格式如下。
1 template_01:
2 meta:
3 alias: alias01
很简单是吧,因为元数据本身的设计就是没有主动行为的,它的意义便是提供一个配置编写与获取的接口。