Forget-Me-Crops

Forget-Me-Crops

因为你的庄稼该害怕的是你的效率,而不是你的专注度。

农业

忘记我作物(Forget-Me-Crops)

因为你的作物应该畏惧你的效率,而不是你的记忆力。

忘记我作物(Forget-Me-Crops)是一个适用于 Fabric 和 NeoForge 的农场自动化模组。 设置一个锚点(含水箱子 + 顶部物品展示框 + 锄头),在周围种植作物,该模组便会自动处理收割、补种、掉落物储存和基础农场修复。

如果你想了解实现内部原理和开发者文档,请前往 TECHNICAL.md。本 README 旨在面向玩家。


概述

忘记我作物(Forget-Me-Crops)将普通作物区域转变为一个以锚点为中心的自运行农场区域。

简而言之:你只需建造一次农场,模组便会永久地完成重复性工作,让你免于弯腰收割的劳苦。

示例用法


亮点


特性

  • 自动收割成熟的支持作物
  • 先将成熟的掉落物和多余种子送往附近的箱子/木桶,然后将锚点箱子作为溢出存储
  • 优先使用新掉落物进行补种,其次使用箱子库存
  • 尽可能将附近的泥土/草方块间隙重新犁为耕地
  • 利用附近作物共识补种空耕地和灵魂沙方块
  • 当展示框下方的锚点箱子中有可用锄头时,会自动更换损坏(或缺失)的锄头
  • 扫描期间旋转展示框,使活动状态可见

运作原理

每个锚点按计时器运行(tickInterval,默认 300 刻 / 15 秒):

  1. 验证锚点(展示框仍存在、箱子仍有效、锄头可用)。
  2. 模组发现该锚点周围相连的农场方块。
  3. 以向外螺旋方式扫描,并分散到多个游戏刻中进行,以避免造成卡顿尖峰。
  4. 在同一轮扫描中,收割成熟作物、补种并修复符合条件的间隙。
  5. 如果附近所有输出存储以及锚点箱子都已装满,则暂停该锚点并在 chestFullCooldownTicks 后重试。
  6. 完成后,进入冷却并等待下一周期。

说明:

  • 农场仅在其区块加载时运行。
  • 如果展示框存在但为空,模组会从展示框下方的锚点箱子中取出锄头并自动恢复。
  • 如果展示框或箱子被移除,该锚点会被干净地注销。
  • 农场半径内的附近箱子和木桶仅被视为收割输出存储。

创建锚点(快速设置)

  1. 在与作物层相同的高度放置一个箱子。
  2. 将箱子含水(普通作物农场必需)。
  3. 在箱子的顶面放置一个物品展示框。
  4. 在展示框中放入任意锄头。
  5. 在同一 Y 高度种植支持的作物。

可选:在展示框 Y 层或 Y-1 层放置额外的箱子或木桶。额外的输出发现使用 scanRangeX + 1 和 scanRangeZ + 1,因此位于作物扫描范围外一格处的存储仍可使用。

就这样。你的农场现在有一位微型的旋转工头了。

锚点规则(重要)

  • 仅在物品展示框所在的 Y 层进行扫描。
  • 高于或低于该层的作物将被忽略。
  • 普通耕地作物锚点需要含水箱子。
  • 灵魂沙上的下界疣农场可以使用干燥箱子。
  • 扫描范围由 scanRangeX 和 scanRangeZ 决定(默认各方向 4 格)。

常见设置错误

  • 展示框放在箱子侧面而非顶部。
  • 普通作物的箱子未含水。
  • 农场种植在锚点层上方或下方一格。
  • 展示框或箱子中没有有效的锄头。

支持的作物

作物 收割条件 补种行为
小麦 完全成熟(age 7) 消耗 1 个小麦种子
胡萝卜 完全成熟(age 7) 消耗 1 个胡萝卜
马铃薯 完全成熟(age 7) 消耗 1 个马铃薯
甜菜根 完全成熟(age 3) 消耗 1 个甜菜种子
火把花 完全成熟 重新种植(火把花种子物品)
甜浆果 阶段 3(age 3) 灌木重置为 age 1(灌木不被破坏)
下界疣 完全成熟(age 3) 消耗 1 个下界疣
西瓜 存在果实方块 收获果实,茎保留
南瓜 存在果实方块 收获果实,茎保留

特殊行为:

  • 甜浆果灌木原地收获(年龄回退至 1)。
  • 西瓜和南瓜茎永远不会被破坏;只收获果实。

安装

需求

组件 版本
Minecraft 1.21.11, 26.1.2
Java 21 (1.21.x), 25 (26.x)

Fabric

Minecraft 版本线 Fabric Loader Fabric API Mod Menu
1.21.11 0.19.2 0.140.0+1.21.11 17.0.0
26.1.2 0.19.2 0.148.0+26.1.2 18.0.0-beta.1

将匹配的 Forget-Me-Crops_<version>+<minecraft>-fabric.jar 与 Fabric API 一起放入你的 mods/ 文件夹。 Mod Menu 是可选的,但建议安装以便在游戏内编辑配置。

NeoForge

