跳转至

引擎 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 过热