EverCrops:动态树木

EverCrops:动态树木

动态之树的树木会在你离开时继续生长。

动态之树的树木会在你离开时继续生长。

这是 EverCrops 的一个扩展,为 动态之树 添加了补种生长支持。将三者一起安装——EverCrops 负责处理原版作物,动态之树提供树木,而本扩展则让这些树木即使附近无人也会继续生长。


工作原理

动态之树与原版一样,只会在其区块被加载时生长。EverCrops: 动态之树 不会在未加载的区块中模拟生长(那样会导致高昂的性能开销和卡顿)。取而代之的是,它会追踪每棵树最后一次被 tick 的时间,并在区块重新加载后的下一个随机 tick 时,根据已流逝的游戏时间追赶树木的生长进度。

离开一小时、一天、一周——当你回来且区域重新加载时,你的树木会像一直在生长一样向前推进。你出门前种下的树苗,回来时可能已经长成一棵大树。

生长是真实的动态之树生长。 追赶进度会运行动态之树原本会运行的完全相同的生长逻辑——只是运行了那些被错过的步骤。这意味着动态之树自身的所有规则仍然适用:土壤肥力、光照、生物群系适宜性以及生长空间。如果你一直站在那里它都不会生长的树,追赶进度也不会强制它生长。

仅在完全加载的区域生效。 树木只会在其周围区域完成加载后才会追赶生长进度,因此错过的生长会被正确应用,而不是在区块一出现时就被跳过。

已存在的树木: 在安装本模组之前就已存在于世界中的树木,会在其区块在你附近重新加载时被首次注册,因此它们会从那时起开始追赶进度(对于安装前种植的树木不会追溯性爆发生长)。

注意: 在单人游戏中,世界只会在你游玩时进行 tick。追赶进度基于游戏内已流逝的时间,而非现实时间,因此关闭游戏第二天再回来并不会加速你的森林生长。


覆盖范围

  • 🌳 已长大的树木 — 在其区块卸载时继续向成年体型生长,并拾取所有错过的生长步骤。
  • 🌱 树苗 — 在你离开时发芽长成树木,而非冻结等待直到你返回。

新种植的和长期存在的树木都会被自动追踪。


设置

服务器配置文件允许你根据世界调整追赶设置:

  • 追赶开关 — 整个功能的总开关。
  • 追赶速度 — 调整树木追赶进度的速度,以匹配你的动态之树 treeGrowthMultiplier 设置。
  • 树苗追赶开关 — 独立于成年树木,单独开启或关闭树苗追赶功能。
  • 自动清理 — 一个安静的后台进程,会遗忘已被砍伐或死亡的树木,使模组保持轻量,并且不会追踪已不存在的事物。

管理员命令

服务器管理员(权限等级 2)拥有一组 /evercropsDT 命令用于测试和故障排除:

  • /evercropsDT inspect [x y z] — 显示树木的追踪信息,包括当前土壤肥力,以便你精确了解其生长或未生长的原因。
  • /evercropsDT simulate <ticks> <radius> — 将追踪的树木快进指定时长。
  • /evercropsDT tick <radius> — 立即应用待处理的追赶进度。
  • /evercropsDT register <radius> — 手动注册附近的树木(适用于测试)。
  • /evercropsDT cleanup — 移除对已不存在树木的追踪条目。

兼容性

本模组仅使用 @Inject mixin——没有覆写,没有替换。它不引入任何自定义方块或方块实体;其追踪数据存储在自己按维度划分的 evercrops_dynamictrees.dat 文件中,与你世界的其他数据分开。

  • ✅ 需要 EverCrops 基础模组和动态之树
  • ✅ 服务器端友好(客户端无需安装即可运行生长逻辑)
  • ✅ 尊重动态之树自身所有的生长条件——追赶进度绝不会让树木生长到超过动态之树本身会生长的程度

配套模组

  • EverCrops — 必需;处理原版作物(小麦、胡萝卜、西瓜、甘蔗、树苗等)
  • EverCrops: 农夫乐事 — 为农夫乐事的作物和方块提供追赶生长
  • EverFurnace — 为你的熔炉、高炉和烟熏炉提供相同的追赶处理
  • EverHopper — 为你的漏斗提供相同的追赶处理

许可协议

基于 LGPL-3.0 许可。源代码可在 GitHub 上获取。