Minecraft 版本线 NeoForge
1.21.11 21.11.42
26.1.2 26.1.2.43-beta

将匹配的 Forget-Me-Crops_<version>+<minecraft>-neoforge.jar 放入你的 mods/ 文件夹。 使用 Mods 列表中的 Configure 按钮打开配置界面。

Cloth Config 已按版本线固定以保证兼容性:

  • 21.11.153 适用于 1.21.11
  • 26.1.154 适用于 26.1.2

两个加载器使用相同的统一 mixin 配置:forgetmecrops.mixins.json。


配置

配置文件存储在你的实例文件夹中:

  • config/forgetmecrops-server.toml
  • config/forgetmecrops-client.toml

在 Fabric 上,Mod Menu 会打开相同的共享配置界面。 在 NeoForge 上,Mods 菜单中的 Configure 按钮会打开该界面。

服务器配置

选项 默认值 配置界面范围 作用
tickInterval 300 1 到 1200 锚点运行的频率,以游戏刻为单位(300 = 20 TPS 下 15 秒)。
frameRediscoveryInterval 300 15 到 1200 重新扫描已加载区块以刷新锚点发现的频率。
scanRangeX 4 1 到 16 锚点在 X 轴上的半径(4 表示每个方向 4 格,总共 9 格宽)。
scanRangeZ 4 1 到 16 锚点在 Z 轴上的半径(4 表示每个方向 4 格,总共 9 格宽)。
durabilityMode normal 不适用 锄头耐久度行为。
mendingProtection true 不适用 如果为 true,带有经验修补的锄头不会因模组而损失耐久度。
chestFullCooldownTicks 300 10 到 300 箱子已满时重试前的等待时间。
maxSpiralDurationTicks 200 10 到 400 一次扫描最多分散到的游戏刻数(更高 = 每刻负载更小)。
rotationMode FULL_ROTATION 不适用 扫描期间展示框的旋转行为。
debugLogging false 不适用 在日志中启用详细的农场日志(用于故障排除)。
seedClutterMode reduced 不适用 控制插入前额外种子的处理方式。
seedReservePerType 80 0 到 1152 从箱子中取出用于补种的每种种子最低保留数量。

客户端配置

选项 默认值 作用
harvestParticles true 切换扫描粒子效果(螺旋轨迹以及收获爆发效果)。

耐久度模式

模式 行为
normal 原版式损耗;尊重耐久附魔。
ignore_unbreaking 应用耐久度损耗时忽略耐久附魔的减免。
none 本模组的收割/修复操作不造成耐久度损耗。

旋转模式

模式 行为
SINGLE_STEP 当一个周期至少收割了一种作物时,移动 1 个展示框步进。
FULL_ROTATION 在扫描周期内执行一次完整的 8 步旋转。
FOLLOW_ROTATION 持续旋转以追踪向外扫描的进度(跟随环状的行为)。

种子杂乱模式

控制插入前如何处理多余的种子掉落物,以及补种时如何提取种子。

模式 行为
none 种子掉落物在插入前被丢弃。补种仍会优先使用一个新鲜掉落种子;如果需要,再从锚点箱子中提取(受保留数量限制)。
normal 补种优先消耗一个新鲜掉落种子。剩余种子掉落物先插入附近的输出存储,然后以锚点箱子作为溢出。从锚点箱子提取用于补种时遵守 seedReservePerType。
reduced 与 normal 相同,然后该次收获的剩余种子掉落物在插入前减半(向下取整)。

在 reduced 模式下,当种子物品同时也是作物果实(胡萝卜、马铃薯、下界疣、火把花类作物)时,不适用减半。


兼容性

FastItemFrames

忘记我作物(Forget-Me-Crops)支持 FastItemFrames by Fuzss。 安装后,展示框查找和旋转逻辑将使用 FastItemFrames 集成路径,以获得更好的大型农场性能。

其他模组

  • 任何保持区块加载的区块加载器都能保持锚点活跃。
  • 该模组使用常规的世界/方块 API(无自定义方块/物品/实体注册表),因此注册表冲突极少。
  • 它与生长速率和作物行为模组通常能良好共存,但平衡性可能因你的整合包而异。

常见问题

它能在未加载的区块中工作吗?

不能。区块必须已加载。

为什么我的农场没有运行?

检查这个快速列表:

  • 展示框在箱子顶面
  • 箱子已含水(除非是下界疣农场)
  • 展示框(或箱子用于自动更换)中有锄头
  • 作物与锚点在同一 Y 层
  • 箱子有可用空间
  • 作物类型受支持

它能处理混合作物吗?

它能收割范围内的所有支持作物,但补种使用每个方块的附近作物共识。更纯净的单一种类作物区域会带来更干净的结果。


技术文档

有关实现内部原理、包结构、扫描算法、平台粘合和构建细节,请参阅 TECHNICAL.md。


许可证

MIT。请参阅 LICENSE。


鸣谢

由 DuelMonster 开发。 使用 Stonecutter + Modstitch 构建,面向 Fabric 和 NeoForge。 与 FastItemFrames by Fuzss 的可选集成。