aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/core/util/minecraft
diff options
context:
space:
mode:
authorAlkalus <3060479+draknyte1@users.noreply.github.com>2019-04-26 16:28:16 +1000
committerAlkalus <3060479+draknyte1@users.noreply.github.com>2019-04-26 16:28:16 +1000
commit915cb904401ec3b67180baa02910efcaaf21370e (patch)
tree8d13cc10af252e091abd4a62b7280c37c75fcfab /src/Java/gtPlusPlus/core/util/minecraft
parentf20f36779767e4318ad12b9bc464f1f8010eb42b (diff)
downloadGT5-Unofficial-915cb904401ec3b67180baa02910efcaaf21370e.tar.gz
GT5-Unofficial-915cb904401ec3b67180baa02910efcaaf21370e.tar.bz2
GT5-Unofficial-915cb904401ec3b67180baa02910efcaaf21370e.zip
+ Added some Items specifically for running Digital Tree Farms.
+ Added some Common Energy Utility Classes. + Added ASM to fix handling of hatch slots for busses. (Partial implementation)
Diffstat (limited to 'src/Java/gtPlusPlus/core/util/minecraft')
-rw-r--r--src/Java/gtPlusPlus/core/util/minecraft/EnergyUtils.java122
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 {
+
+ }
+
+}