
MillMix (Remixined) / MillMix Jubi
一个试图修复Millénaire并通过混入添加小功能的模组。
修复与改进版 Victimarius/millmix
本模组在 Victimarius/millmix 基础上进行修复并进一步调整,让 Millénaire 1.12.2 模组更加身临其境。
描述
这是一个通过 Mixin 技术修补 Millenaire 8.1.2 (1.12.2 版本) 的模组,使其更加沉浸、稳定且对性能影响更小。我从 Victimarius/millmix 分支出来。
它修复了日志刷屏问题、防止建筑生成时破坏地形、改进了多个“目标”使村民行为更自然、修复了一些严重的世界数据损坏/寻路 Bug,并添加了少量性能优化(目标缓存、屏幕外村民的幽灵移动、并行建筑蓝图加载)。
对自定义文化创作者也很有用——它修复了农场建筑没有箱子时村民无法种植的问题(只有自定义附加包才有无箱子的农场)。
当前特性
农业目标
村民等待作物成熟 —— 防止它们一窝蜂冲向最早成熟的作物。
村民收获和种植速度变慢 —— 感觉更自然。
为无库存农场修复种植种子(自定义内容) —— 村民现在能正常从自己的物品栏、农田存储或 房屋 中使用种子。因此村民能够处理原生缺少箱子的农场。
世界生成
靠近山脉的建筑放置更平滑(也适用于墙壁) —— 确保建筑周围地面足够平坦,防止建筑突然出现在山体边缘或不平整的地面上。可配置:maxTerrainHeightDiff / maxWallTerrainHeightDiff。
完全禁用墙壁生成 —— 可切换配置:disableAllWalls=false。
Ancient Warfare 2 兼容 —— 建筑/墙壁不会生成在与 AW2 结构/城镇领地重叠的位置。可切换配置:avoidAW2Structures。
并行建筑蓝图加载 —— 启动时文化建筑蓝图(PNG)在多线程上加载,减少加载时间。在我包含 200 个模组的整合包加上 Millenaire 文化巨包上进行测试,在我的 24 线程 CPU 上大约节省了 10 秒加载时间。
寻路
修复实体永久卡在 Millénaire 路径半砖上的问题 —— 路径半砖的碰撞箱是 7/16 而不是正常的 8/16 上半砖,导致原版寻路器触发错误的原地跳跃。实体如果不被推开,就会永远冻结在该方块上。
修复 Error in onUpdate(). Check millenaire.log —— 也就是著名的“大锅 Bug”。
屏幕外村民的幽灵移动 —— 远离任何玩家(超过可配置的视距)的村民完全跳过实际的 A* 寻路,而是以可配置的速度直线走向目标,当玩家靠近时恢复正常寻路。目标逻辑照常执行。减少了当许多村庄被加载时的服务器负载。
村民行为
包含所有原始的 MillMix 修复。
村民开关门与 MalisisDoors 兼容。
村民被攻击时不再传送至玩家。
战斗中不再弹出交易界面 —— 在战斗中右键点击村民不再打开交易画面。
访问目标(巡逻、喝苹果酒等)的随机偏移 —— 减少村民聚集,使游戏更沉浸。
伐木工
更大的砍树半径 —— 可配置:chopWoodRadius。
修复 TreeClearer 与动态树木模组(Dynamic Trees)的崩溃/不兼容问题(树枝方块)。
修复 TreeClearer 在清除树木后遗留浮空雪层的问题。
性能
为 GetGoodsForHousehold、GetResourcesForShops、GetTool、MerchantVisitBuilding 添加目标缓存 —— 减少村民反复扫描建筑/物品栏以获取或交付物品的 CPU 开销。纯粹是优化,行为应保持不变。
世界数据 / 存档可靠性
村庄/世界数据文件的强制同步写入(建筑、路径、建造、村民记录、世界数据)—— 强化保存到磁盘的可靠性以应对崩溃/断电,使村庄/世界文件不太可能出现截断或损坏。有望修复一个罕见的 Linux 错误,该错误可能在崩溃后将世界数据清零。
清理村民记录的写入。
配置菜单“M”
允许游戏内“M”菜单中的更高 [非常危险] 配置值 —— 不要乱动村庄半径,100 就很好 LOL(我记得在我的模组下最高可达 2000)。
村民名字显示距离可设为 0 —— 直接在游戏中完全隐藏村民名字(避免编辑 config-custom.txt 并重启)。
命令
/millGetRep —— 获取最近村庄的声望值(来自旧版 MillMix)。
/millDebugExportWorld <半径方块数> —— 导出附近所有村庄/单栋建筑周围区块的 ZIP 文件用于 Bug 报告。保存至 config/millmix/debug/。
/millDebugResetLoneBuildingVillagers —— 重新生成单栋建筑中死亡/Bug 的村民。类似于 Millénaire 自己的重置命令,但针对单栋建筑。
/millConfigReload —— 在运行中的服务器上重新加载 Millénaire 的配置 txt 和 MillMix 自身的配置,无需重启。
/millRenameLoneBuilding <旧名称> <新名称> —— 重命名单栋建筑,支持 Tab 自动补全。如果多个建筑同名,则选择离玩家最近的建筑。
/millRenameVillage 不再因村庄名重复而报错 —— 现在改为选择离玩家最近的村庄,而不是抛出错误。
日志增强
静默错误 Could not find a villager type to create. Gender: 2 —— 隐藏这条淹没 millenaire.log 的错误,防止其占用硬盘空间和影响健康。
将 millenaire.log 和 millenaire-server.log 重定向到 /millenaire-custom/logs 现在日志文件按会话轮替,而不是让 millenaire.log 无限增长。
前置要求
- MixinBooter 如果模组不工作,请更新它
- Millénaire 8.1.2
如果你之前安装了我的 bansoukou 补丁
- 移除 Bansoukou 和
/minecraft/bansoukou(如果你没有在其他地方使用它) - 移除任何旧版本的 MillMix(因为它会替换它)
我的模组应该不会破坏你的存档,但请做好备份
之前我在 Millénaire Discord 上提到的其他目标调整目前尚未实现,例如守卫实际巡逻或农夫的孩子。目前,我的模组只是修补了部分游戏代码,而不是像 goals.txt 这样的文化相关文件。我会做的,但我想做得干净利落。另外,请注意我并未仔细测试所有调整。如果你遇到问题,请在此仓库的 Issues 标签页或 Millénaire Discord 中报告。
如果你遇到了损坏/出错的村庄,请在其附近使用 /millDebugExportWorld <半径> 命令,并将生成的 zip 文件(通常小于 10 MB)发给我,以便我调查或尝试修复。
什么是“目标”?
目标简单来说就是村民的目标。例如,农夫的目标包括 harvestWheat、plantWheat、getBackResourceHome 等。
Millenaire 网站
Millenaire Discord
致谢
Victimarius mouse0w0 Victimarius mchorse TudbuT 提供的 MillMix
我使用了 CleanroomMC 仓库的 TemplateDevEnv 来制作这个模组
祝您愉快
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。