GT5-Unofficial/main/java/gregtech/common/covers/GT_Cover_Pump.java

193 lines
9.9 KiB
Java
Raw Normal View History

2015-04-23 16:14:22 +00:00
/* 1: */ package gregtech.common.covers;
/* 2: */
/* 3: */ import gregtech.api.interfaces.tileentity.ICoverable;
/* 4: */ import gregtech.api.interfaces.tileentity.IMachineProgress;
/* 5: */ import gregtech.api.util.GT_CoverBehavior;
/* 6: */ import gregtech.api.util.GT_Utility;
/* 7: */ import net.minecraft.entity.player.EntityPlayer;
/* 8: */ import net.minecraftforge.common.util.ForgeDirection;
/* 9: */ import net.minecraftforge.fluids.Fluid;
/* 10: */ import net.minecraftforge.fluids.FluidStack;
/* 11: */ import net.minecraftforge.fluids.IFluidHandler;
/* 12: */
/* 13: */ public class GT_Cover_Pump
/* 14: */ extends GT_CoverBehavior
/* 15: */ {
/* 16: */ public final int mTransferRate;
/* 17: */
/* 18: */ public GT_Cover_Pump(int aTransferRate)
/* 19: */ {
/* 20: 18 */ this.mTransferRate = aTransferRate;
/* 21: */ }
/* 22: */
/* 23: */ public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer)
/* 24: */ {
/* 25: 23 */ if ((aCoverVariable % 6 > 1) && ((aTileEntity instanceof IMachineProgress))) {
/* 26: 23 */ if (((IMachineProgress)aTileEntity).isAllowedToWork() != aCoverVariable % 6 < 4) {
/* 27: 23 */ return aCoverVariable;
/* 28: */ }
/* 29: */ }
/* 30: 24 */ if ((aTileEntity instanceof IFluidHandler))
/* 31: */ {
/* 32: 25 */ IFluidHandler tTank2 = aTileEntity.getITankContainerAtSide(aSide);
/* 33: 26 */ if (tTank2 != null)
/* 34: */ {
/* 35: 27 */ aTileEntity.decreaseStoredEnergyUnits(GT_Utility.getTier(this.mTransferRate), true);
/* 36: 28 */ IFluidHandler tTank1 = (IFluidHandler)aTileEntity;
/* 37: 29 */ if (aCoverVariable % 2 == 0)
/* 38: */ {
/* 39: 30 */ FluidStack tLiquid = tTank1.drain(ForgeDirection.getOrientation(aSide), this.mTransferRate, false);
/* 40: 31 */ if (tLiquid != null)
/* 41: */ {
/* 42: 32 */ tLiquid = tLiquid.copy();
/* 43: 33 */ tLiquid.amount = tTank2.fill(ForgeDirection.getOrientation(aSide).getOpposite(), tLiquid, false);
/* 44: 34 */ if (tLiquid.amount > 0) {
/* 45: 35 */ if (((aCoverVariable % 2 != 1) || (aSide != 1)) && ((aCoverVariable % 2 != 0) || (aSide != 0)) && (aTileEntity.getUniversalEnergyCapacity() >= Math.min(1, tLiquid.amount / 10)))
/* 46: */ {
/* 47: 36 */ if (aTileEntity.isUniversalEnergyStored(Math.min(1, tLiquid.amount / 10)))
/* 48: */ {
/* 49: 37 */ aTileEntity.decreaseStoredEnergyUnits(Math.min(1, tLiquid.amount / 10), true);
/* 50: 38 */ tTank2.fill(ForgeDirection.getOrientation(aSide).getOpposite(), tTank1.drain(ForgeDirection.getOrientation(aSide), tLiquid.amount, true), true);
/* 51: */ }
/* 52: */ }
/* 53: */ else {
/* 54: 41 */ tTank2.fill(ForgeDirection.getOrientation(aSide).getOpposite(), tTank1.drain(ForgeDirection.getOrientation(aSide), tLiquid.amount, true), true);
/* 55: */ }
/* 56: */ }
/* 57: */ }
/* 58: */ }
/* 59: */ else
/* 60: */ {
/* 61: 46 */ FluidStack tLiquid = tTank2.drain(ForgeDirection.getOrientation(aSide).getOpposite(), this.mTransferRate, false);
/* 62: 47 */ if (tLiquid != null)
/* 63: */ {
/* 64: 48 */ tLiquid = tLiquid.copy();
/* 65: 49 */ tLiquid.amount = tTank1.fill(ForgeDirection.getOrientation(aSide), tLiquid, false);
/* 66: 50 */ if (tLiquid.amount > 0) {
/* 67: 51 */ if (((aCoverVariable % 2 != 1) || (aSide != 1)) && ((aCoverVariable % 2 != 0) || (aSide != 0)) && (aTileEntity.getUniversalEnergyCapacity() >= Math.min(1, tLiquid.amount / 10)))
/* 68: */ {
/* 69: 52 */ if (aTileEntity.isUniversalEnergyStored(Math.min(1, tLiquid.amount / 10)))
/* 70: */ {
/* 71: 53 */ aTileEntity.decreaseStoredEnergyUnits(Math.min(1, tLiquid.amount / 10), true);
/* 72: 54 */ tTank1.fill(ForgeDirection.getOrientation(aSide), tTank2.drain(ForgeDirection.getOrientation(aSide).getOpposite(), tLiquid.amount, true), true);
/* 73: */ }
/* 74: */ }
/* 75: */ else {
/* 76: 57 */ tTank1.fill(ForgeDirection.getOrientation(aSide), tTank2.drain(ForgeDirection.getOrientation(aSide).getOpposite(), tLiquid.amount, true), true);
/* 77: */ }
/* 78: */ }
/* 79: */ }
/* 80: */ }
/* 81: */ }
/* 82: */ }
/* 83: 64 */ return aCoverVariable;
/* 84: */ }
/* 85: */
/* 86: */ public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ)
/* 87: */ {
/* 88: 69 */ aCoverVariable = (aCoverVariable + 1) % 12;
/* 89: 70 */ if (aCoverVariable == 0) {
/* 90: 70 */ GT_Utility.sendChatToPlayer(aPlayer, "Export");
/* 91: */ }
/* 92: 71 */ if (aCoverVariable == 1) {
/* 93: 71 */ GT_Utility.sendChatToPlayer(aPlayer, "Import");
/* 94: */ }
/* 95: 72 */ if (aCoverVariable == 2) {
/* 96: 72 */ GT_Utility.sendChatToPlayer(aPlayer, "Export (conditional)");
/* 97: */ }
/* 98: 73 */ if (aCoverVariable == 3) {
/* 99: 73 */ GT_Utility.sendChatToPlayer(aPlayer, "Import (conditional)");
/* 100: */ }
/* 101: 74 */ if (aCoverVariable == 4) {
/* 102: 74 */ GT_Utility.sendChatToPlayer(aPlayer, "Export (invert cond)");
/* 103: */ }
/* 104: 75 */ if (aCoverVariable == 5) {
/* 105: 75 */ GT_Utility.sendChatToPlayer(aPlayer, "Import (invert cond)");
/* 106: */ }
/* 107: 76 */ if (aCoverVariable == 6) {
/* 108: 76 */ GT_Utility.sendChatToPlayer(aPlayer, "Export allow Input");
/* 109: */ }
/* 110: 77 */ if (aCoverVariable == 7) {
/* 111: 77 */ GT_Utility.sendChatToPlayer(aPlayer, "Import allow Output");
/* 112: */ }
/* 113: 78 */ if (aCoverVariable == 8) {
/* 114: 78 */ GT_Utility.sendChatToPlayer(aPlayer, "Export allow Input (conditional)");
/* 115: */ }
/* 116: 79 */ if (aCoverVariable == 9) {
/* 117: 79 */ GT_Utility.sendChatToPlayer(aPlayer, "Import allow Output (conditional)");
/* 118: */ }
/* 119: 80 */ if (aCoverVariable == 10) {
/* 120: 80 */ GT_Utility.sendChatToPlayer(aPlayer, "Export allow Input (invert cond)");
/* 121: */ }
/* 122: 81 */ if (aCoverVariable == 11) {
/* 123: 81 */ GT_Utility.sendChatToPlayer(aPlayer, "Import allow Output (invert cond)");
/* 124: */ }
/* 125: 82 */ return aCoverVariable;
/* 126: */ }
/* 127: */
/* 128: */ public boolean letsRedstoneGoIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity)
/* 129: */ {
/* 130: 87 */ return true;
/* 131: */ }
/* 132: */
/* 133: */ public boolean letsRedstoneGoOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity)
/* 134: */ {
/* 135: 92 */ return true;
/* 136: */ }
/* 137: */
/* 138: */ public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity)
/* 139: */ {
/* 140: 97 */ return true;
/* 141: */ }
/* 142: */
/* 143: */ public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity)
/* 144: */ {
/* 145:102 */ return true;
/* 146: */ }
/* 147: */
/* 148: */ public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity)
/* 149: */ {
/* 150:107 */ return true;
/* 151: */ }
/* 152: */
/* 153: */ public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity)
/* 154: */ {
/* 155:112 */ return true;
/* 156: */ }
/* 157: */
/* 158: */ public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity)
/* 159: */ {
/* 160:117 */ if ((aCoverVariable > 1) && ((aTileEntity instanceof IMachineProgress))) {
/* 161:117 */ if (((IMachineProgress)aTileEntity).isAllowedToWork() != aCoverVariable % 6 < 4) {
/* 162:117 */ return false;
/* 163: */ }
/* 164: */ }
/* 165:118 */ return (aCoverVariable >= 6) || (aCoverVariable % 2 != 0);
/* 166: */ }
/* 167: */
/* 168: */ public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity)
/* 169: */ {
/* 170:123 */ if ((aCoverVariable > 1) && ((aTileEntity instanceof IMachineProgress))) {
/* 171:123 */ if (((IMachineProgress)aTileEntity).isAllowedToWork() != aCoverVariable % 6 < 4) {
/* 172:123 */ return false;
/* 173: */ }
/* 174: */ }
/* 175:124 */ return (aCoverVariable >= 6) || (aCoverVariable % 2 == 0);
/* 176: */ }
/* 177: */
/* 178: */ public boolean alwaysLookConnected(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity)
/* 179: */ {
/* 180:129 */ return true;
/* 181: */ }
/* 182: */
/* 183: */ public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity)
/* 184: */ {
/* 185:134 */ return 1;
/* 186: */ }
/* 187: */ }
/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar
* Qualified Name: gregtech.common.covers.GT_Cover_Pump
* JD-Core Version: 0.7.0.1
*/