diff options
| author | â€huajijam <strhuaji@gmail.com> | 2019-04-26 20:08:28 +0800 |
|---|---|---|
| committer | â€huajijam <strhuaji@gmail.com> | 2019-04-26 20:08:28 +0800 |
| commit | 913bb1c0a34045b1aa11901f49107322b1c03b57 (patch) | |
| tree | cd17df19dab84c7f621bb0482df29a23ff70d75b /src/Java/gtPlusPlus/core/util/minecraft | |
| parent | ff60c00c1fc17acf9200cdf794c185ee329b8446 (diff) | |
| parent | 915cb904401ec3b67180baa02910efcaaf21370e (diff) | |
| download | GT5-Unofficial-913bb1c0a34045b1aa11901f49107322b1c03b57.tar.gz GT5-Unofficial-913bb1c0a34045b1aa11901f49107322b1c03b57.tar.bz2 GT5-Unofficial-913bb1c0a34045b1aa11901f49107322b1c03b57.zip | |
Automatic synchronization
Diffstat (limited to 'src/Java/gtPlusPlus/core/util/minecraft')
| -rw-r--r-- | src/Java/gtPlusPlus/core/util/minecraft/EnergyUtils.java | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/src/Java/gtPlusPlus/core/util/minecraft/EnergyUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/EnergyUtils.java new file mode 100644 index 0000000000..51bedaf64b --- /dev/null +++ b/src/Java/gtPlusPlus/core/util/minecraft/EnergyUtils.java @@ -0,0 +1,122 @@ +package gtPlusPlus.core.util.minecraft; + +import gregtech.api.util.GT_ModHandler; +import ic2.api.item.IElectricItem; +import ic2.api.item.IElectricItemManager; +import ic2.api.item.ISpecialElectricItem; +import net.minecraft.item.ItemStack; + +public class EnergyUtils { + + public static class EU { + + public static boolean isElectricItem(ItemStack aStack) { + if (aStack.getItem() instanceof ISpecialElectricItem) { + return true; + } + else if (aStack.getItem() instanceof IElectricItem) { + return true; + } + else if (aStack.getItem() instanceof IElectricItemManager) { + return true; + } + else { + return GT_ModHandler.isElectricItem(aStack); + } + } + + public static boolean isChargerItem(ItemStack aStack) { + return GT_ModHandler.isChargerItem(aStack); + } + + public static boolean charge(ItemStack aStack, int aEnergyToInsert, int aTier) { + return 0 != GT_ModHandler.chargeElectricItem(aStack, aEnergyToInsert, aTier, true, false); + } + + public static boolean discharge(ItemStack aStack, int aEnergyToInsert, int aTier) { + return 0 != GT_ModHandler.dischargeElectricItem(aStack, -aEnergyToInsert, aTier, true, false, true); + } + + public static long getMaxStorage(ItemStack aStack) { + if (isElectricItem(aStack)) { + if (aStack.getItem() instanceof ISpecialElectricItem) { + ISpecialElectricItem bStack = (ISpecialElectricItem) aStack.getItem(); + return (long) bStack.getMaxCharge(aStack); + } + if (aStack.getItem() instanceof IElectricItem) { + IElectricItem bStack = (IElectricItem) aStack.getItem(); + return (long) bStack.getMaxCharge(aStack); + } + if (aStack.getItem() instanceof IElectricItemManager) { + IElectricItemManager bStack = (IElectricItemManager) aStack.getItem(); + return (long) bStack.getCharge(aStack); + } + } + else { + return 0; + } + return 0; + } + + public static long getCharge(ItemStack aStack) { + if (isElectricItem(aStack)) { + if (aStack.getItem() instanceof ISpecialElectricItem) { + ISpecialElectricItem bStack = (ISpecialElectricItem) aStack.getItem(); + return (long) bStack.getManager(aStack).getCharge(aStack); + } + if (aStack.getItem() instanceof IElectricItemManager) { + IElectricItemManager bStack = (IElectricItemManager) aStack.getItem(); + return (long) bStack.getCharge(aStack); + } + } + else { + return 0; + } + return 0; + } + + public static boolean hasCharge(ItemStack aStack) { + if (isElectricItem(aStack)) { + if (aStack.getItem() instanceof ISpecialElectricItem) { + ISpecialElectricItem bStack = (ISpecialElectricItem) aStack.getItem(); + return bStack.canProvideEnergy(aStack); + } + if (aStack.getItem() instanceof IElectricItem) { + IElectricItem bStack = (IElectricItem) aStack.getItem(); + return bStack.canProvideEnergy(aStack); + } + if (aStack.getItem() instanceof IElectricItemManager) { + IElectricItemManager bStack = (IElectricItemManager) aStack.getItem(); + return bStack.getCharge(aStack) > 0; + } + } + else { + return false; + } + return false; + } + + public static int getTier(ItemStack aStack) { + if (isElectricItem(aStack)) { + if (aStack.getItem() instanceof ISpecialElectricItem) { + ISpecialElectricItem bStack = (ISpecialElectricItem) aStack.getItem(); + return bStack.getTier(aStack); + } + if (aStack.getItem() instanceof IElectricItem) { + IElectricItem bStack = (IElectricItem) aStack.getItem(); + return bStack.getTier(aStack); + } + } + else { + return 0; + } + return 0; + } + + } + + public static class RF { + + } + +} |
