WARNING
这个项目正在开发阶段,所有功能暂时可能是不稳定或不受支持的。
InsaneMC 是一个通过 TypeScript 编写的 Minecraft 数据包构建工具,其主要由两个部分组成。
其一是作为命令行工具提供的 Insane Minecraft Compiler 编译器,他可以将用 IMC Lang 语言编写的脚本文件转换为符合 Minecraft 数据包格式的 mcfunction 文件。相比于原版函数,他支持更多功能,比如:
- 使用类似于其他语言的
if
,while
等关键字来编写程序逻辑 - 在同一个文件中声明多个函数
- 定义编译期处理的 Macro 片段,可实现类似带参函数的功能
- 用中缀表达式表示数值运算,而无需声明常量并手动转换为左结合运算
- 更多功能可参见本站的 IMCL 文档 部分
- 使用类似于其他语言的
其二是作为 npm 库提供的
insane-mc
核心,其封装了一系列可通过 Minecraft 数据包实现的功能,比如自定义进度(Advancement)、合成(Recipe)等。同时,我们预封装了一些数据包特技以方便您在无需学会更多 Minecraft 数据包知识的情况下编写功能更强大的数据包。比如您可能希望添加一个产物带有 NBT 标签的自定义合成,而 Minecraft 数据包不允许你这么做。我们的解决方案是:将原来的合成产物改为一本知识之书(
minecraft:knowledge_book
),再通过进度系统检测玩家是否成功合成,再给玩家奖励相应的物品。再比如,您可能希望通过 Minecraft 的箱子 / 木桶 / 末影箱 / 箱子矿车实现一个自定义 GUI 系统,我们也提供了相应的接口。
而这些特性如果在未来版本的 Minecraft 中得到支持,您也无需更改自己的代码,只需待我们适配后更新依赖到最新版本即可。
进一步的,我们也实现了诸如上下文(Context),事件(Event)等特性方便您更好的组织数据包架构;当然这些功能也原生适配 IMC Lang。