From 53db33a070b479112c82c579ca7b033372629dda Mon Sep 17 00:00:00 2001 From: repo-alt Date: Thu, 7 Jan 2021 19:31:12 +0300 Subject: fixed item detector cover on quantum chests (#398) Co-authored-by: bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com> --- .../gregtech/common/covers/GT_Cover_ItemMeter.java | 37 +++++++++++++--------- 1 file changed, 22 insertions(+), 15 deletions(-) (limited to 'src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java') 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 83b03b65a5..29c752ddf9 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java @@ -7,6 +7,7 @@ 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.tileentity.ICoverable; +import gregtech.api.interfaces.tileentity.IDigitalChest; import gregtech.api.net.GT_Packet_TileEntityCover; import gregtech.api.util.GT_CoverBehavior; import gregtech.api.util.GT_Utility; @@ -34,20 +35,26 @@ public class GT_Cover_ItemMeter else if (aCoverVariable > 1) aCoverVariable = CONVERTED_BIT | Math.min((aCoverVariable - 2), SLOT_MASK); - int[] tSlots; - if ((aCoverVariable & SLOT_MASK) > 0) - tSlots = new int[]{(aCoverVariable & SLOT_MASK) - 1}; - else - tSlots = aTileEntity.getAccessibleSlotsFromSide(aSide); - - int tMax = 0; - int tUsed = 0; - for (int i : tSlots) { - if (i >= 0 && i < aTileEntity.getSizeInventory()) { - tMax+=64; - ItemStack tStack = aTileEntity.getStackInSlot(i); - if (tStack != null) - tUsed += (tStack.stackSize<<6)/tStack.getMaxStackSize(); + long tMax = 0; + long tUsed = 0; + if (aTileEntity instanceof IDigitalChest) { + IDigitalChest dc = (IDigitalChest)aTileEntity; + 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 { + int[] tSlots = (aCoverVariable & SLOT_MASK) > 0 ? + new int[] {(aCoverVariable & SLOT_MASK) - 1} : + aTileEntity.getAccessibleSlotsFromSide(aSide); + + for (int i : tSlots) { + if (i >= 0 && i < aTileEntity.getSizeInventory()) { + tMax += 64; + ItemStack tStack = aTileEntity.getStackInSlot(i); + if (tStack != null) + tUsed += (tStack.stackSize << 6) / tStack.getMaxStackSize(); + } } } @@ -169,7 +176,7 @@ public class GT_Cover_ItemMeter else maxSlot = -1; - if (maxSlot == -1) + if (maxSlot == -1 || tile instanceof IDigitalChest) intSlot.setEnabled(false); } -- cgit From f3e87249e566a8c80a22d1a30dce632abba4033e Mon Sep 17 00:00:00 2001 From: Jason Mitchell Date: Sun, 17 Jan 2021 20:40:23 -0800 Subject: More removal of commented out code, small formatting adjustments --- src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java') 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 29c752ddf9..63966fe12c 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java @@ -17,8 +17,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.fluids.Fluid; -public class GT_Cover_ItemMeter - extends GT_CoverBehavior { +public class GT_Cover_ItemMeter extends GT_CoverBehavior { // format: private static final int SLOT_MASK = 0x3FFFFFF; // 0 = all, 1 = 0 ... -- cgit From 0aa1e75c1b0456dd48c432fc8aba104a6668621d Mon Sep 17 00:00:00 2001 From: repo_alt Date: Sun, 24 Jan 2021 20:26:29 +0300 Subject: Fixed item meter cover for non-quantum chests. Didn't notice that _all_ GT tiles are marked as "digital chest" --- src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java') 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 63966fe12c..a9c7a3c986 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java @@ -7,10 +7,11 @@ 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.tileentity.ICoverable; -import gregtech.api.interfaces.tileentity.IDigitalChest; import gregtech.api.net.GT_Packet_TileEntityCover; import gregtech.api.util.GT_CoverBehavior; import gregtech.api.util.GT_Utility; +import gregtech.common.tileentities.storage.GT_MetaTileEntity_DigitalChestBase; + import net.minecraft.client.gui.GuiButton; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -36,8 +37,8 @@ public class GT_Cover_ItemMeter extends GT_CoverBehavior { long tMax = 0; long tUsed = 0; - if (aTileEntity instanceof IDigitalChest) { - IDigitalChest dc = (IDigitalChest)aTileEntity; + if (aTileEntity instanceof GT_MetaTileEntity_DigitalChestBase) { + GT_MetaTileEntity_DigitalChestBase dc = (GT_MetaTileEntity_DigitalChestBase)aTileEntity; 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) @@ -175,7 +176,7 @@ public class GT_Cover_ItemMeter extends GT_CoverBehavior { else maxSlot = -1; - if (maxSlot == -1 || tile instanceof IDigitalChest) + if (maxSlot == -1 || tile instanceof GT_MetaTileEntity_DigitalChestBase) intSlot.setEnabled(false); } -- cgit From a4e104881944bbc03eddeacb24a6b7bd94cc53ce Mon Sep 17 00:00:00 2001 From: Léa Gris Date: Mon, 24 May 2021 15:37:22 +0200 Subject: feat(glow): iconset machines glow support - Add glow support for all sides and states of iconset machines (same as with basicmachines). Automated code cleanup with IDEA of: - Optiimise all imports (remove unused, sort) - Reorder all modifiers to the canonical preferred order (as stated in the Java Language Specification) - Add all missing @Override annotations --- .../gregtech/common/covers/GT_Cover_ItemMeter.java | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java') 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 a9c7a3c986..5d26f2079e 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java @@ -25,6 +25,7 @@ public class GT_Cover_ItemMeter extends GT_CoverBehavior { private static final int CONVERTED_BIT = 0x80000000; private static final int INVERT_BIT = 0x40000000; + @Override public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) { //Convert from ver. 5.09.33.50 if ((CONVERTED_BIT & aCoverVariable) == 0) @@ -68,6 +69,7 @@ public class GT_Cover_ItemMeter extends GT_CoverBehavior { return aCoverVariable; } + @Override public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { if (aPlayer.isSneaking()) { if ((aCoverVariable & INVERT_BIT) == INVERT_BIT) { @@ -92,34 +94,42 @@ public class GT_Cover_ItemMeter extends GT_CoverBehavior { return CONVERTED_BIT | (aCoverVariable & INVERT_BIT) | slot; } + @Override public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { return true; } + @Override public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { return true; } + @Override public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { return true; } + @Override public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) { return true; } + @Override public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { return true; } + @Override public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) { return true; } + @Override public boolean manipulatesSidedRedstoneOutput(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { return true; } + @Override public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { return 5; } @@ -146,10 +156,10 @@ public class GT_Cover_ItemMeter extends GT_CoverBehavior { private final GT_GuiFakeItemButton intSlotIcon; private int coverVariable; - private final static int startX = 10; - private final static int startY = 25; - private final static int spaceX = 18; - private final static int spaceY = 18; + private static final int startX = 10; + private static final int startY = 25; + private static final int spaceX = 18; + private static final int spaceY = 18; private final int maxSlot; -- cgit