# MiniExtend 简介
MiniExtend 是一个为迷你世界脚本设计的 Lua 库,其主要目的是方便开发者使用开发者脚本开发游戏。
MiniExtend 使用 MIT License (opens new window) 作为许可证,它要求你保留作者的版权,侵权行为包括但不限于私自删除源代码中的作者信息。
# MiniExtend 的优势
# 简化开发
使用 MiniExtend 可以极大降低迷你世界脚本开发复杂度。
特别是 MiniExtend UI ,它允许以面相对象方式操作自定义 UI ,大大降低了调用函数时传递的参数数量。例如 UI.Element:show
函数,其对应的 API 为 Customui:showElement
,你甚至可以不传任何参数调用 UI.Element:show
并正确运行,而 API 却需要 3 个参数。
MiniExtend 使你将脚本代码集中在全局作用域下管理。 只需在 UI 作用域下添加简短的脚本并稍作修改即可支持 UI 事件,无需在各个作用域之间来回切换。
原生 API 无法在全局作用域下绑定绑定 UI 事件,而 MiniExtend Event 做到了。
# 提高效率
MiniExtend 可提高脚本运行效率,例如访问全局变量的速度是默认的 22~35 倍。 例如,访问 20 个不同的不存在的全局变量,不使用 MiniExtend 的脚本花了 24.691s ,而使用 MiniExtend 的脚本只花了 1.014s(数据排除循环花费),几乎是瞬间完成,效率为默认的 2435% 。
多次实验得到的平均值:
原生 API :17.48s
MiniExtend:0.66s
运行效率:2658%
不要过于震惊,这就是实验事实,你也可以手动验证实验数据的真实性。
# 易于学习
学习和使用 MiniExtend 并不困难。
如果你会使用 Lua ,那么使用 MiniExtend 也很简单。
代码始终会包含详细的注释以便开发者阅读,MiniExtend 每次更新都会包含最新的正确详尽的官方文档,当然也还有其它可读性更高的文档可供选择。
现在 MiniExtend 的总文档数据量比其它任何迷你世界脚本库都要多的多,但无需因此恐慌,你只需阅读其中的一部分即可学习完 MiniExtend 的全部内容。
# 唯一选择
目前 MiniExtend 是唯一的免费开源的迷你世界 Lua 库,网上找到的其它公开的迷你世界代码往往没有明示许可。
但这并不是一件好事,它意味着许多开发者没有想过或不愿公开他们的代码,这会导致开发成本提升,整体开发水平停滞,不利于创建良好的游戏开发生态。
我们希望开发者们能像 MiniExtend 一样,愿意公开应该被公开的开发成果,共建良好迷你世界开源生态。
# 使用 MiniExtend
作者会维护比较准确详细的开发文档 (opens new window),文档会指引你搭建 MiniExtend 环境和使用 MiniExtend 。
你现在看到是@凯凯本凯 (opens new window) 整理优化后的版本,同样以 MIT License 开源 (opens new window)。
如果你也想编写 MiniExtend 文档:
Fork 一份 MiniExtend 的
docs
分支 (opens new window) ,然后自由发挥!如果你的文档内容完整且较为准确,你可以联系作者 (opens new window)推荐你的文档。
# 致开发者
无论你的 Pull Request 质量如何,很高兴你能为 MiniExtend 开发做贡献!
如果你想开发 MiniExtend 代码:
- 把开发重点放在基础或重要的功能上。
- 代码开头标记你的更改(或创建)。
# 附加链接
- MiniWorld Development Organiztion (opens new window) 迷你世界开发组织
- MiniWorld Wiki (opens new window) 迷你世界 Wiki
- MiniWorldGenv (opens new window)
研究迷你世界的内部脚本环境
genv
。 - Lua 教程 | 菜鸟教程 (opens new window) 可通过该教程入门学习 lua 。
- Lua 5.1 Reference Manual - contents (opens new window) 入门后建议通过该手册进阶学习 lua 。
- QQ群 MiniExtend 开源库 (opens new window)