mob merger

mob merger

# Mob Merger - 综合概述 **Mob Merger** 是一款用于Minecraft 1.20.1 (v1.0.9) Fabric的性能优化模组,通过合并附近的农场生物来减少大型农场的卡顿,同时保持等效产出。

Mob Merger - 综合说明

Mob Merger 是一款针对 Minecraft 1.20.1(v1.0.9)的 Fabric 性能优化模组,它能够合并附近农场的生物,在保持同等产出的同时,减少由大量农场生物造成的卡顿。

核心功能

  • 自动合并:将 5 格范围内同类型的农场生物合并为一个带有计数器的实体
  • 生物超级堆叠:单个实体最多可代表 100 个独立的生物
  • 性能优化:显著减少实体数量,降低游戏刻计算、碰撞箱检测和渲染负载

技术参数

  • 合并半径:5.0 格
  • 合并间隔:20 游戏刻(1 秒),按实体 ID 交错执行
  • 最大合并数量:单个实体 100 个生物
  • 最小合并年龄:40 游戏刻(2 秒)—— 允许自动化系统先进行检测

主要特性

1. 真实的死亡机制

  • 你必须击杀合并后的生物,次数等于其计数器显示的数值
  • 每“死亡”一次,计数器减 1,掉落 1 个生物的掉落物,并完全恢复生命值
  • 只有当计数器降至 1 时,该生物才会永久死亡
  • 示例:计数器为 10 的生物 = 需要击杀 10 次才能彻底消灭

2. 功能完整的繁殖系统

  • 合并后的生物可以正常繁殖
  • 会累积繁殖食物:每 2 个食物 = 1 个幼崽
  • 繁殖时,合并生物的计数器会根据出生幼崽数量减少
  • 根据累积的食物自动生成多个幼崽
  • 两个亲本之间的计数减少量平均分配

3. 按类型缩放产量

鸡

  • 根据计数器加速下蛋计时器(最高 10 倍)
  • 下蛋时,会掉落等同于其计数器数量的鸡蛋
  • 额外增加下蛋音效

羊

  • 剪毛时,掉落的羊毛量乘以计数器
  • 基础随机数量(1-3) × 计数器
  • 会分成多个堆叠以防止溢出(每堆最多 64 个)
  • 正确保留羊毛颜色

牛

  • 可以正常挤奶
  • 每次使用效果与原版相同

猪

  • 维持正常行为

4. Jade 集成

  • 当看向一个合并生物时,工具提示中会显示“已合并:X 个生物”
  • 客户端-服务器同步以保证数据准确

安全排除规则

  • ❌ 不会合并幼年生物
  • ❌ 不会合并正在繁殖(处于 inLove 状态)的生物
  • ❌ 不会合并村民(它们不继承自 Animal)
  • ❌ 不会合并蝙蝠(它们是环境生物,不是动物)
  • ✅ 允许合并后的生物进行繁殖

支持的生物

任何继承自 Animal 的实体:

  • ✅ 鸡、牛、猪、羊
  • ✅ 所有原版农场动物
  • ❌ 村民和蝙蝠会被自动排除

技术实现

代码结构

  • IMergedMob:用于追踪合并生物计数器和繁殖食物的接口
  • AnimalMixin:主要合并逻辑、繁殖和 NBT 持久化
  • LivingEntityMixin:带有掉落物掉落的多次死亡系统
  • ChickenMixin:加速产蛋
  • SheepMixin:剪毛时羊毛数量倍增
  • CowMixin 和 PigMixin:维持正常行为
  • MergedMobProvider:Jade 集成,用于显示工具提示

持久化

  • 将 MergedCount 和 BreedingFoodCount 保存到 NBT
  • 在保存/加载区块时持久化

交错执行

  • 使用 (gameTime + entityID) % MERGE_INTERVAL 将 CPU 负载分散到各个游戏刻

使用场景

  • 有数百只动物的大型 Create 模组农场
  • 减少服务器上拥有大量自动化农场的卡顿
  • 在不牺牲游戏机制的前提下进行性能优化
  • 与 Create 及其他自动化模组兼容

配置

可在 MobMerger.java 中配置的值:

  • MERGE_RADIUS:用于搜索合并的半径(默认:5.0 格)
  • MERGE_INTERVAL:检查频率(默认:20 游戏刻 = 1 秒)
  • MAX_MERGED_COUNT:单个实体中的最大生物数量(默认:100)
  • MIN_AGE_FOR_MERGE:可进行合并的最小年龄(默认:40 游戏刻 = 2 秒)

兼容性

  • Minecraft 1.20.1
  • Fabric Loader 0.16.9+
  • Fabric API 0.92.2+
  • Jade(可选,用于显示信息)
  • 与 Create 及其他自动化模组兼容

支持的语言

  • 英语 (en_us)
  • 西班牙语 (es_es) 在 assets 中可用

安装

  1. 确保你已安装 Fabric Loader
  2. 下载已编译的 .jar 文件
  3. 将文件放入你的服务器/客户端的 mods 文件夹
  4. 重启服务器/客户端

构建

./gradlew build

.jar 文件将生成在 build/libs/ 目录下

许可证

MIT 许可证 - 详情请参阅 LICENSE 文件

致谢

由 Julia 制作
灵感来源于用于 Create 农场优化的 Item Merger 概念