WorldForge

WorldForge

WorldForge WorldForge是一个以生存为核心的大型Fabric模组,通过自动化、高级存储、智能实体、升级机器、强力工具和生活便利改进来扩展Minecraft,同时保持生存游戏体验的平衡。

工业工艺

WorldForge v1.0

作者: Doshu

网站: https://github.com/AlperCetin2001/WorldForge

目标版本: Minecraft 26.2 · Fabric Loader 0.19.3 · Java 25

Fabric API: 0.154.0+26.2 · Loom 1.17.13


概述

WorldForge 是一个大型的生存友好型工具模组,围绕类似 WorldEdit 的区域编辑器(选择、填充、破坏——完全集成经济系统、暂停/恢复、区块安全和工作箱系统)构建,并在此基础上叠加了广泛的独立功能模块。


功能总览

模块 功能
区域编辑 /wfpos1//wfpos2 选择,/wffill,/wfbreak,/wfclear,撤销,蓝图暂停/恢复,区块安全,经济定价
工作箱 / WFVault / 巨型箱子 用于批量作业的自动生成箱子;可搜索的多页 WFVault 存储;多方块巨型箱子(L/T/+ 形状,整个结构共享一个开盖动画)用于大容量掉落物
CatBot GeckoLib 动画伙伴,可在猫/人形形态间切换,/wfcat gui 自定义(形态、性别、发型、大小、实时 3D 预览),基于冷却的重生
农夫机器人 自主作物收割:智能农田检测(BFS 泛洪填充),增量式农田缓存更新,种子储备管理,作物优先级,昼夜与天气感知行为,可选的选择区域工作边界。同时兼作伐木机器人工作模式——从地面清除整棵树(包括高大的丛林巨树)而无需攀爬,拥有专属的"伐木工机器人"外观
农业与食物 12 种新可种植作物(番茄、黄瓜、洋葱、生菜、玉米、水稻、大蒜、辣椒、甜椒、卷心菜、茄子、草莓),每种都有专属种子物品、8 阶段作物方块和可收获产物;38+ 种预制菜肴,涵盖快餐、披萨、土耳其烤肉、三明治、早餐、薯条、鸡肉、米饭、意大利面、汤、沙拉、甜点(巧克力曲奇、蛋糕切片、苹果/草莓派、甜甜圈)和饮品(咖啡、茶、橙汁、苹果汁)
wfbuild 程序化结构/建筑生成器,包含 500+ 种装饰、风格和结构类型变体(数据驱动的 JSON),施工期间有实时幽灵方块全息预览
熔炉 6 级熔炉系列(铜 → 下界合金),每级有对应的烹饪速度倍率和多栏 GUI
矿脉矿工 / 矿脉斧 / 矿脉工具 / 挖掘机 / 万能工具 分级挖掘工具(铜 → 下界合金/绿宝石),具备矿脉追踪和区域挖掘功能,破坏前有实时轮廓线预览
Grook 树叶/ foliage 清理工具,可配置触及距离和最大树叶上限
磁力链接 箱子/玩家之间的远程物品传输
图片放置 下载网络图片并将其放置为游戏内地图画
Litematica 支持 导入/导出与 Litematica 兼容的原理图
教程书 可点击、分类的游戏内命令参考(/wf... 命令),带双语悬停文本
配置 GUI 游戏内按键绑定配置界面;每个可选模块可通过 /wfconfig 实时切换/调整,并持久化到 worldforge_features.json
本地化 英语、土耳其语、德语、法语、西班牙语

命令

命令 描述
/wfpos1 在你视线所及的方块处设置 Pos1(射线检测)
/wfpos2 在你视线所及的方块处设置 Pos2
/wfpos1 <x> <y> <z> 在明确的坐标处设置 Pos1
/wfpos2 <x> <y> <z> 在明确的坐标处设置 Pos2
/wfselection 显示当前选择信息
/wfclear 清除选择区域内的所有方块(填充空气,无掉落物)
/wffill <block> 用方块填充选择区域(使用工作箱)
/wfbreak 破坏选择区域内的所有方块(掉落物进入工作箱)
/wfcancel 取消当前作业(保存蓝图)
/wfresume 从保存的蓝图恢复作业
/wfblueprint info 查看已保存蓝图的状态
/wfblueprint clear 删除已保存的蓝图
/wffluid preserve|dry 流体处理模式
/wfchest 显示工作箱位置
/wfchest remove 移除工作箱(内容物掉出)
/wflang <code> 设置语言:en tr de fr es
/wfeconomy ... 经济管理命令
/wfconfig list 显示每个可选模块的当前设置
/wfconfig set <module> <key> <value> 调整或切换模块(见下文)
/wfconfig reload | save 重新加载/保存功能配置文件

