引擎 Lua API
引擎通过 CC:Tweaked 的 ccpe:engine 外设控制。包裹任意核心节——外设挂在引擎 controller 上,非 controller 节委托给它:
local e = peripheral.wrap("front")
-- 或:peripheral.find("ccpe:engine")
读与写
- 读方法
mainThread=false 直读 controller 缓存状态——最多滞后 1 tick,高频轮询几乎零成本。
- 写方法与
getFluidTanks() mainThread=true(服务端权威,需扫描世界)。
方法表
| 方法 |
mainThread |
返回 |
说明 |
getTemperature() |
false |
number |
引擎温度 °C |
isOverheated() |
false |
boolean |
过热锁定(仅流体引擎:T≥220°C 硬停,T≤200°C 解锁) |
getFluidTanks() |
true |
table[] |
所有连接储罐:{fluid, amount, remaining, capacity}(空罐 fluid 为 nil) |
getThrottle() |
false |
number |
油门 0..1(默认 0.25)。应力与转速同比例(0 = 停机不烧油,唯一启停控制) |
setThrottle(0~1) |
true |
boolean |
设置油门(越界钳制;非法参数返回 false) |
getMixture() |
false |
number |
混合比杆 0.6..1.4(仅流体引擎;蒸汽恒 1.0) |
setMixture(x) |
true |
boolean |
混合比:油耗 × 杆值、温度 × 热因子;无门控(纯存值,非流体引擎不生效) |
getEffectiveMixture() |
false |
number |
实际混合比 = 杆 × 高空自动富油(经济窗口与发热反馈用;高空 > 杆值) |
getAutoRichness() |
false |
number |
自然高度混合比 = 仅高度自动浓稀系数(不含杆值):海平面 1.0,高空最高 ×1.25,海平面以下高气压最低 ×0.75(自动稀油)(蒸汽恒 1.0)。海拔补偿参考——拉到 ≈ 1 / getAutoRichness() 使 m_eff ≈ 1.0 |
getFuelEconomyFactor() |
false |
number |
经济系数 0.75..1.0(温度+混合比双达标渐入 15s;混合比不对无奖励无惩罚) |
hasAirDuct() |
false |
boolean |
是否装冷却气道(信息用;setMixture/setCooling 均无门控,装风道时风门值才被 K_DUCT 分量消费) |
getActiveFuel() |
false |
table |
活动燃料:流体 {type="fluid", fluid=<id>, optimalTemp=155};蒸汽 {type="steam", optimalTemp=155};停机 {type="none"} |
getCooling() |
false |
number |
冷却风门 0..1(默认 1.0) |
setCooling(0~1) |
true |
boolean |
风门:只缩 K_DUCT 风道散热分量,只能降;无门控(纯存值,仅装冷却气道时被消费) |
isWarmingUp() |
false |
boolean |
蒸汽暖机中(T<100°C 只烧不发电) |
状态档位(流体引擎,按 getTemperature())
| 温度区间 |
状态 |
| —(!running) |
停机 |
| < ~97°C |
过冷(油耗惩罚中) |
| 97 ~ 145°C |
正常 |
| 145 ~ 165°C |
高效(经济带) |
| 165 ~ 200°C |
正常 |
| 200 ~ <220°C |
即将过热 |
| ≥ 220°C |
过热 |