diff options
author | miozune <miozune@gmail.com> | 2023-01-25 18:35:33 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-25 10:35:33 +0100 |
commit | e6fff394d2baa6d8c91ba3f47e2f9de10d9305d5 (patch) | |
tree | e47c87538c1f6eafbbbf71d8d8add1fe469c9c34 /src | |
parent | a7b33ed1abc807d978a9d7d5dab8799d01b796df (diff) | |
download | GT5-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')
4 files changed, 78 insertions, 4 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") diff --git a/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_InputBus_ME.java b/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_InputBus_ME.java index d7619da823..f8bc564ab4 100644 --- a/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_InputBus_ME.java +++ b/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_InputBus_ME.java @@ -5,6 +5,7 @@ import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_ME_INPUT_HATCH_ACTI import appeng.api.config.Actionable; import appeng.api.config.PowerMultiplier; +import appeng.api.implementations.IPowerChannelState; import appeng.api.networking.GridFlags; import appeng.api.networking.security.BaseActionSource; import appeng.api.networking.security.IActionHost; @@ -41,8 +42,9 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; import net.minecraftforge.common.util.ForgeDirection; +@Optional.Interface(iface = "appeng.api.implementations.IPowerChannelState", modid = "appliedenergistics2") public class GT_MetaTileEntity_Hatch_InputBus_ME extends GT_MetaTileEntity_Hatch_InputBus - implements IConfigurationCircuitSupport, IAddGregtechLogo, IAddUIWidgets { + implements IConfigurationCircuitSupport, IAddGregtechLogo, IAddUIWidgets, IPowerChannelState { private static final int SLOT_COUNT = 16; private BaseActionSource requestSource = null; private AENetworkProxy gridProxy = null; @@ -112,6 +114,18 @@ public class GT_MetaTileEntity_Hatch_InputBus_ME extends GT_MetaTileEntity_Hatch public void gridChanged() {} @Override + @Optional.Method(modid = "appliedenergistics2") + public boolean isPowered() { + return getProxy() != null && getProxy().isPowered(); + } + + @Override + @Optional.Method(modid = "appliedenergistics2") + public boolean isActive() { + return getProxy() != null && getProxy().isActive(); + } + + @Override public void saveNBTData(NBTTagCompound aNBT) { super.saveNBTData(aNBT); int[] sizes = new int[16]; diff --git a/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_OutputBus_ME.java b/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_OutputBus_ME.java index 579884c332..e52ff2796b 100644 --- a/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_OutputBus_ME.java +++ b/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_OutputBus_ME.java @@ -4,6 +4,7 @@ import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_ME_HATCH; import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_ME_HATCH_ACTIVE; import appeng.api.AEApi; +import appeng.api.implementations.IPowerChannelState; import appeng.api.networking.GridFlags; import appeng.api.networking.security.BaseActionSource; import appeng.api.networking.security.IActionHost; @@ -40,7 +41,9 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.StatCollector; import net.minecraftforge.common.util.ForgeDirection; -public class GT_MetaTileEntity_Hatch_OutputBus_ME extends GT_MetaTileEntity_Hatch_OutputBus { +@Optional.Interface(iface = "appeng.api.implementations.IPowerChannelState", modid = "appliedenergistics2") +public class GT_MetaTileEntity_Hatch_OutputBus_ME extends GT_MetaTileEntity_Hatch_OutputBus + implements IPowerChannelState { private BaseActionSource requestSource = null; private AENetworkProxy gridProxy = null; IItemList<IAEItemStack> itemCache = @@ -181,6 +184,18 @@ public class GT_MetaTileEntity_Hatch_OutputBus_ME extends GT_MetaTileEntity_Hatc } @Override + @Optional.Method(modid = "appliedenergistics2") + public boolean isPowered() { + return getProxy() != null && getProxy().isPowered(); + } + + @Override + @Optional.Method(modid = "appliedenergistics2") + public boolean isActive() { + return getProxy() != null && getProxy().isActive(); + } + + @Override public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { if (GT_Values.GT.isServerSide()) { tickCounter = aTick; diff --git a/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_Output_ME.java b/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_Output_ME.java index 940a4ad4ab..6fbcbe4681 100644 --- a/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_Output_ME.java +++ b/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_Output_ME.java @@ -6,6 +6,7 @@ import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_ME_FLUID_HATCH_ACTI import appeng.api.AEApi; import appeng.api.config.Actionable; import appeng.api.config.PowerMultiplier; +import appeng.api.implementations.IPowerChannelState; import appeng.api.networking.GridFlags; import appeng.api.networking.energy.IEnergySource; import appeng.api.networking.security.BaseActionSource; @@ -45,7 +46,8 @@ import net.minecraft.util.StatCollector; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; -public class GT_MetaTileEntity_Hatch_Output_ME extends GT_MetaTileEntity_Hatch_Output { +@Optional.Interface(iface = "appeng.api.implementations.IPowerChannelState", modid = "appliedenergistics2") +public class GT_MetaTileEntity_Hatch_Output_ME extends GT_MetaTileEntity_Hatch_Output implements IPowerChannelState { private BaseActionSource requestSource = null; private AENetworkProxy gridProxy = null; IItemList<IAEFluidStack> fluidCache = @@ -203,6 +205,18 @@ public class GT_MetaTileEntity_Hatch_Output_ME extends GT_MetaTileEntity_Hatch_O } @Override + @Optional.Method(modid = "appliedenergistics2") + public boolean isPowered() { + return getProxy() != null && getProxy().isPowered(); + } + + @Override + @Optional.Method(modid = "appliedenergistics2") + public boolean isActive() { + return getProxy() != null && getProxy().isActive(); + } + + @Override public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { if (GT_Values.GT.isServerSide()) { tickCounter = aTick; |