diff options
author | querns <33518699+querns@users.noreply.github.com> | 2023-09-06 11:29:16 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-06 18:29:16 +0200 |
commit | dbc2ff835604eb2247dae92311b19a27aec82964 (patch) | |
tree | c5e755c6623134276c7c7827e05cb794870f2fe4 /src/main/java/gregtech/api | |
parent | b187326e6547bc2c801d4d723e455202fea1fc4c (diff) | |
download | GT5-Unofficial-dbc2ff835604eb2247dae92311b19a27aec82964.tar.gz GT5-Unofficial-dbc2ff835604eb2247dae92311b19a27aec82964.tar.bz2 GT5-Unofficial-dbc2ff835604eb2247dae92311b19a27aec82964.zip |
Adds item and charging info to Locker WAILA panel (#2245)
* Adds item and charging info to Locker WAILA panel
* Refactor Locker WAILA tip entries to happen more on client side
Diffstat (limited to 'src/main/java/gregtech/api')
-rw-r--r-- | src/main/java/gregtech/api/util/GT_ModHandler.java | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/main/java/gregtech/api/util/GT_ModHandler.java b/src/main/java/gregtech/api/util/GT_ModHandler.java index 68f1bd9b97..5201cc6876 100644 --- a/src/main/java/gregtech/api/util/GT_ModHandler.java +++ b/src/main/java/gregtech/api/util/GT_ModHandler.java @@ -22,6 +22,7 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Objects; +import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; @@ -63,6 +64,7 @@ import gregtech.api.enums.ToolDictNames; import gregtech.api.interfaces.IDamagableItem; import gregtech.api.interfaces.IItemContainer; import gregtech.api.interfaces.internal.IGT_CraftingRecipe; +import gregtech.api.items.GT_MetaBase_Item; import gregtech.api.objects.GT_HashSet; import gregtech.api.objects.GT_ItemStack; import gregtech.api.objects.ItemData; @@ -2328,6 +2330,35 @@ public class GT_ModHandler { } /** + * Returns the current charge and maximum charge of an ItemStack. + * + * @param aStack Any ItemStack. + * @return Optional.empty() if the stack is null or not an electric item, or an Optional containing a payload of an + * array containing [ current_charge, maximum_charge ] on success. + */ + public static Optional<Long[]> getElectricItemCharge(ItemStack aStack) { + if (aStack == null || !isElectricItem(aStack)) { + return Optional.empty(); + } + + final Item item = aStack.getItem(); + + if (item instanceof final GT_MetaBase_Item metaBaseItem) { + final Long[] stats = metaBaseItem.getElectricStats(aStack); + if (stats != null && stats.length > 0) { + return Optional.of(new Long[] { metaBaseItem.getRealCharge(aStack), stats[0] }); + } + + } else if (item instanceof final IElectricItem ic2ElectricItem) { + return Optional.of( + new Long[] { (long) ic2.api.item.ElectricItem.manager.getCharge(aStack), + (long) ic2ElectricItem.getMaxCharge(aStack) }); + } + + return Optional.empty(); + } + + /** * Allow item to be inserted into ic2 toolbox */ public static void registerBoxableItemToToolBox(ItemStack aStack) { |