👋
Welcome to Advanced Energy
The shapez energy api
About
To have less conflicts between mods and energy an api was created. This api makes use of a network system. All transfers within a network are instant.
Developing using the api
The api has a npm package @dj1tjoo/shapez-advanced-energy. This package contains helper funtion you can use in your mod.
The package exports the AdvancedEnergy class. On this class are static methods to help you
The AdvancedEnergy class exposes the api components. All the api components can only be accessed after the preload state. You can use onLoaded
to make a callback from when the preload state is over.
Component | Usage |
---|---|
EnergyConnectorComponent | A component to make connections with in a newtwork (E.g. simple connector, storage) |
EnergyPinComponent | A component to take and add energy to a network (E.g. energy producer, building that uses energy) |
EnergyTunnelComponent | A component to make connections with in a newtwork with other buildings in between |
The AdvancedEnergy class has the following methods. The methods with a *
can only be accessed after the preload state. You can use onLoaded
to make a callback from when the preload state is over.
Method | Usage |
---|---|
requireInstalled(): void | Shows a dialog on the main menu when the energy mod is not installed |
* isInstalled(): boolean |
Returns if the energy mod is installed |
* getMod(): AdvancedEnergyMod | null; |
Returns the energy mod instance |
* getVersion(): string | null; |
Returns the version of the energy mod instance |
onLoaded(cb: (installed: boolean) => void): void | Register to run callback on energy mod loaded |
enableDebug(): void | Enables debug rendering on connectors |
disableDebug(): void | Disables debug rendering on connectors |
Adding a energy pin
The entity.addComponent
can be called in a buildings setupEntityComponents
entity.addComponent(
new AdvancedEnergy.EnergyPinComponent({
slots: [
{
direction: enumDirection.top,
pos: new Vector(0, 0),
type: "ejector",
productionPerTick: 100,
maxBuffer: 1000,
},
{
direction: enumDirection.bottom,
pos: new Vector(0, 0),
type: "acceptor",
consumptionPerTick: 100,
maxBuffer: 1000,
},
],
})
);