工作箱系统

当你运行 /wffill 或 /wfbreak 时,一个箱子会自动生成在你附近的的安全位置。

填充模式(/wffill <block>)

  • 将你想要用来填充的方块放入工作箱(按顺序)。
  • 模组从箱子中消耗方块,而不是你的物品栏。
  • 如果箱子用完,作业会暂停——补充后使用 /wfresume 恢复。
  • 如果目标位置已有方块,会先被破坏,使用来自你物品栏(或工作箱)的工具,掉落物会回到工作箱中。

破坏模式(/wfbreak)

  • 将工具(镐、锹、斧等)放入工作箱。
  • 模组会根据方块类型使用合适的工具。
  • 所有掉落物都会进入工作箱(溢出部分掉落到世界中)。
  • 如果工具损坏,作业会暂停——更换工具后使用 /wfresume 恢复。

重要提示

  • 作业运行期间不要破坏工作箱——否则作业会暂停。
  • 完成后使用 /wfchest remove 安全移除它。

选择

  • 使用选择斧左键点击 → Pos1(你击中的方块)
  • 使用选择斧右键点击 → Pos2(你点击的方块)
  • /wfpos1 和 /wfpos2 也以你视线所及的方块为目标(不是你的脚下)

一旦两个角落都被选中,一个粒子线框轮廓会出现在区域周围。

当作业完成或被取消时,轮廓会自动消失。


语言

使用 /wflang <code> 设置你的语言:

代码 语言
en 英语(默认)
tr 土耳其语
de 德语
fr 法语
es 西班牙语

暂停 / 恢复 / 取消

系统在以下情况自动暂停:

  • 工具损坏(破坏模式或清除模式)
  • 工作箱为空(填充模式或破坏模式)
  • 区块卸载(移动到区域附近)
  • 玩家断开连接

剩余的方块会保存为蓝图。使用 /wfresume 继续。

使用 /wfcancel 取消并保存蓝图,或使用 /wfblueprint clear 丢弃。


经济系统

可选的经济集成。管理员可以配置:

/wfeconomy toggle
/wfeconomy set cost <amount>
/wfeconomy set currency <name>
/wfeconomy reload
/wfeconomy save

农夫机器人

  • 白天: 正常工作——收割、重新种植,并将收获存入其农夫箱子。
  • 夜晚: 返回箱子并在一旁待机,第二天早上自动恢复工作。
  • 下雨: 继续工作,不受影响。
  • 雷暴: 暂停并在箱子旁等待,直到雷暴过去。
  • 箱子满: 一旦农夫箱子没有剩余空间,立即暂停收割——不会破坏或掉落任何东西——一旦空间释放,自动恢复。

此行为可以通过 /wfconfig set farmer daynightenabled false 关闭(见下文功能配置),这将恢复旧的昼夜和天气无关的机器人行为。箱子满暂停不受该开关控制——它始终生效。

伐木机器人

同一个机器人、箱子和 GUI 基础设施的第二种工作——砍伐附近的树木而不是收割作物,逐段走遍整棵连接的树,直到范围内没有剩余原木。

有两种生成方式:

  1. 图腾: 在任何原木顶部放置一个南瓜,然后用任意斧头右键点击南瓜。两个方块都会被清除,替换为一个新的箱子 + 机器人。
  2. 生成物品: 制作一个伐木机器人生成物品——底部是原木,中间是雕刻南瓜,顶部是任意斧头——然后右键点击任意方块。工作方式与农夫机器人生成物品相同(如果点击位置已有孤立的箱子,会重新链接到它)。

无论哪种方式,机器人都会自带箱子,并拥有独特的"伐木工机器人"外观(绿色无檐帽、格子衬衫、树徽胸甲),而不是默认的农夫机器人外观——其他所有功能(GUI、暂停/恢复、昼夜庇护所、收回机器人、选择区域工作边界)都与农夫机器人相同。

无需攀爬即可从地面砍伐整棵树:砍伐触及检查仅限水平方向(到树干列的距离),并有一个独立、可配置的垂直允许范围(lumberjackVerticalChopRadius,默认 50)——因此机器人可以从其站立的底部位置,逐段清除整根树干,包括最高的 4 树苗丛林式巨树。

