diff options
| author | repo_alt <wvk17@yandex.ru> | 2021-07-22 12:41:17 +0300 |
|---|---|---|
| committer | repo_alt <wvk17@yandex.ru> | 2021-07-22 12:41:17 +0300 |
| commit | cc08b8898a3cdc3a207fe93ff7d2d6b359a66f9b (patch) | |
| tree | db36775b4cbb358d2650ce4643870f2f514e454b /src/main/java/gregtech/common/covers | |
| parent | 2ea19215d5a003f46a9aa3652bed0b72ffa8e202 (diff) | |
| download | GT5-Unofficial-cc08b8898a3cdc3a207fe93ff7d2d6b359a66f9b.tar.gz GT5-Unofficial-cc08b8898a3cdc3a207fe93ff7d2d6b359a66f9b.tar.bz2 GT5-Unofficial-cc08b8898a3cdc3a207fe93ff7d2d6b359a66f9b.zip | |
Added caching to the ME output bus, to reduce stress on ME system in high output rate cases
Also, added item detector cover support to the bus, so that the item detector will signal "full" in case of ME failure
https://github.com/GTNewHorizons/GT-New-Horizons-Modpack/issues/8231
Diffstat (limited to 'src/main/java/gregtech/common/covers')
| -rw-r--r-- | src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java b/src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java index 0bd90745a4..f1c1bc7df7 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java @@ -6,10 +6,13 @@ import gregtech.api.gui.widgets.GT_GuiFakeItemButton; import gregtech.api.gui.widgets.GT_GuiIcon; import gregtech.api.gui.widgets.GT_GuiIconCheckButton; import gregtech.api.gui.widgets.GT_GuiIntegerTextBox; +import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.ICoverable; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.net.GT_Packet_TileEntityCover; import gregtech.api.util.GT_CoverBehavior; import gregtech.api.util.GT_Utility; +import gregtech.common.tileentities.machines.GT_MetaTileEntity_Hatch_OutputBus_ME; import gregtech.common.tileentities.storage.GT_MetaTileEntity_DigitalChestBase; import net.minecraft.client.gui.GuiButton; @@ -43,13 +46,22 @@ public class GT_Cover_ItemMeter extends GT_CoverBehavior { long tMax = 0; long tUsed = 0; - if (aTileEntity instanceof GT_MetaTileEntity_DigitalChestBase) { - GT_MetaTileEntity_DigitalChestBase dc = (GT_MetaTileEntity_DigitalChestBase)aTileEntity; + IMetaTileEntity mte = ((IGregTechTileEntity)aTileEntity).getMetaTileEntity(); + if (mte instanceof GT_MetaTileEntity_DigitalChestBase) { + GT_MetaTileEntity_DigitalChestBase dc = (GT_MetaTileEntity_DigitalChestBase)mte; tMax = dc.getMaxItemCount(); // currently it is limited by int, but there is not much reason for that ItemStack[] inv = dc.getStoredItemData(); if (inv != null && inv.length > 1 && inv[1] != null) tUsed = inv[1].stackSize; - } else { + } + else if (mte instanceof GT_MetaTileEntity_Hatch_OutputBus_ME) { + if (((GT_MetaTileEntity_Hatch_OutputBus_ME)mte).isLastOutputFailed()) + { + tMax = 64; + tUsed = 64; + } + } + else { int[] tSlots = (aCoverVariable & SLOT_MASK) > 0 ? new int[] {(aCoverVariable & SLOT_MASK) - 1} : aTileEntity.getAccessibleSlotsFromSide(aSide); |
