PowerAE2CC Bridge
A fork of AE2CC Bridge that adds a simple peripheral block that may be used to access an Applied Energistics 2 ME system from ComputerCraft computers.
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
PowerAE2CC Bridge
PowerAE2CC Bridge
PowerAE2CC Bridge is a fork of AE2CC Bridge that adds a simple peripheral block that may be used to access an Applied Energistics 2 ME system from ComputerCraft computers.
> Note: Currently, the peripheral only exposes a fairly small API. If you > find that functionality you need is missing, please file a feature request in > our issue tracker.
Block
The bridge block will use when connected to an Applied system 5 AE/t of power as well as consume a channel.
Peripheral API (Functions)
`getAvailableObjects()`
Returns a list of objects that are currently available in the ME system.
Returns
1. `{ { type = string, id = string, displayName = string, amount = number }... }` – a table with a list of objects available in the ME system
`getCraftableObjects()`
Returns a list of objects that can be crafted by the ME system.
Returns
1. `{ { type = string, id = string, displayName = string }... }` – a table with a list of objects that can be crafted by the ME system
`getCraftingCPUs()`
Returns a list of crafting CPUs available in the ME system.
Returns
1. `{ cpu... }`
where `cpu` is a table defined as follows:
| Key | Type | Description | |-------------------------|-----------|----------------------------------------------------------------------------------| | `availableCoProcessors` | `number` | The number of available co-processors. | | `availableStorage` | `number` | The amount of available crafting storage. | | `selectionMode` | `string` | The selection mode of the CPU. (Either `ANY`, `MACHINE_ONLY`, or `PLAYER_ONLY`.) | | `jobStatus` | `string?` | Information about the currently running job. | | `name` | `string?` | The custom name of the CPU. |
where `jobStatus` is a table defined as follows:
| Key | Type | Description | |------------------|-----------|-----------------------------------------------------------------------| | `totalObjects` | `number` | The total amount of objects that will be crafted during the job. | | `craftedObjects` | `number` | The amount of crafted objects. | | `elapsedNanos` | `number` | The time (in nanoseconds) that has elapsed since the job has started. | | `systemID` | `string?` | The ID given to the running job by the ME system. | | `output` | `output` | The job's output. |
where `output` is defined as follows:
| Key | Type | Description | |---------------|----------|----------------------------------| | `amount` | `number` | The number of requested objects. | | `type` | `string` | The type of the object. | | `id` | `string` | The ID of the object. | | `displayName` | `string` | The display name of the object. |
Remarks
For technical reasons, determining the `systemID` may fail in some cases. If this happens, the `systemID` is not included and an error is logged. If you are using up-to-date versions of AE2 and AE2CC Bridge, please make sure this issue is known in the issue tracker for your versions.
`getIssuedCraftingJobs`
Returns a list of unfinished crafting jobs issued by the peripheral.
Returns
1. `{ { state = string, jobID = string, systemID = string? }... }` – a table with a list of objects for each unfinished job issued by the peripheral.
Remarks
For a job to be included in the output, its state must either be `SCHEDULED` or `STARTED`. If the job has started running, an additional `systemID` is field is included. This ID is the ID given to the running job by the ME system (opposed to the `jobID` which is local to a peripheral).
`getAllCraftingRequests`
Returns a list of all the currently being processed crafts by all crafting cpus
Returns
1. `{ craftingRequest, ...}`
where `craftingRequest` is a table with the following attributes
| Key | Type | Description | |---------------|-----------|------------------------------------------------------------------------| | `amount` | `number` | The amount of the item currently being crafted | | `displayName` | `string` | The display name of the item being crafted (AKA the in game item name) | | `systemID` | `string` | The id of the item being crafted (following minecraft's id system) |
##### Example:
```lua { { amount = 1, displayName = "Oak Planks", systemID = "minecraft:oak_planks" } } ```
`scheduleCrafting(type, id, amount)`
Schedules a crafting job.
Parameters
1. `type`: `string` – the type of the object to craft ("fluid" or "item") 2. `id`: `string` – the ID of the object to craft 3. `amount`: `number` – the amount of the object to craft
Returns
1. `string` – a unique ID representing the crafting job
Remarks
> Note: This method is deliberately named `scheduleCrafting` as scheduling a > crafting job does not actually start a crafting process immediately. Instead, > the crafting job is started at some point in the future when the ME system is > ready.
To work with crafting jobs, it is necessary to understand their lifecycle.
```mermaid flowchart LR Scheduled --> Started Started --> Done Started --> Cancelled Scheduled --> Cancelled ```
Initially, a newly created crafting job's state is `SCHEDULED`. During creation, the ME system is instructed to prepare for the crafting job (which includes calculating) the exact crafting plan.
Once the system has finished all necessary preparations, the crafting job's state changes to `STARTED`. The `ae2cc:crafting_started` event can be used to listen to this state change.
Finally, when the crafting job is finished, it's state changes to `DONE` and the `ae2cc:crafting_done` event is fired.
Additionally, if the job is cancelled or an error occurs at any point of the crafting job's lifecycle, the `ae2cc:crafting_cancelled` event is fired.
Peripheral API (Events)
`ae2cc:crafting_cancelled`
The `ae2cc:crafting_cancelled` event is fired when a crafting job is cancelled.
Return Values
1. `string` – the name of the event 2. `string` – the ID of the cancelled crafting job 3. `string` - the reason for the cancellation
Remarks
The reason for the cancellation is always one of:
| Value | Description | |----------------------|-------------------------------------------------------------| | `CANCELLED` | The job was cancelled (either manually or by a machine). | | `CPU_NOT_FOUND` | The selected crafting CPU was not found. | | `INCOMPLETE_PLAN` | No crafting plan could be calculated for the job. | | `NO_CPU_FOUND` | No crafting CPU to execute the job was found. | | `CPU_BUSY` | The selected crafting CPU is busy. | | `CPU_OFFLINE` | The selected crafting CPU is offline. | | `CPU_TO_SMALL` | The selected crafting CPU is too small to process the job. | | `MISSING_INGREDIENT` | Could not obtain one of the ingredients needed for the job. |
`ae2cc:crafting_done`
The `ae2cc:crafting_done` event is fired when a crafting job is done.
Return Values
1. `string` – the name of the event 2. `string` – the ID of the finished crafting job
`ae2cc:crafting_started`
The `ae2cc:crafting_started` event is fired when the state of a previously SCHEDULED crafting job changes to STARTED.
Return Values
1. `string` – the name of the event 2. `string` – the ID of the started crafting job