工作区域(选择区域工具 1/2)

农夫和伐木机器人都支持可选的矩形工作区域边界,叠加在默认的以箱子为中心的范围之上。玩家生成的第一个机器人会附带一个绿色(角落 1)和一个红色(角落 2)的选择区域工具——在想要的角落右键点击放置每一个,该机器人(农夫或伐木)永远不会在标记的矩形之外收割/砍伐。边界仅限 X/Z 轴(Y 轴不受限制,适用于多层农场/高大的树木)。如果未标记区域——或者只标记了一个角落——会自动回退到旧的以箱子为中心的行为。可以从机器人自己的 GUI 请求更多工具。


农业与食物系统

新作物

12 种新可种植作物,每种都有完整的种子 → 8 阶段作物方块 → 可收获产物链(在耕地上种植,与原版小麦完全一样):

番茄、黄瓜、洋葱、生菜、玉米、水稻、大蒜、辣椒、甜椒、卷心菜、茄子、草莓。

农夫机器人的作物优先级和智能农田检测开箱即用地识别这些作物以及原版作物。

预制食物

38+ 种可烹饪/可制作菜肴(普通的原版工作台/熔炉/篝火配方——无需新机器),按类别分组:

类别 示例
快餐 汉堡、芝士汉堡、双层芝士汉堡、鸡肉/鱼肉汉堡、热狗
披萨 芝士、意大利辣香肠、鸡肉、蔬菜、至尊(外加披萨面团 → 生披萨的制作阶段)
土耳其烤肉 鸡肉烤肉、肉烤肉、烤肉卷、烤肉拼盘
三明治 三明治、鸡肉/牛排/芝士三明治
早餐 煎/煮鸡蛋、煎蛋卷、吐司、芝士吐司
薯条 法式薯条、满载薯条、薯角
鸡肉 炸鸡、鸡翅/鸡块、烤鸡
米饭 米饭碗、鸡肉饭、蔬菜饭
意大利面 意大利面、肉酱面、千层面、芝士通心粉
汤 番茄、蔬菜、鸡肉、蘑菇汤
沙拉 田园、鸡肉、希腊沙拉
甜点 巧克力曲奇、蛋糕切片、苹果派、草莓派、甜甜圈
饮品 咖啡、茶、橙汁、苹果汁(瓶装,16 个一组,像牛奶/蜂蜜瓶一样)

营养/饱和度随菜肴复杂度增加——小吃和甜点较低(2-3 营养),三明治中等(5-6),汉堡/披萨较高(6-9),完整拼盘(烤肉拼盘、千层面)最高(8-10)——与原版食物的价值分布相匹配。


功能配置

每个可选模块(农夫机器人、伐木机器人、磁力、熔炉、矿脉矿工、Grook、网络图片放置、WFVault、巨型箱子、区块安全、选择粒子轮廓)都可以由管理员实时切换或调整,并持久化在 config/worldforge/worldforge_features.json 中。经济和万能工具耐久度有其独立的配置文件/命令(/wfeconomy、/wfdurability)。

/wfconfig list
/wfconfig set farmer enabled false
/wfconfig set farmer searchradius 12
/wfconfig set farmer harvestdistance 2.5
/wfconfig set farmer rescaninterval 10
/wfconfig set farmer seedreserve 1 # 每种类型始终保留的最低种子数量,用于未来种植
/wfconfig set farmer fatigueenabled true
/wfconfig set farmer fatiguethreshold 12 # 在休息前连续收割的作物数量
/wfconfig set farmer restticks 200 # 机器人疲劳后休息的时间
/wfconfig set farmer daynightenabled false # 禁用夜晚/雷暴在箱子旁的庇护行为
/wfconfig set lumberjack searchradius 16
/wfconfig set lumberjack chopdistance 3
/wfconfig set lumberjack rescaninterval 10
/wfconfig set lumberjack verticalchopradius 50 # 机器人从地面清除的最高树干,无需攀爬
/wfconfig set lumberjack unreachablefailurethreshold 2
/wfconfig set lumberjack unreachablecooldownticks 6000
/wfconfig set magnet enabled false
/wfconfig set furnace speedstep 2 # 1 = 原版速度,更高 = 更快
/wfconfig set veinminer enabled false
/wfconfig set veinminer reach 10
/wfconfig set grook enabled false
/wfconfig set grook maxreach 16
/wfconfig set grook maxleaves 200
/wfconfig set image enabled false
/wfconfig set image maxdownloadmb 10
/wfconfig set image timeoutseconds 15
/wfconfig set vault enabled false
/wfconfig set megachest enabled false
/wfconfig set chunksafety enabled false # 需要重启才能生效
/wfconfig set particle outlineenabled false
/wfconfig reload
/wfconfig save

