来源:
data/lua/README.md
data/lua/manifest.schema.json
data/lua/types/ccb_api_v5.d.lua
data/lua/reference/ccb_public_api_v5.json
data/lua/reference/ccb_public_api_v5_coverage.json
tools/lua_api/README.md
commit d32b9cc880a8
api-contract
Lua 内容待修订: 本页仍含已移除的 v5 接口或旧运行时示例,不可作为当前 Lua 开发依据。请使用 Platform v1 入门。
有限水体与环境物理系统技术手册 (Finite Water & Environment Manual)¶
本手册详细剖析 Cataclysm: Cleanwater Bomb (CCB) 独创的 有限水体流体动力学(Finite Water System)、微气象模拟与环境物理场机制。
1. 有限水体物理动力学 (Finite Water Dynamics)¶
在传统分支中,水体常被视为静态、无穷无尽的装饰背景。而在 CCB 引擎中,水体是一套遵循严格质量守恒定律的高精度流体网格系统:
- 体积守恒与流动网格:
- 每一个网格单元记录流体体积(毫升)。
- 水体会受到重力驱动,沿着地势高低差和三维楼层阶梯向低处流动并在低洼地形自然聚集成池塘。
- 水体交互机制:
- 水泵抽取与灌溉:水体被水泵抽走后,该网格的实际水位会真实下降,直至枯竭。
- 降雨补充与蒸发:暴风雨天气会持续增加地表水体积;在干燥高温环境中水体会逐渐蒸发消散。
- 阻力与阻断:密闭大门与混凝土防水堤坝可以有效阻断水流扩散。
2. 天气系统与雷暴预报 (Weather & Forecast)¶
CCB 的天气系统根据气压、温度与风向生成动态微气象:
game.weather.get_storm_forecast(target_pos, forecast_hours) -> table¶
查询指定坐标在未来指定时间窗口内的强对流风暴与气象预警。
参数 (Parameters):
* target_pos (Tripoint, 必填): 目标三维网格坐标。
* forecast_hours (integer, 必填): 预报展望时间跨度,单位:小时。
返回值 (Returns):
* table: 气象预报结构体,包含以下字段:
* has_storm (boolean): 是否有强对流暴风雨/雷暴降临。
* intensity (number): 风暴强度指数(0.0 ~ 1.0)。
* wind_speed (number): 预测风速,单位:km/h。
* predicted_turn (integer): 预计风暴抵达的游戏回合数。
实战示例 (Example):
-- 查询当前避难所上方未来 6 小时的风暴预警
local forecast = game.weather.get_storm_forecast(player:pos(), 6)
if forecast.has_storm and forecast.intensity > 0.7 then
game.add_msg("warning", "气象雷达警报:一场强热带风暴预计将在 %d 回合后降临,风速可达 %.1f km/h!",
forecast.predicted_turn - game.time.turn(), forecast.wind_speed)
end
3. 环境物理场与扩散模拟 (Fields & Diffusion)¶
引擎中的火焰、浓烟、毒雾与酸液通过 field_entry 进行物理演化:
- 火焰场 (
fd_fire):根据周围地形材质的易燃度消耗氧气并向邻近格蔓延,释放高温热辐射与浓烟。 - 烟雾场 (
fd_smoke):阻挡远程视线射程,长时间吸入会导致角色剧烈咳嗽与窒息伤害。 - 毒气与神经毒素 (
fd_gas_vent):需要气密防毒面具或防化服阻隔。