From eac14b4b283ae2d68199b4982110d93265e41cb1 Mon Sep 17 00:00:00 2001 From: Blood-Asp Date: Sun, 12 Jul 2015 12:45:19 +0200 Subject: GT 5.08.24 --- .../gregtech/common/covers/GT_Cover_EUMeter.java | 53 +++++++++++++++++++++- 1 file changed, 51 insertions(+), 2 deletions(-) (limited to 'main/java/gregtech/common/covers') diff --git a/main/java/gregtech/common/covers/GT_Cover_EUMeter.java b/main/java/gregtech/common/covers/GT_Cover_EUMeter.java index 68f19d9257..285fa4938c 100644 --- a/main/java/gregtech/common/covers/GT_Cover_EUMeter.java +++ b/main/java/gregtech/common/covers/GT_Cover_EUMeter.java @@ -1,9 +1,18 @@ package gregtech.common.covers; +import ic2.api.item.IElectricItem; +import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.ICoverable; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.items.GT_MetaBase_Item; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicBatteryBuffer; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; +import gregtech.api.util.GT_BaseCrop; import gregtech.api.util.GT_CoverBehavior; +import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Utility; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.Fluid; public class GT_Cover_EUMeter @@ -57,12 +66,46 @@ public class GT_Cover_EUMeter aTileEntity.setOutputRedstoneSignal(aSide, (byte)(aCoverVariable % 2 == 0 ? 0 : 15)); } } + else if (aCoverVariable < 12) + { + tScale = aTileEntity.getEUCapacity(); + long tStored = aTileEntity.getStoredEU(); + if(aTileEntity instanceof IGregTechTileEntity){ + IGregTechTileEntity tTileEntity = (IGregTechTileEntity) aTileEntity; + IMetaTileEntity mTileEntity = tTileEntity.getMetaTileEntity(); + if(mTileEntity instanceof GT_MetaTileEntity_BasicBatteryBuffer){ + GT_MetaTileEntity_BasicBatteryBuffer buffer = (GT_MetaTileEntity_BasicBatteryBuffer) mTileEntity; + if(buffer.mInventory!=null){ + for(ItemStack aStack : buffer.mInventory){ + if (GT_ModHandler.isElectricItem(aStack)) { + + if(aStack.getItem() instanceof GT_MetaBase_Item){ + Long[] stats = ((GT_MetaBase_Item)aStack.getItem()).getElectricStats(aStack); + if(stats!=null){ + tScale = tScale + stats[0]; + tStored = tStored + ((GT_MetaBase_Item)aStack.getItem()).getRealCharge(aStack); + } + }else if(aStack.getItem() instanceof IElectricItem){ + tStored = tStored + (long)ic2.api.item.ElectricItem.manager.getCharge(aStack); + tScale = tScale + (long)((IElectricItem)aStack.getItem()).getMaxCharge(aStack); + } + } + } + + }}} + tScale = tScale/15L; + if (tScale > 0L) { + aTileEntity.setOutputRedstoneSignal(aSide, aCoverVariable % 2 == 0 ? (byte)(int)(tStored / tScale) : (byte)(int)(15L - tStored / tScale)); + } else { + aTileEntity.setOutputRedstoneSignal(aSide, (byte)(aCoverVariable % 2 == 0 ? 0 : 15)); + } + } return aCoverVariable; } public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { - aCoverVariable = (aCoverVariable + 1) % 10; + aCoverVariable = (aCoverVariable + 1) % 12; if (aCoverVariable == 0) { GT_Utility.sendChatToPlayer(aPlayer, "Normal Universal Storage"); } @@ -93,6 +136,12 @@ public class GT_Cover_EUMeter if (aCoverVariable == 9) { GT_Utility.sendChatToPlayer(aPlayer, "Inverted Average Electric Output"); } + if (aCoverVariable == 10) { + GT_Utility.sendChatToPlayer(aPlayer, "Normal Electricity Storage(Including Batterys)"); + } + if (aCoverVariable == 11) { + GT_Utility.sendChatToPlayer(aPlayer, "Inverted Electricity Storage(Including Batterys)"); + } return aCoverVariable; } @@ -133,7 +182,7 @@ public class GT_Cover_EUMeter public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return 5; + return 20; } } -- cgit