Mari023 / AE2WirelessTerminalLibrary

port of https://github.com/p455w0rd/AE2WirelessTerminalLibrary for fabric
MIT License
9 stars 26 forks source link
ae2 appliedenergistics2 fabric minecraft mod

build main Curseforge downloads Modrinth downloads Modrinth Versions

Applied Energistics 2 Wireless Terminals

This is a Neoforge port of Wireless Crafting Terminal, Wireless Pattern Terminal, Wireless Interface Terminal, Wireless Fluid Terminal and Wireless Terminal Library

It features several wireless versions of Applied Energistics 2 terminals with support for a Quantum Bridge Card, which allows terminals to work from everywhere and even across dimensions.

It also adds a wireless universal terminal which has all wireless terminals in one item

Missing Features / Known Issues

License

API

Like ae2, ae2wtlib is available on modmaven

repositories {
    maven {
        url = uri("https://modmaven.dev/")
        content {
            includeGroup "appeng"
            includeGroup "de.mari_023"
        }
    }
}

ae2wtlib has an api, which is what you should compile against when making integrations with ae2wtlib

dependencies {
    implementation("de.mari_023:ae2wtlib_api:VERSION")
    runtimeOnly("de.mari_023:ae2wtlib:VERSION")
}

If you want to add your own terminals, you should jar-in-jar ae2wtlib_api

dependencies {
    jarJar(implementation("de.mari_023:ae2wtlib_api:VERSION"))
    runtimeOnly("de.mari_023:ae2wtlib:VERSION")
}

If you want to add upgrades to ae2wtlib terminals, you can use UpgradeHelper#addUpgradeToAllTerminals

addUpgradeToAllTerminals(upgradeCard, maxSupported);
// use 0 to add the maximum amount of upgrades the terminal can fit
addUpgradeToAllTerminals(upgradeCard, 0);

Adding terminals

For a simple example of a wireless terminal, you can look at the Wireless Pattern Access Terminal. The related classes are ItemWAT, WATMenu, WATMenuHost and WATScreen

For registration, you need to listen to the AddTerminalEvent (it isn't actually an EventBus event)

AddTerminalEvent.register(event -> event.builder(
        ...
).addTerminal())

The builder has some additional methods for overriding properties that are inferred from other attributes, like WTDefinitionBuilder#translationKey