From 6968f15a7190f6a97ad598cbb9e6dd1e18a594de Mon Sep 17 00:00:00 2001 From: miozune Date: Mon, 29 May 2023 19:11:57 +0900 Subject: Allow setting larger threshold of item detector cover for digital chests (#2035) --- .../gregtech/common/covers/GT_Cover_ItemMeter.java | 37 ++++++++++++++-------- .../redstone/GT_Cover_WirelessItemDetector.java | 27 ++++++++++------ 2 files changed, 40 insertions(+), 24 deletions(-) (limited to 'src/main/java/gregtech/common') 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 86c0f4c4dc..f71ef2ee30 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java @@ -216,6 +216,7 @@ public class GT_Cover_ItemMeter extends GT_CoverBehaviorBase(this::getCoverData, this::setCoverData, GT_Cover_ItemMeter.this) @@ -269,9 +271,9 @@ public class GT_Cover_ItemMeter extends GT_CoverBehaviorBase widget.setOnScrollNumbers(1, 10, 64) - .setNumbers(0, getUpperBound()) + .setNumbers(0, maxThreshold) .setPos(0, spaceY * 2 + 2) - .setSize(spaceX * 2 + 5, 12)) + .setSize(spaceX * 4 + 5, 12)) .setPos(startX, startY)) .widget( new ItemWatcherSlotWidget().setGetter(this::getTargetItem) @@ -287,16 +289,27 @@ public class GT_Cover_ItemMeter extends GT_CoverBehaviorBase 0 ? maxSlot * 64 : Integer.MAX_VALUE; + } } private int getIntFromText(String text) { @@ -311,10 +324,6 @@ public class GT_Cover_ItemMeter extends GT_CoverBehaviorBase 0 ? maxSlot * 64 : 999_999; - } - private ItemStack getTargetItem() { ItemMeterData coverVariable = getCoverData(); if (coverVariable == null || coverVariable.slot < 0) { diff --git a/src/main/java/gregtech/common/covers/redstone/GT_Cover_WirelessItemDetector.java b/src/main/java/gregtech/common/covers/redstone/GT_Cover_WirelessItemDetector.java index 9f5200b6fc..fb7fa93ea7 100644 --- a/src/main/java/gregtech/common/covers/redstone/GT_Cover_WirelessItemDetector.java +++ b/src/main/java/gregtech/common/covers/redstone/GT_Cover_WirelessItemDetector.java @@ -152,6 +152,7 @@ public class GT_Cover_WirelessItemDetector private static final String ALL_TEXT = "All"; private int maxSlot; + private int maxThreshold; public WirelessItemDetectorUIFactory(GT_CoverUIBuildContext buildContext) { super(buildContext); @@ -169,7 +170,8 @@ public class GT_Cover_WirelessItemDetector @Override protected void addUIWidgets(ModularWindow.Builder builder) { - maxSlot = getMaxSlot(); + setMaxSlot(); + setMaxThreshold(); super.addUIWidgets(builder); builder.widget( new ItemWatcherSlotWidget().setGetter(this::getTargetItem) @@ -193,7 +195,7 @@ public class GT_Cover_WirelessItemDetector return coverData; }, widget -> widget.setOnScrollNumbers(1, 10, 64) - .setNumbers(() -> 0, this::getMaxItemCount) + .setNumbers(0, maxThreshold) .setPos(1, 2 + spaceY * 2) .setSize(spaceX * 5 - 4, 12)) .addFollower( @@ -218,19 +220,24 @@ public class GT_Cover_WirelessItemDetector .setSize(spaceX * 4 - 8, 12)); } - private int getMaxSlot() { + private void setMaxSlot() { final ICoverable tile = getUIBuildContext().getTile(); - if (tile instanceof TileEntity && !tile.isDead() - && tile instanceof IGregTechTileEntity - && !(((IGregTechTileEntity) tile).getMetaTileEntity() instanceof GT_MetaTileEntity_DigitalChestBase)) { - return tile.getSizeInventory() - 1; + if (!tile.isDead() && tile instanceof IGregTechTileEntity gtTile + && !(gtTile.getMetaTileEntity() instanceof GT_MetaTileEntity_DigitalChestBase)) { + maxSlot = tile.getSizeInventory() - 1; } else { - return -1; + maxSlot = -1; } } - private int getMaxItemCount() { - return maxSlot > 0 ? maxSlot * 64 : Integer.MAX_VALUE; + private void setMaxThreshold() { + final ICoverable tile = getUIBuildContext().getTile(); + if (!tile.isDead() && tile instanceof IGregTechTileEntity gtTile + && gtTile.getMetaTileEntity() instanceof GT_MetaTileEntity_DigitalChestBase) { + maxThreshold = gtTile.getMaxItemCount(); + } else { + maxThreshold = maxSlot > 0 ? maxSlot * 64 : Integer.MAX_VALUE; + } } private int getIntFromText(String text) { -- cgit