
自由图书馆
模组怪物AI的自救与挖掘基础功能。使任何怪物都能从坑洞、地下含水层或角落脱困;通过可组合的步骤实现逐方块可控挖掘。附带一个隐藏的攀爬支架,内置15秒自毁引信。独立逻辑函数库。
Freedom Lib
让卡住的生物更智能地自救——同时为模组作者提供可调用的工具集,使生物能够自主挖掘、隧道、攀爬或清除障碍物。
Freedom 是一个面向 NeoForge 1.21.1 的库模组。它本身不会添加任何可见的内容:没有物品、没有配方、没有命令、没有创造模式标签页。它的价值体现在其他模组选择接入时才显现——最显著的是 Zombie Village,即 Freedom 的主要使用者。
如果你因为其他模组要求而安装此模组,可以停止阅读了。将 jar 文件放入 mods/ 目录即可,无需其他设置。
功能说明
当宿主模组将生物注册到 Freedom 后,该生物将获得一套后备工具集,用于解决原版寻路无法处理的情况:
- 头部埋在沙砾、沙子或塌方中 → 挖掘逃脱
- 被困在熔岩中 → 放置立足点并向上爬出
- 卡在 1 格宽的坑底 → 在自动清理的梯子上攀爬出去
- 淹没在水中 → 向上游动
- 被 2 格高的台阶挡住 → 利用台阶辅助跨越
- 被水池或流动水阻挡 → 填充、堵塞、隔离下落水柱,或在其上方搭建桥梁
宿主模组也可以直接驱动主动行为——垂直向下挖掘、向目标方向挖掘隧道、堵塞流动水源、用沙砾排干水池、将生物提升到高处建造目标,或通过识别水体/熔岩类型并自动选择用沙砾填充或用圆石堵塞,来中和水体/熔岩。
所有行为均遵循宿主定义的保护规则——领地模组、结构注册表、建造边界。Freedom 永远不会修改宿主标记为禁止的区域内的方块。
添加的唯一个方块
freedom:climb_scaffold —— 一个隐藏、不可获取、可攀爬的救援方块,由三种救援原语自动放置。它看起来与原版脚手架相同,但不会出现脚手架“距离导致链条断裂”的失败问题,且生物确实能攀爬它。没有物品、没有配方、没有创造模式标签页。每个放置的方块都带有 15 秒的自毁倒计时,因此救援完成后不会留下任何柱状结构。
如果你运行了会在生物路径上破坏方块的模组(如自定义 AI、反破坏清理程序),请将 freedom:climb_scaffold 加入白名单,以免它在生物攀爬途中被拆除。
底层机制
- 8 个自动触发救援原语 —— 当生物卡住时,宿主模组通过一次注册调用即可触发
- 11 个直接调用原语 —— 用于主动挖掘、隧道挖掘、清理障碍和提升高度,每个均返回
Result枚举,以便调用者驱动自己的状态机 - 每个生物的跟踪器 用于管理放置的方块,并在生物死亡、区块卸载或服务器重启时进行确定性清理
- 210 个游戏测试 + 完整的 JUnit 测试套件通过 —— 这些原语合约已在真实的 Minecraft 世界中进行过大量测试
需求 / 兼容性
- Minecraft 1.21.1
- NeoForge 21.1.224 或更新版本
- Java 21
- 无需其他模组依赖
整合包作者
可以安全包含。Freedom 在宿主模组调用之前处于休眠状态。无配置文件、无环境变量、无命令、无资源包。仅含服务端原语逻辑。
模组开发者集成
RescueRegistry.tryAll(mob, EscapeContext.freeform(stuckTicks, protectionPredicate, "MyMobTag"));
一行代码即可实现自动触发路径。独立原语(如 DigDownStep、DigForwardStep、LiquidHandlerPrimitive 等)是其对应类中的静态方法——导入后即可调用。
完整的 API 文档、遥测约定、原语表格及集成示例:Risen 维基上的 Freedom Lib。
许可证
保留所有权利。玩家可免费使用,并允许包含在整合包中。请参阅源仓库中的 LICENSE.md 文件以获取完整的授权信息。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。