aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java
diff options
context:
space:
mode:
authormiozune <miozune@gmail.com>2023-01-25 18:35:33 +0900
committerGitHub <noreply@github.com>2023-01-25 10:35:33 +0100
commite6fff394d2baa6d8c91ba3f47e2f9de10d9305d5 (patch)
treee47c87538c1f6eafbbbf71d8d8add1fe469c9c34 /src/main/java/gregtech/api/metatileentity/MetaTileEntity.java
parenta7b33ed1abc807d978a9d7d5dab8799d01b796df (diff)
downloadGT5-Unofficial-e6fff394d2baa6d8c91ba3f47e2f9de10d9305d5.tar.gz
GT5-Unofficial-e6fff394d2baa6d8c91ba3f47e2f9de10d9305d5.tar.bz2
GT5-Unofficial-e6fff394d2baa6d8c91ba3f47e2f9de10d9305d5.zip
Add status info of ME buses to Waila (#1684)
Diffstat (limited to 'src/main/java/gregtech/api/metatileentity/MetaTileEntity.java')
-rw-r--r--src/main/java/gregtech/api/metatileentity/MetaTileEntity.java33
1 files changed, 32 insertions, 1 deletions
diff --git a/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java
index de2b118c71..eb4e797c49 100644
--- a/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java
+++ b/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java
@@ -2,11 +2,14 @@ package gregtech.api.metatileentity;
import static gregtech.api.enums.GT_Values.V;
+import appeng.api.implementations.IPowerChannelState;
import appeng.api.networking.energy.IEnergyGrid;
import appeng.api.networking.pathing.IPathingGrid;
import appeng.api.util.AECableType;
+import appeng.core.localization.WailaText;
import appeng.me.helpers.AENetworkProxy;
import com.gtnewhorizons.modularui.api.forge.ItemStackHandler;
+import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.Optional;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@@ -1189,12 +1192,40 @@ public abstract class MetaTileEntity implements IMetaTileEntity, IMachineCallbac
"Facing: %s",
ForgeDirection.getOrientation(mBaseMetaTileEntity.getFrontFacing())
.name()));
+
+ if (Loader.isModLoaded("appliedenergistics2") && this instanceof IPowerChannelState) {
+ // adapted from PowerStateWailaDataProvider
+ final IPowerChannelState state = (IPowerChannelState) this;
+ NBTTagCompound tag = accessor.getNBTData();
+ final boolean isActive = tag.getBoolean("isActive");
+ final boolean isPowered = tag.getBoolean("isPowered");
+ final boolean isBooting = tag.getBoolean("isBooting");
+
+ if (isBooting) {
+ currenttip.add(WailaText.Booting.getLocal());
+ } else if (isActive && isPowered) {
+ currenttip.add(WailaText.DeviceOnline.getLocal());
+ } else if (isPowered) {
+ currenttip.add(WailaText.DeviceMissingChannel.getLocal());
+ } else {
+ currenttip.add(WailaText.DeviceOffline.getLocal());
+ }
+ }
}
@Override
public void getWailaNBTData(
EntityPlayerMP player, TileEntity tile, NBTTagCompound tag, World world, int x, int y, int z) {
- /* Empty */
+ if (Loader.isModLoaded("appliedenergistics2") && this instanceof IPowerChannelState) {
+ // adapted from PowerStateWailaDataProvider
+ final IPowerChannelState state = (IPowerChannelState) this;
+ final boolean isActive = state.isActive();
+ final boolean isPowered = state.isPowered();
+ final boolean isBooting = state.isBooting();
+ tag.setBoolean("isActive", isActive);
+ tag.setBoolean("isPowered", isPowered);
+ tag.setBoolean("isBooting", isBooting);
+ }
}
@Optional.Method(modid = "appliedenergistics2")