FirmaLifeHardCore
彻底重做 Firmalife 的地窖和温室机制,无需气候站。通过 BFS 洪水填充算法自动检测封闭空间,并动态追踪 AABB。任何隔热方块都能组成可用的地窖或温室。
介绍
FirmaLife HardCore
英语
一个适用于 NeoForge 1.21.1 的模组,全面改造 Firmalife 的地窖与温室机制——无需气候站。通过 BFS 泛洪填充自动检测封闭空间,并动态追踪 AABB。任何隔热方块都能构成可用的地窖或温室。
地窖与温室系统
放置或破坏墙壁/容器方块时,会自动检测封闭空间。每个实心墙壁方块都会根据方块标签贡献一个热阻值:
| 等级 | 热阻 | 常见方块 |
|——|———–|—————-|
| 高 | 0.75 | 密封砖 |
| 中 | 0.55 | 石头、矿石方块、泥土、草方块、石砖、夯土、木板、原木、编木墙、茅草、泥砖、加固土壤 |
| 低 | 0.25 | 玻璃(方块/玻璃板)、储存方块(金属、煤等)、砂岩、灌溉水箱 |
门按中等热阻计算。双开门可获得4 倍倍率。
地窖有效温度:T_indoor = baseTemp + (T_outdoor − baseTemp) × (1 − avgR),其中 baseTemp = 4°C。有效温度越低,保存效果越好(SHELVED ≤ 16°C、SHELVED_2 ≤ 8°C、SHELVED_3 ≤ 0°C)。
温室检测:下方有内部空间(或内部障碍物)的屋顶方块会被识别为屋顶。玻璃屋顶中至少 50% 可见天空时,即判定为温室。baseTemp = 4 + 40 × canopyRatio。
温度 API:会拦截 Climate.getInstantTemperature() 和 Climate.getAverageTemperature()。即时温度返回有效温度(受天气影响);平均温度返回室内年均温(稳定的微气候,供灌木/果树判断气候适宜性)。
容器保鲜
| 容器 | 机制 |
|———–|———–|
| 食物架 | 通过 ClimateReceiver 应用 3 档 SHELVED 特性 |
| 挂架 | 通过 ClimateReceiver 应用 3 档 HUNG 特性 |
| 大型容器 | 密封时应用 SHELVED,开启时移除 |
所有容器方块都会通过 #firmalifehardcore:cellar_containers 标签自动检测。
温度计集成
温度计通过红石信号(服务端)和 Jade 提示信息(“室内温度”)显示温室/地窖温度。室外温度计则显示 TFC 的原生提示信息。
灌溉系统全面改造(第二阶段)
Firmalife 灌溉系统(抽水站、灌溉水箱、洒水器)已升级为真实的流体力学机制。
抽水站 — 现在是 NeoForge IFluidHandler 容器:
- 基础储水量 500mB;每在正上方叠放一个灌溉水箱,储水量增加 500mB(最多 3 个)
- 从抽水站下方吸水;注水速率与机械转速成正比
- 流体容量通过 NeoForge 能力自动同步;兼容外部流体管道
- 每刻注水按 Z 坐标错开(每 80 刻一次,乘以 80 倍数以避免截断——与洒水器周期一致,因此 15 RPM 恰好每 80 刻注入 25mB,不产生任何
(int)损失) - 注水按维度隔离:每台抽水站仅在其所在维度运行刻时补水(不会跨维度重复补水)
洒水器 — 真实耗水机制:
- 每次喷洒周期消耗 5mB(约 80 刻);5 个洒水器每 80 刻消耗 25mB,正好与 15 RPM 抽水站每 80 刻注入的 25mB 相匹配——这是设计的平衡点
searchForFluid遵循其drain标记:探测调用(drain=false,例如其他模组的定期检查)不会消耗抽水站的水——只检查水位和压力- 抽水压力公式:
PumpY + Tanks + RPM − SprinklerY ≥ 0— 重力、水箱高度和转速共同决定供水范围 - 水箱数量通过事件驱动更新(缓存计数,并在放置/破坏水箱时失效);每 100 刻进行一次后备重新扫描
灌溉水箱 — 添加至 LOW 热阻标签。墙内的水箱可作为管道穿墙接口;BFS 会将水箱视为管道节点并穿越。
Jade — 洒水器通过自定义 Jade 提供者显示温室/地窖状态。水泵的流体液位由 NeoForge 原生流体提示显示。
加固土
8 种土壤变体 × 多种视觉状态,由 axis_x/axis_z 连接属性决定。手持支撑梁(主手)并将锤子放在副手,右键可加固地面。潜行并右键可向下延伸,最多 3 格。
视觉系统 — 每种变体有 6 种纹理类型:
- 端面纹理(居中/贴近边缘的梁截面)
- 侧面的纵向裂纹/交叉裂纹/横向裂纹
- 两端都连接支撑梁时,会变为横梁
- 邻近方块变化时自动连接/断开
指令
/flhc cellar info — Cellar/greenhouse debug info
/flhc cellar recalc — Force rescan (permission 4)
/flhc cellar list — List all tracked spaces
/flhc cellar clear — Clear all tracked spaces (permission 4)
Patchouli
在 TFC 野外指南中注册独立的 FirmaLife HardCore分类(sortnum=11,排在 Firmalife 之后),并使用温度计图标。介绍地窖/温室改造机制。
配置
config/firmalifehardcore-server.toml:maxHorizontalSpan(默认 24)、maxVerticalSpan(8)、抗性数值、保鲜等级阈值、温室棚顶倍率/比例、双门倍率、tick 限制。
构建
./gradlew build
# JAR → build/libs/firmalifehardcore-neoforge-0.3.1-beta.jar
许可证
MIT
中文
一个 NeoForge 1.21.1 Mod,彻底重写 Firmalife 的地窖和温室机制——不再需要气候站。封闭空间通过 BFS floodfill + AABB 动态追踪自动检测,任意保温方块围成的空间即可生效。
地窖与温室
放置/破坏墙体或容器方块时自动扫描。每个墙体方块根据 block tag 提供热阻值:
| 等级 | 热阻 | 典型方块 |
|——|——|———-|
| HIGH | 0.75 | 密封砖 |
| MEDIUM | 0.55 | 岩石或矿石、泥土类(耕地和草径不算)、各种砖、木头类|
| LOW | 0.25 | 玻璃(块/板)、金属块煤块等、砂岩、灌溉水箱 |
门算中等热阻,双门 4 倍加成。
地窖:地窖基准温度 = 4 °C,室内温度 = 室外温度 – (室外温度-基准) × 平均热阻。温度越低保鲜越好(≤16°C SHELVED / ≤8°C SHELVED_2 / ≤0°C SHELVED_3)。
温室:屋顶玻璃屋顶 ≥ 50% 可见天空 → 温室。温室基准 = 4 + 40 × 棚顶比例(°C)。
温度 API:getInstantTemperature() 和 getAverageTemperature() 均被拦截。即时返回有效温度(随天气波动),年均返回室内基准温度(稳定微气候,供灌木/果树判气候适宜度)。
容器保鲜
| 容器 | 机制 |
|——|——|
| 食品架 | 三级 SHELVED trait(ClimateReceiver) |
| 风干架 | 三级 HUNG trait(ClimateReceiver) |
| 大缸 | 密封时附加 SHELVED,解封时清除 |
通过 #firmalifehardcore:cellar_containers tag 自动识别。
温度计
红石信号(服务端)+ Jade tooltip(”室内温度”)显示温室/地窖有效温度。户外自动回退 TFC 原生显示。
灌溉系统改造(Phase 2)
全面升级 Firmalife 灌溉系统(水泵站、灌溉水箱、洒水器),引入真实流体机制。
水泵站 — 现在是 NeoForge IFluidHandler 流体容器:
- 基础 500mB 储水,正上方每堆叠一个灌溉水箱 +500mB(最多 3 个)
- 从下方水源取水,储水速率与机械转速成正比
- 通过 NeoForge 能力系统注册,兼容外部流体管道
- 每 tick 填充按 Z 坐标错峰(每 80 tick 一次,×80 避免截断——与洒水器同周期,15 RPM 时精确注入 25mB/80tick 零损失)
- 注水按维度隔离:水泵只在自己的维度 tick 时注水(避免多维度重复注水)
洒水器 — 真实水消耗:
- 每次喷水消耗 5mB(~80 tick),5 个洒水器每 80 tick 消耗 25mB,与 15 RPM 水泵注入量(25mB/80tick)精确平衡——设计平衡点
searchForFluid遵守 drain 参数:探测调用(drain=false,如其他 mod 的周期检查)只检查水位与压力,绝不消耗水泵水- 泵压公式:
水泵Y + 水箱数 + RPM − 洒水器Y ≥ 0——重力+水箱+转速决定水能送到的高度 - 水箱计数事件驱动(缓存,水箱放置/破坏时刷新;100 tick 保底重扫)
灌溉水箱 — 加入 LOW 热阻标签。墙内水箱充当管道穿墙接口;BFS 将水箱视为管道节点穿越。
Jade — 洒水器显示温室/地窖状态(自定义 Jade 提供者)。水泵水位由 NeoForge 原生流体 tooltip 显示。
带支撑土
8 种土壤变体,axis_x/axis_z 属性控制视觉。主手支撑梁 + 副手锤右键地面,潜行向下最多 3 格。
6 种纹理:端头(居中/贴边)、纵裂纹、纵横裂纹、横裂纹。两端连接支撑梁自动变横梁,断开自动恢复。
指令
/flhc cellar info — 地窖/温室诊断信息
/flhc cellar recalc — 强制重算(4 级权限)
/flhc cellar list — 列出所有已追踪空间
/flhc cellar clear — 清空所有已追踪空间(4 级权限)
帕秋莉
在 TFC 手册中注册独立的 FirmaLife HardCore分类(sortnum=11,排在 Firmalife 之后),使用温度计图标,并介绍新版地窖/温室机制。
配置
config/firmalifehardcore-server.toml:maxHorizontalSpan(默认值为 24)、maxVerticalSpan(8)、热阻值、保鲜温度阈值、温室棚顶参数、双门倍率和 tick 处理上限。
构建
./gradlew build
# JAR → build/libs/firmalifehardcore-neoforge-0.3.1-beta.jar
许可证
MIT
常见问题
FirmaLifeHardCore 支持哪些 Minecraft 版本?
FirmaLifeHardCore 支持 Minecraft Java 版 1.21.1,可用的加载器:NeoForge。下载时注意选择和你游戏版本一致的文件。
FirmaLifeHardCore 怎么安装?
先用 PCL2 或 HMCL 启动器安装对应版本的 NeoForge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。运行环境:客户端和服务端都要装。
评论
登录后评论和评分