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.
The bridge block will use when connected to an Applied system 5 AE/t of power as well as consume a channel.
Returns a list of objects that are currently available in the ME system.
{ { type = string, id = string, displayName = string, amount = number }... }
– a table with a list of objects available in the ME system
Returns a list of objects that can be crafted by the ME system.
{ { type = string, id = string, displayName = string }... }
– a table with a list of objects that can be crafted by the ME system
Returns a list of crafting CPUs available in the ME system.
{ 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. |
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.
Returns a list of unfinished crafting jobs issued by the peripheral.
{ { state = string, jobID = string, systemID = string? }... }
– a table with a list of objects for each unfinished job issued by the peripheral.
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).
Returns a list of all the currently being processed crafts by all crafting cpus
{ 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) |
{
{
amount = 1,
displayName = "Oak Planks",
systemID = "minecraft:oak_planks"
}
}
Schedules a crafting job.
type
:string
– the type of the object to craft ("fluid" or "item")id
:string
– the ID of the object to craftamount
:number
– the amount of the object to craft
string
– a unique ID representing the crafting job
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.
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.
The ae2cc:crafting_cancelled
event is fired when a crafting job is cancelled.
string
– the name of the eventstring
– the ID of the cancelled crafting jobstring
- the reason for the cancellation
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. |
The ae2cc:crafting_done
event is fired when a crafting job is done.
string
– the name of the eventstring
– the ID of the finished crafting job
The ae2cc:crafting_started
event is fired when the state of a previously
SCHEDULED crafting job changes to STARTED.
string
– the name of the eventstring
– the ID of the started crafting job
PowerAE2CC Bridge uses a custom versioning scheme that follows the spirit of the SemVer 2.0.0 specification.
Given a version number UPSTREAM.FORK.MINOR.PATCH-MC-LOADER
, increment the:
UPSTREAM
The major version of the upstream project (AE2CC Bridge) that this fork is based onFORK
The major version of this forkMINOR
version when you add functionality in a backwards compatible mannerPATCH
version when you make backwards compatible bug fixes
The MC
version should always be the version string of the targeted version of
Minecraft. If multiple Minecraft versions are supported by a single mod version,
typically the oldest supported version string should be chosen.
Similarly, the LOADER
version should be used to indicate which mod loader the
version was written for (e.g. "FABRIC").
Minecraft Version | State |
---|---|
1.20.1 | Mainline (this fork) |
1.18 | Mainline (upstream) |
1.18 | Unsupported (this fork) |
This is the mainline repository for the development of PowerAE2CC Bridge which usually targets the most recent Minecraft version. The development for other versions of Minecraft happens in the repositories linked in the table above or in the upstream repository.
State | Description |
---|---|
Mainline | The primary development branch |
Active Development | This version still receives all updates |
Maintenance Mode | This version still receives fixes but no new features |
Unsupported | This version is unsupported and does not receive any updates |
This project uses Gradle's toolchain support to detect and select the JDKs required to run the build. Please refer to the build scripts to find out which toolchains are requested.
An installed JDK 17 (or later) is required.
Once the setup is complete, invoke the respective Gradle tasks using the following command on Unix/macOS:
./gradlew <tasks>
or the following command on Windows:
gradlew <tasks>
Important Gradle tasks to remember are:
clean
- clean build resultsbuild
- assemble and test the Java libraryrunClient
- runs the development clientrunServer
- runs the development server
Additionally tasks
may be used to print a list of all available tasks.
Copyright (c) 2022 Leon Linhart
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.