模组介绍
这是一款类似于Gal的对话框,为整合包或者地图的作者们制作。使用数据包编写对话框的主题样式和对话文本内容,提供更多的事件给KubeJS使用。
指令
ChatBox添加自定义的指令,允许开发者使用指令来与mod交互。
/chatbox skip <数据包路径: ResourceLocation> <组名: String> <序号: int> 跳转到指定的对话
-
数据包路径:对话文本文件的位置
-
组名:对话文本文件内一段对话的标识符
-
序号(可选,默认为0):一段对话中对话的序号
/chatbox theme <数据包路径: ResourceLocation> 切换对话框主题
- 数据包路径:对话框主题的位置
/chatbox open 打开最近一次对话
数据包路径
ChatBox 将自动加载对话框中对应路径下的Json文件,其中对话框主题的文件路径在data/<命名空间>/chatbox/theme/<文件名>.json,而对话框文本的文件路径在data/<命名空间>/chatbox/dialogues/<文件名>.json。
这些文件都可以通过/reload指令来重载,只不过重载并不代表目前的文件直接被使用了,你还是需要重新通过指令/chatbox theme 和 /chatbox skip去更新你当前的对话框主题里的参数和对话框的文本。
数据包编写
首先你要创建一个数据包,具体去参考McWiki的数据包介绍。你根据上方数据包路径里的介绍在对应的文件路径里创建一个对话框文本的Json和对话框主题的Json。对话框主要由以下几个构成:对话框,选项,历史聊天记录按钮,立绘,而主题主要配置的是其材质,位置,大小等等。而文本主要配置的是文本,交互等等。
关于KubeJS联动
本模组提供了3个事件给KubeJS调用来添加自己想加的东西,例子如下:
//client_script
//在对话框渲染前触发,提供了GuiGraphics可以添加自己想要的渲染,可取消事件
ChatBoxEvents.renderPre(event=>{
let getGuiGraphics = event.getGuiGraphics()
event.cancel()
})
//在对话框渲染后触发,提供了GuiGraphics可以添加自己想要的渲染
ChatBoxEvents.renderPost(event=>{
let getGuiGraphics = event.getGuiGraphics()
})
//在跳转对话时触发,提供了对话的数据包文件,分组和序号来方便用户对特别某一句对话添加自己想要的功能。还有chatBoxScreen包含当前对话的所有信息
ChatBoxEvents.skipChat(event => {
let { chatBoxScreen, resourceLocation, group, index } = event
})
除此之外,本模组还给KubeJS提供了一个全局变量ChatBoxUtil,这个方法中包含api化的对话框指令。no command行动
具体模组教程和数据包json生成器可以查看https://doc.mafuyu.moe 网站
Q & A
Q:这个模组未来会移植到其它版本或者其它模组加载器吗?
A:至少我不会,但是欢迎其它感兴趣的开发者来fork我的模组
选择礼物
使用社区积分,为喜欢的作品送上一份支持
打赏记录
感谢每一位送出礼物的社区成员
