本页说明 OpenComputers 与 Computronics 为 Ender IO 提供的集成接口。内容涵盖机器状态、电容库、经验存储方块、侧面 IO 配置、电力监视器、通用储能、红石控制、telepad、维度收发器、真空箱和天气方尖碑。
- 依赖:
enderio - 标签:
integration-required
enderio_machinecapacitor_bankexperience_tileio_config_tilepower_monitorpower_storageredstone_tiletelepaddimensional_transceivervacuum_chestweather_obelisk
- 监控 Ender IO 机器是否活跃、当前进度如何。
- 调整电容库吞吐量和红石门控模式。
- 读取或修改每个侧面的 IO 配置。
- 在 Lua 中配置 telepad 目标位置。
- 自动化管理维度收发器频道成员关系。
- 监控电力网络、经验容器、真空范围和天气装置。
enderio_machine 是一个共享组件族。某个具体机器会暴露哪部分接口,取决于它实现了哪些 Ender IO 接口。
- 语法:
isActive(): boolean - 用途: 返回机器当前是否处于活动状态。
- 使用说明:
- 这个接口来自
AbstractMachineEntity驱动。
- 这个接口来自
- 语法:
getPowerPerTick(): number - 用途: 返回机器每 tick 的耗能值,读取自
getPowerUsePerTick()。 - 使用说明:
- 这个接口来自
AbstractPoweredMachineEntity驱动。
- 这个接口来自
- 语法:
getProgress(): number - 用途: 返回机器当前的内部进度值。
- 使用说明:
- 这个接口来自
IProgressTile驱动。 - 返回值就是 Ender IO 内部保存的原始进度,不保证是规范化百分比。
- 这个接口来自
capacitor_bank 组件对应 Ender IO 电容库。
- 语法:
getAverageInputPerTick(): number - 用途: 返回最近的平均每 tick 输入能量。
- 返回值:
- 如果该电容库属于一个 bank 网络,则返回网络平均值。
- 如果当前没有网络对象,则返回
0。
- 语法:
getAverageOutputPerTick(): number - 用途: 返回最近的平均每 tick 输出能量。
- 返回值:
- 如果该电容库属于一个 bank 网络,则返回网络平均值。
- 如果当前没有网络对象,则返回
0。
- 语法:
getAverageChangePerTick(): number - 用途: 返回最近的平均每 tick 净变化量。
- 返回值:
- 如果该电容库属于一个 bank 网络,则返回网络平均值。
- 如果当前没有网络对象,则返回
0。
- 语法:
setMaxInput(max: number) - 用途: 修改最大输入速率。
- 参数:
max: 新的最大输入值。
- 返回值:
- 成功时没有有意义的返回值。
- 使用说明:
- 如果电容库已经加入网络,写入会作用在网络对象上,而不是单个方块实例上。
- 语法:
setMaxOutput(max: number) - 用途: 修改最大输出速率。
- 参数:
max: 新的最大输出值。
- 返回值:
- 成功时没有有意义的返回值。
- 使用说明:
- 如果电容库已经加入网络,写入会作用在网络对象上,而不是单个方块实例上。
- 语法:
getInputMode(): string - 用途: 返回输入侧当前的红石控制模式。
- 语法:
getOutputMode(): string - 用途: 返回输出侧当前的红石控制模式。
- 语法:
setInputMode(mode: string) - 用途: 修改输入侧的红石控制模式。
- 参数:
mode:ignore、on、off、never之一。
- 返回值:
- 成功时没有有意义的返回值。
- 使用说明:
- 非法值会报错
No valid Redstone mode given。
- 非法值会报错
- 语法:
setOutputMode(mode: string) - 用途: 修改输出侧的红石控制模式。
- 参数:
mode:ignore、on、off、never之一。
- 返回值:
- 成功时没有有意义的返回值。
- 使用说明:
- 非法值会报错
No valid Redstone mode given。
- 非法值会报错
- 语法:
redstone_modes - 用途: 返回支持的全部红石控制模式列表。
- 返回值:
- 一个带索引的 Lua 表,内容是
ignore、on、off、never。
- 一个带索引的 Lua 表,内容是
experience_tile 组件对应实现了 IHaveExperience 的 Ender IO 方块。
- 语法:
getExperience(): number - 用途: 返回经验容器当前保存的总经验值。
- 语法:
getExperienceLevels(): number - 用途: 返回当前折算出来的经验等级数。
- 语法:
getMaxExperience(): number - 用途: 返回该方块最多可存储的经验值。
io_config_tile 组件对应支持每侧 IO 配置的 Ender IO 机器。
- 语法:
getIOMode(side: number): string - 用途: 返回某个侧面当前的 IO 模式。
- 参数:
side: 从1到6的侧面编号。
- 返回值:
- 一个小写模式名。
- 使用说明:
- 驱动会把 Lua 里的侧面编号转换成从
0开始的ForgeDirection。 - 超出
1..6的值会报错side needs to be between 1 and 6。
- 驱动会把 Lua 里的侧面编号转换成从
- 语法:
setIOMode(side: number, mode: string) - 用途: 修改某个侧面的 IO 模式。
- 参数:
side: 从1到6的侧面编号。mode:none、pull、push、push_pull、disabled之一。
- 返回值:
- 成功时没有有意义的返回值。
- 使用说明:
- 非法侧面会报错
side needs to be between 1 and 6。 - 非法模式会报错
No valid IO mode given。
- 非法侧面会报错
- 语法:
io_modes - 用途: 返回支持的全部 IO 模式列表。
- 返回值:
- 一个带索引的 Lua 表,内容是
none、pull、push、push_pull、disabled。
- 一个带索引的 Lua 表,内容是
power_monitor 组件对应 Ender IO 电力监视器。
- 语法:
getPowerInConduits(): number - 用途: 返回导管网络当前储存的能量。
- 语法:
getMaxPowerInConduits(): number - 用途: 返回导管网络最大可储存能量。
- 语法:
getPowerInCapBanks(): number - 用途: 返回连接电容库当前储存的能量。
- 语法:
getMaxPowerInCapBanks(): number - 用途: 返回连接电容库最大可储存能量。
- 语法:
getPowerInMachines(): number - 用途: 返回连接机器当前储存的能量。
- 语法:
getMaxPowerInMachines(): number - 用途: 返回连接机器最大可储存能量。
- 语法:
getAverageEnergySent(): number - 用途: 返回最近的平均能量发送值。
- 语法:
getAverageEnergyReceived(): number - 用途: 返回最近的平均能量接收值。
- 语法:
isEngineControlEnabled(): boolean - 用途: 返回 Engine Control 当前是否启用。
- 语法:
setEngineControlEnabled(control: boolean) - 用途: 启用或禁用 Engine Control。
- 参数:
control: 目标 Engine Control 状态。
- 返回值:
- 成功时没有有意义的返回值。
- 使用说明:
- ComputerCraft 分支里的报错文案误写成了
first argument needs to be a number,但真实要求的类型仍然是布尔值。
- ComputerCraft 分支里的报错文案误写成了
- 语法:
getStartLevel(): number - 用途: 返回开始输出红石时使用的阈值。
- 语法:
setStartLevel(level: number) - 用途: 修改开始输出红石时使用的阈值。
- 参数:
level: 新阈值。
- 返回值:
- 成功时没有有意义的返回值。
- 使用说明:
- 驱动会把这个值按浮点数保存。
- 语法:
getStopLevel(): number - 用途: 返回停止输出红石时使用的阈值。
- 语法:
setStopLevel(level: number) - 用途: 修改停止输出红石时使用的阈值。
- 参数:
level: 新阈值。
- 返回值:
- 成功时没有有意义的返回值。
- 使用说明:
- 驱动会把这个值按浮点数保存。
power_storage 组件对应实现了 IPowerStorage 的通用 Ender IO 储能方块。
- 语法:
getMaxInput(): number - 用途: 返回最大输入速率。
- 语法:
getMaxOutput(): number - 用途: 返回最大输出速率。
- 语法:
getEnergyStored(): number - 用途: 返回当前储能量。
- 语法:
getMaxEnergyStored(): number - 用途: 返回最大储能容量。
- 这些接口都是只读接口。
- OC 驱动在一条内部路径里复用了类似 capacitor bank 的环境命名,但对外语义上这组接口描述的是通用储能能力。
redstone_tile 组件对应实现了通用红石模式控制的 Ender IO 方块。
- 语法:
getRedstoneMode(): string - 用途: 返回当前红石控制模式。
- 语法:
setRedstoneMode(mode: string) - 用途: 修改红石控制模式。
- 参数:
mode:ignore、on、off、never之一。
- 返回值:
- 成功时没有有意义的返回值。
- 使用说明:
- 非法值会报错
No valid Redstone mode given。
- 非法值会报错
- 语法:
redstone_modes - 用途: 返回支持的全部红石模式列表。
- 返回值:
- 一个带索引的 Lua 表,内容是
ignore、on、off、never。
- 一个带索引的 Lua 表,内容是
telepad 组件对应 Ender IO telepad。
- 语法:
getX(): number - 用途: 返回当前配置的目标 X 坐标。
- 使用说明:
- 只有 telepad 已经处于有效网络结构中时才能调用,否则会报错
telepad is not a valid structure。
- 只有 telepad 已经处于有效网络结构中时才能调用,否则会报错
- 语法:
getY(): number - 用途: 返回当前配置的目标 Y 坐标。
- 使用说明:
- 只有 telepad 已经处于有效网络结构中时才能调用。
- 语法:
getZ(): number - 用途: 返回当前配置的目标 Z 坐标。
- 使用说明:
- 只有 telepad 已经处于有效网络结构中时才能调用。
- 语法:
getCoords(): number, number, number - 用途: 返回当前配置的目标坐标。
- 使用说明:
- 只有 telepad 已经处于有效网络结构中时才能调用。
- 语法:
getDimension(): number - 用途: 返回当前配置的目标维度 ID。
- 使用说明:
- 只有 telepad 已经处于有效网络结构中时才能调用。
- 语法:
setX(x: number): number | nil, string? - 用途: 修改目标 X 坐标。
- 参数:
x: 新的目标 X 坐标。
- 返回值:
- 成功时返回新的 X 坐标。
- 如果配置禁止修改坐标,则返回
nil, "not enabled in config"。
- 使用说明:
- 只有 telepad 已经处于有效网络结构中时才能调用。
- 语法:
setY(y: number): number | nil, string? - 用途: 修改目标 Y 坐标。
- 参数:
y: 新的目标 Y 坐标。
- 返回值:
- 成功时返回新的 Y 坐标。
- 如果配置禁止修改坐标,则返回
nil, "not enabled in config"。
- 使用说明:
- 只有 telepad 已经处于有效网络结构中时才能调用。
- 语法:
setZ(z: number): number | nil, string? - 用途: 修改目标 Z 坐标。
- 参数:
z: 新的目标 Z 坐标。
- 返回值:
- 成功时返回新的 Z 坐标。
- 如果配置禁止修改坐标,则返回
nil, "not enabled in config"。
- 使用说明:
- 只有 telepad 已经处于有效网络结构中时才能调用。
- 语法:
setCoords(x: number, y: number, z: number): number, number, number | nil, string? - 用途: 一次修改全部目标坐标。
- 参数:
x、y、z: 新的目标坐标。
- 返回值:
- 成功时返回新的
x, y, z。 - 如果配置禁止修改坐标,则返回
nil, "not enabled in config"。
- 成功时返回新的
- 使用说明:
- 只有 telepad 已经处于有效网络结构中时才能调用。
- 语法:
setDimension(dimension: number): number | nil, string? - 用途: 修改目标维度 ID。
- 参数:
dimension: 新的维度 ID。
- 返回值:
- 成功时返回新的维度 ID。
- 如果配置禁止修改维度,则返回
nil, "not enabled in config"。
- 使用说明:
- 只有 telepad 已经处于有效网络结构中时才能调用。
- 语法:
teleport() - 用途: 激活 telepad 并传送符合条件的实体。
- 返回值:
- 成功时没有有意义的返回值。
- 使用说明:
- OC 驱动会先检查 telepad 是否为有效结构,否则报错
telepad is not a valid structure。
- OC 驱动会先检查 telepad 是否为有效结构,否则报错
- 语法:
isValid(): boolean - 用途: 返回 telepad 当前是否处于有效网络结构中。
dimensional_transceiver 组件对应 Ender IO 维度收发器。
- 语法:
getSendChannels(channelType: string): table - 用途: 返回该收发器当前针对指定类型配置的发送频道列表。
- 参数:
channelType:power、item、fluid、rail之一。
- 返回值:
- 一个带索引的 Lua 表,内容是频道名。
- 使用说明:
- 非法频道类型会报错
No valid channel type given。
- 非法频道类型会报错
- 语法:
setSendChannel(channelType: string, name: string, shouldSend: boolean): boolean - 用途: 把一个频道加入或移出本地发送配置。
- 参数:
channelType:power、item、fluid、rail之一。name: 频道名。shouldSend: 传true表示加入,传false表示移除。
- 返回值:
- 如果本次修改真正应用成功,则返回
true。 - 如果在对应来源列表中找不到这个频道名,则返回
false。
- 如果本次修改真正应用成功,则返回
- 语法:
getReceiveChannels(channelType: string): table - 用途: 返回该收发器当前针对指定类型配置的接收频道列表。
- 参数:
channelType:power、item、fluid、rail之一。
- 返回值:
- 一个带索引的 Lua 表,内容是频道名。
- 使用说明:
- 非法频道类型会报错
No valid channel type given。
- 非法频道类型会报错
- 语法:
setReceiveChannel(channelType: string, name: string, shouldReceive: boolean): boolean - 用途: 把一个频道加入或移出本地接收配置。
- 参数:
channelType:power、item、fluid、rail之一。name: 频道名。shouldReceive: 传true表示加入,传false表示移除。
- 返回值:
- 如果本次修改真正应用成功,则返回
true。 - 如果在对应来源列表中找不到这个频道名,则返回
false。
- 如果本次修改真正应用成功,则返回
- 语法:
addChannel(channelType: string, name: string): boolean - 用途: 在全局公共频道注册表中新增一个频道。
- 参数:
channelType:power、item、fluid、rail之一。name: 频道名。
- 返回值:
- 新建成功时返回
true。 - 如果同类型同名频道已经存在,或者类型无法解析,则返回
false。
- 新建成功时返回
- 语法:
removeChannel(channelType: string, name: string): boolean - 用途: 从全局公共频道注册表中删除一个频道。
- 参数:
channelType:power、item、fluid、rail之一。name: 频道名。
- 返回值:
- 删除成功时返回
true。 - 找不到匹配频道时返回
false。
- 删除成功时返回
- 语法:
isChannelExisting(channelType: string, name: string): boolean - 用途: 返回公共频道是否存在。
- 语法:
getChannels(channelType: string): table - 用途: 返回指定类型下当前注册的全部公共频道。
- 返回值:
- 一个带索引的 Lua 表,内容是频道名。
- 语法:
isSendChannel(channelType: string, name: string): boolean - 用途: 返回当前收发器是否已配置为向指定频道发送。
- 语法:
isReceiveChannel(channelType: string, name: string): boolean - 用途: 返回当前收发器是否已配置为从指定频道接收。
- 语法:
channel_types - 用途: 返回全部可用频道类型列表。
- 返回值:
- 一个带索引的 Lua 表,内容是
power、item、fluid、rail。
- 一个带索引的 Lua 表,内容是
vacuum_chest 组件对应 Ender IO 真空箱。
- 语法:
getRange(): number - 用途: 返回当前吸取范围。
- 语法:
setRange(range: number) - 用途: 修改吸取范围。
- 参数:
range: 新的范围值。
- 返回值:
- 成功时没有有意义的返回值。
weather_obelisk 组件对应 Ender IO 天气方尖碑。
- 语法:
canActivate(task: number): boolean[, string] - 用途: 返回指定天气任务当前是否可以启动。
- 参数:
task: 天气模式的数字 ID。
- 返回值:
- 对于合法模式 ID,返回
true或false。 - 对于越界 ID,返回
false, "invalid weather mode. needs to be between 1 and N"。
- 对于合法模式 ID,返回
- 使用说明:
- 支持的模式可通过
weather_modes查询。
- 支持的模式可通过
- 语法:
activate(): boolean - 用途: 立即尝试启动一个天气任务。
- 返回值:
- 成功启动任务时返回
true。 - 如果已有任务在运行,或者当前前置条件不满足,则返回
false。
- 成功启动任务时返回
- 使用说明:
- 要成功启动,方尖碑必须具备所需流体、烟花、没有活动任务,并且已经结束冷却。
- 语法:
weather_modes - 用途: 返回天气模式名到数字 ID 的映射表。
- 返回值:
- 一个 Lua 表,包含:
clear = 1rain = 2storm = 3
- 一个 Lua 表,包含:
local component = require("component")
if component.isAvailable("capacitor_bank") then
local bank = component.capacitor_bank
print("Cap bank input mode:", bank.getInputMode())
print("Average change:", bank.getAverageChangePerTick())
end
if component.isAvailable("telepad") then
local telepad = component.telepad
if telepad.isValid() then
local x, y, z = telepad.getCoords()
print("Telepad target:", x, y, z, "dim", telepad.getDimension())
end
endopencomputers-redstone-vanillacomputronics