PowerAE2CC Bridge

PowerAE2CC Bridge

AE2CC Bridge 的一个分支,添加了一个简单的外设方块,可用于从 ComputerCraft 计算机访问 Applied Energistics 2 ME 系统。

管理

PowerAE2CC Bridge

PowerAE2CC Bridge 是 AE2CC Bridge 的一个分支,添加了一个简单的外设方块,可用于从 ComputerCraft 计算机访问 应用能源2 ME 网络。

注意:目前,该外设仅暴露了相当小的 API。如果您发现缺少所需功能,请在我们的问题跟踪器中提交功能请求。

方块

当连接到应用能源网络时,该桥接方块将消耗 5 AE/t 的电力,并占用一个频道。

外设 API(函数)

getAvailableObjects()

返回当前 ME 网络中可用的对象列表。

返回值

  1. { { type = string, id = string, displayName = string, amount = number }... } —— 包含 ME 网络中可用对象列表的表。

getCraftableObjects()

返回 ME 网络可以合成的对象列表。

返回值

  1. { { type = string, id = string, displayName = string }... } —— 包含 ME 网络可合成对象列表的表。

getCraftingCPUs()

返回 ME 网络中可用的合成 CPU 列表。

返回值

  1. { cpu... }

其中 cpu 是一个定义如下的表:

键名 类型 描述
availableCoProcessors number 可用协处理器的数量。
availableStorage number 可用合成存储量。
selectionMode string CPU 的选择模式。(ANY、MACHINE_ONLY 或 PLAYER_ONLY)
jobStatus string? 当前运行任务的信息。
name string? CPU 的自定义名称。

其中 jobStatus 是一个定义如下的表:

键名 类型 描述
totalObjects number 任务期间将合成的对象总数。
craftedObjects number 已合成的对象数量。
elapsedNanos number 自任务开始以来经过的时间(以纳秒为单位)。
systemID string? ME 网络分配给正在运行任务的 ID。
output output 任务的输出。

其中 output 定义如下:

键名 类型 描述
amount number 请求的对象数量。
type string 对象的类型。
id string 对象的 ID。
displayName string 对象的显示名称。

备注

由于技术原因,在某些情况下确定 systemID 可能会失败。如果发生这种情况,则不会包含 systemID,并会记录错误。如果您使用的是 AE2 和 AE2CC Bridge 的最新版本,请确保此问题已在您的版本对应的问题跟踪器中得到确认。

getIssuedCraftingJobs

返回由外设发出的未完成合成任务列表。

返回值

  1. { { state = string, jobID = string, systemID = string? }... } —— 包含由外设发出的每个未完成任务对象列表的表。

备注

要使任务包含在输出中,其状态必须为 SCHEDULED 或 STARTED。如果任务已开始运行,将包含额外的 systemID 字段。此 ID 是 ME 网络分配给正在运行任务的 ID(相对于外设本地的 jobID)。

getAllCraftingRequests

返回当前所有合成 CPU 正在处理的所有合成请求列表。

返回值

  1. { craftingRequest, ...}

其中 craftingRequest 是一个具有以下属性的表:

键名 类型 描述
amount number 当前正在合成的物品数量。
displayName string 正在合成物品的显示名称(即游戏内物品名称)。
systemID string 正在合成物品的 ID(遵循 Minecraft 的 ID 体系)。
示例:
{
   {
      amount = 1,
      displayName = "橡木木板",
      systemID = "minecraft:oak_planks"
   }
}

scheduleCrafting(type, id, amount)

安排一个合成任务。

参数

  1. type:string —— 要合成对象的类型("fluid" 或 "item")
  2. id:string —— 要合成对象的 ID
  3. amount:number —— 要合成的对象数量

返回值

  1. string —— 代表合成任务的唯一 ID

备注

注意:此方法特意命名为 scheduleCrafting,因为安排合成任务并不会立即开始合成过程。相反,合成任务会在未来某个时刻当 ME 网络准备就绪时启动。

要处理合成任务,有必要了解其生命周期。

flowchart LR
Scheduled --> Started
Started --> Done
Started --> Cancelled
Scheduled --> Cancelled

最初,新创建的合成任务状态为 SCHEDULED。在创建过程中,ME 网络被指示为该合成任务做准备(包括计算确切的合成方案)。

一旦网络完成所有必要的准备工作,合成任务的状态变为 STARTED。可以使用 ae2cc:crafting_started 事件来监听此状态变化。

最后,当合成任务完成时,其状态变为 DONE,并触发 ae2cc:crafting_done 事件。

此外,如果任务被取消或在任务生命周期的任何阶段发生错误,将触发 ae2cc:crafting_cancelled 事件。

外设 API(事件)

ae2cc:crafting_cancelled

当合成任务被取消时,触发 ae2cc:crafting_cancelled 事件。

返回值

  1. string —— 事件名称
  2. string —— 被取消的合成任务的 ID
  3. string —— 取消原因

备注

取消原因始终为以下之一:

值 描述
CANCELLED 任务被取消(手动或由机器取消)。
CPU_NOT_FOUND 未找到选定的合成 CPU。
INCOMPLETE_PLAN 无法为该任务计算出合成方案。
NO_CPU_FOUND 未找到可执行该任务的合成 CPU。
CPU_BUSY 选定的合成 CPU 正忙。
CPU_OFFLINE 选定的合成 CPU 处于离线状态。
CPU_TO_SMALL 选定的合成 CPU 太小,无法处理该任务。
MISSING_INGREDIENT 无法获取执行该任务所需的一种原料。

ae2cc:crafting_done

当合成任务完成时,触发 ae2cc:crafting_done 事件。

返回值

  1. string —— 事件名称
  2. string —— 已完成的合成任务的 ID

ae2cc:crafting_started

当先前处于 SCHEDULED 状态的合成任务状态变为 STARTED 时,触发 ae2cc:crafting_started 事件。

返回值

  1. string —— 事件名称
  2. string —— 已开始的合成任务的 ID