aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java')
-rw-r--r--src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java217
1 files changed, 0 insertions, 217 deletions
diff --git a/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java b/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java
deleted file mode 100644
index 8c992f8cb0..0000000000
--- a/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java
+++ /dev/null
@@ -1,217 +0,0 @@
-package common.tileentities;
-
-import gregtech.api.enums.Textures;
-import gregtech.api.interfaces.ITexture;
-import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
-import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch;
-import gregtech.api.objects.GT_RenderedTexture;
-import gregtech.api.util.GT_Utility;
-import java.util.HashMap;
-import kekztech.MultiFluidHandler;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.item.ItemStack;
-import net.minecraft.nbt.NBTTagCompound;
-import net.minecraft.tileentity.TileEntity;
-import net.minecraftforge.common.util.ForgeDirection;
-import net.minecraftforge.fluids.FluidStack;
-import net.minecraftforge.fluids.FluidTankInfo;
-import net.minecraftforge.fluids.IFluidHandler;
-
-public class GTMTE_TFFTMultiHatch extends GT_MetaTileEntity_Hatch {
-
- private static final HashMap<Integer, Integer> vals = new HashMap<>();
-
- static {
- vals.put(3, 2000);
- vals.put(5, 20000);
- vals.put(7, 200000);
- }
-
- private static final int INV_SLOT_COUNT = 2;
-
- private MultiFluidHandler mfh;
- private boolean outputting = false;
-
- public GTMTE_TFFTMultiHatch(int aID, String aName, String aNameRegional, int aTier) {
- super(aID, aName, aNameRegional, aTier, INV_SLOT_COUNT, new String[] {
- "All-in-one access for the T.F.F.T",
- "Right-click with a screwdriver to toggle auto-output",
- "Throughput: " + vals.get(aTier) + "L/s per fluid"
- });
- }
-
- public GTMTE_TFFTMultiHatch(String aName, int aTier, String aDescription, ITexture[][][] aTextures) {
- super(aName, aTier, INV_SLOT_COUNT, aDescription, aTextures);
- }
-
- public GTMTE_TFFTMultiHatch(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures) {
- super(aName, aTier, INV_SLOT_COUNT, aDescription, aTextures);
- }
-
- public void setMultiFluidHandler(MultiFluidHandler mfh) {
- this.mfh = mfh;
- }
-
- @Override
- public void saveNBTData(NBTTagCompound aNBT) {
- super.saveNBTData(aNBT);
- aNBT.setBoolean("outputting", outputting);
- }
-
- @Override
- public void loadNBTData(NBTTagCompound aNBT) {
- super.loadNBTData(aNBT);
- outputting = aNBT.getBoolean("outputting");
- }
-
- @Override
- public ITexture[] getTexturesActive(ITexture aBaseTexture) {
- // return new ITexture[]{aBaseTexture, new GT_RenderedTexture(GTTexture.MULTI_HATCH_ON)};
- return new ITexture[] {aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_PIPE_STEEL)};
- }
-
- @Override
- public ITexture[] getTexturesInactive(ITexture aBaseTexture) {
- // return new ITexture[]{aBaseTexture, new GT_RenderedTexture(GTTexture.MULTI_HATCH_OFF)};
- return new ITexture[] {
- aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_PIPE_POLYTETRAFLUOROETHYLENE)
- };
- }
-
- @Override
- public IMetaTileEntity newMetaEntity(IGregTechTileEntity iGregTechTileEntity) {
- return new GTMTE_TFFTMultiHatch(super.mName, super.mTier, super.mDescriptionArray, super.mTextures);
- }
-
- @Override
- public boolean isMachineBlockUpdateRecursive() {
- return false;
- }
-
- @Override
- public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {
- outputting = !outputting;
- GT_Utility.sendChatToPlayer(aPlayer, outputting ? "Auto-output enabled" : "Auto-output disabled");
- }
-
- @Override
- public int getCapacity() {
- return (mfh != null) ? mfh.getCapacity() : 0;
- }
-
- public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {
- super.onPreTick(aBaseMetaTileEntity, aTick);
- if (aBaseMetaTileEntity.isServerSide() && mfh != null) {
- if (outputting && (aTick % 20 == 0)) {
- doAutoOutputPerSecond(aBaseMetaTileEntity);
- }
- }
- }
-
- /**
- * Handle the Multi Hatch's auto-output feature. Should be called once per second only.
- * @param aBaseMetaTileEntity
- * this MetaTileEntity
- */
- private void doAutoOutputPerSecond(IGregTechTileEntity aBaseMetaTileEntity) {
- final ForgeDirection outSide = ForgeDirection.getOrientation(aBaseMetaTileEntity.getFrontFacing());
- final TileEntity adjacentTE =
- aBaseMetaTileEntity.getTileEntityOffset(outSide.offsetX, outSide.offsetY, outSide.offsetZ);
- if (adjacentTE instanceof IFluidHandler) {
- final IFluidHandler adjFH = (IFluidHandler) adjacentTE;
- // Cycle through fluids
- for (int i = 0; i < mfh.getDistinctFluids(); i++) {
- final FluidStack fluidCopy = mfh.getFluidCopy(i);
- // Make sure the adjacent IFluidHandler can accept this fluid
- if (adjFH.canFill(outSide.getOpposite(), fluidCopy.getFluid())) {
-
- // Limit to output rate
- fluidCopy.amount = Math.min(fluidCopy.amount, vals.get(super.mTier));
-
- // Test how much can be drawn
- fluidCopy.amount = mfh.pullFluid(fluidCopy, false);
-
- // Test how much can be filled (and fill if possible)
- fluidCopy.amount = adjFH.fill(outSide.getOpposite(), fluidCopy, true);
-
- // Actually deplete storage
- mfh.pullFluid(fluidCopy, true);
- }
- }
- }
- }
-
- @Override
- public int fill(ForgeDirection from, FluidStack resource, boolean doFill) {
- return (mfh != null) ? mfh.pushFluid(resource, doFill) : 0;
- }
-
- @Override
- public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain) {
- return (mfh != null) ? new FluidStack(resource.getFluid(), mfh.pullFluid(resource, doDrain)) : null;
- }
-
- /**
- * Drains fluid out of 0th internal tank.
- * If the TFFT Controller contains an Integrated Circuit, drain fluid
- * from the slot equal to the circuit configuration.
- *
- * @param from
- * Orientation the fluid is drained to.
- * @param maxDrain
- * Maximum amount of fluid to drain.
- * @param doDrain
- * If false, drain will only be simulated.
- * @return FluidStack representing the Fluid and amount that was (or would have been, if
- * simulated) drained.
- */
- @Override
- public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) {
- if (mfh != null) {
- final FluidStack drain = mfh.getFluidCopy(0);
- if (drain != null) {
- // If there's no integrated circuit in the T.F.F.T. controller, output slot 0
- final byte selectedSlot = (mfh.getSelectedFluid() == -1) ? 0 : mfh.getSelectedFluid();
-
- return new FluidStack(
- drain.getFluid(),
- mfh.pullFluid(new FluidStack(drain.getFluid(), maxDrain), selectedSlot, doDrain));
- }
- }
- return null;
- }
-
- @Override
- public FluidTankInfo[] getTankInfo(ForgeDirection from) {
- if (mfh == null) return null;
- FluidStack[] fluids = mfh.getAllFluids();
- int length = fluids.length;
- int maxCapcity = mfh.getCapacity();
- FluidTankInfo[] tankInfo = new FluidTankInfo[length];
- for (int i = 0; i < length; i++) {
- tankInfo[i] = new FluidTankInfo(fluids[i], maxCapcity);
- }
- return tankInfo;
- }
-
- @Override
- public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {
- return false;
- }
-
- @Override
- public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {
- return false;
- }
-
- @Override
- public boolean canTankBeFilled() {
- return true;
- }
-
- @Override
- public boolean canTankBeEmptied() {
- return true;
- }
-}