193 lines
No EOL
9.9 KiB
Java
193 lines
No EOL
9.9 KiB
Java
/* 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
|
|
|
|
*/ |