禁用某个模块不会从其方块/物品/实体中移除世界中的内容——它只是关闭该模块的行为(交互、事件处理器或 AI 目标),这样已放置的内容不会被孤立或损坏。


已知问题(MC 26.2 移植,巨型箱子)

纹理连续性(最终版 Secenek A): buildMesh() 不再按单元平铺或包裹纹理。传递给 LayerDefinition.create(...) 的虚拟 UV 画布现在大小等于当前巨型箱子的精确像素尺寸(w*16 × h*16、d*16 × h*16),每个方块的 texOffs 只是该画布中的 bx*16/bz*16/by*16——在数学上与 u0=bx/width, u1=(bx+1)/width 相同。没有取模、没有环绕、没有重复:实际纹理文件在整个结构上恰好被拉伸一次,无论其多大。

不可避免的权衡(这是真实的 GPU/资产限制,不是渲染器代码可以绕过的):如果 mega_chest.png / mega_chest_frame.png 保持当前的小分辨率,大型巨型箱子将显示明显模糊/像素化的设计版本,因为小纹理被拉伸到大面积上。要在缩放下获得清晰外观,请以更高的分辨率(512×512 或 1024×1024)重新绘制这两个纹理——细节密度将随结构大小缩放,而不是模糊。

巨型箱子渲染器及其开启逻辑通过交叉参考 javap 输出与目标 client.jar 移植到 26.2 重构的渲染/容器 API,因为 26.2 更改了几个相关类(方块实体渲染状态架构、RenderType 工厂、纹理图集访问和 Container 接口)。以下所有内容都针对已确认的 API 表面编译,但有两个点仍依赖于尚未独立验证的假设,应在发布前检查:

  • MegaChestBlockEntity#tick 现在从 getEntitiesWithContainerOpen() 推导"是否有人在看这个箱子",而不是已移除的 openCount 字段。这假设该方法在 WFVaultBlockEntity → BaseContainerBlockEntity 链上可用,而不仅仅是在 ChestBlockEntity 上。
  • MultiVaultContainer#startOpen/stopOpen 现在实现 Container.startOpen(ContainerUser) / stopOpen(ContainerUser)(26.2 签名,替换 Player)。这假设 Player 实现了 ContainerUser。
  • MegaChestBlockEntity#getRenderBoundingBox() 被彻底移除(在 26.2 中 BlockEntity 上不再存在);自定义多方块视锥体裁剪现在仅依赖 MegaChestRenderer#shouldRender 中的距离检查,因此非常大的结构在屏幕边缘附近可能会比之前被裁剪得稍早/稍晚。

如果 ./gradlew build 在上述三个点中的任何一个仍然失败,那里是首先检查的地方。


构建

适用于 MC 26.2 的 GeckoLib 5.5.3 尚未在 GeckoLib 的 Maven 上发布,因此请手动下载 Fabric jar(CurseForge 或 Modrinth,"GeckoLib Fabric 26.2 5.5.3")并在构建前将其放在 libs/geckolib-fabric-26.2-5.5.3.jar 位置。

./gradlew build

需要 JDK 25。输出:build/libs/worldforge.jar(版本号在 fabric.mod.json 中,不在文件名中)。


兼容性证据

  • ✅ Minecraft 26.2:官方 Fabric 博客确认 26.2 支持(2026 年 6 月)
  • ✅ Fabric Loader 0.19.3:确认为 26.2 的当前稳定版(fabricmc.net/2026/06/15/262.html)
  • ✅ Fabric API 0.154.0+26.2:可在 CurseForge 和 Modrinth 上获取
  • ✅ Java 25:MC 26.1+ 需要;已由 Fabric 博客确认
  • ✅ Loom 1.17:26.2 开发环境所需
  • ✅ 仅服务端:未使用 Blaze3D/Vulkan 客户端渲染代码(对 26.2 渲染器更改安全)

WorldForge 作者 Doshu — https://github.com/AlperCetin2001/WorldForge