From 1c79e4b900dbf8e32e7f25820c6e0c80e6623c12 Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 29 Aug 2022 16:32:55 +0200 Subject: [PATCH] some compat crap --- src/main/java/api/hbm/fluid/IFluidUser.java | 8 ++ .../tileentity/machine/TileEntityChungus.java | 5 ++ .../machine/TileEntityCondenser.java | 5 ++ .../machine/TileEntityCoreEmitter.java | 7 +- .../machine/TileEntityCoreInjector.java | 5 ++ .../machine/TileEntityCoreReceiver.java | 5 ++ .../machine/TileEntityDeuteriumExtractor.java | 5 ++ .../machine/TileEntityFWatzCore.java | 6 ++ .../machine/TileEntityHeaterOilburner.java | 5 ++ .../tileentity/machine/TileEntityITER.java | 5 ++ .../machine/TileEntityMachineAssemfac.java | 5 ++ .../machine/TileEntityMachineBoiler.java | 5 ++ .../TileEntityMachineBoilerElectric.java | 5 ++ .../machine/TileEntityMachineCMBFactory.java | 7 +- .../machine/TileEntityMachineChemplant.java | 5 ++ .../machine/TileEntityMachineCoal.java | 5 ++ .../TileEntityMachineCrystallizer.java | 5 ++ .../machine/TileEntityMachineCyclotron.java | 5 ++ .../machine/TileEntityMachineDiesel.java | 5 ++ .../machine/TileEntityMachineGasCent.java | 5 ++ .../machine/TileEntityMachineIGenerator.java | 5 ++ .../machine/TileEntityMachineMiningLaser.java | 5 ++ .../machine/TileEntityMachineTurbine.java | 5 ++ .../machine/TileEntityMachineTurbofan.java | 5 ++ .../machine/TileEntityReactorZirnox.java | 5 ++ .../machine/TileEntitySolarBoiler.java | 5 ++ .../machine/TileEntityStorageDrum.java | 5 ++ .../machine/TileEntityWatzCore.java | 5 ++ .../TileEntityMachineCatalyticCracker.java | 5 ++ .../oil/TileEntityMachineFrackingTower.java | 5 ++ .../oil/TileEntityMachineFractionTower.java | 5 ++ .../oil/TileEntityMachineGasFlare.java | 5 ++ .../oil/TileEntityMachineLiquefactor.java | 5 ++ .../oil/TileEntityMachinePumpjack.java | 1 + .../oil/TileEntityMachineRefinery.java | 5 ++ .../oil/TileEntityMachineSolidifier.java | 5 ++ .../machine/oil/TileEntityOilDrillBase.java | 5 ++ .../machine/storage/TileEntityBarrel.java | 5 ++ .../storage/TileEntityMachineFluidTank.java | 5 ++ .../turret/TileEntityTurretFritz.java | 5 ++ .../java/com/hbm/util/CompatExternal.java | 90 +++++++++++++++++++ 41 files changed, 292 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/hbm/util/CompatExternal.java diff --git a/src/main/java/api/hbm/fluid/IFluidUser.java b/src/main/java/api/hbm/fluid/IFluidUser.java index 92c86e7c6..4abb80ed3 100644 --- a/src/main/java/api/hbm/fluid/IFluidUser.java +++ b/src/main/java/api/hbm/fluid/IFluidUser.java @@ -1,6 +1,7 @@ package api.hbm.fluid; import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; @@ -90,4 +91,11 @@ public interface IFluidUser extends IFluidConnector { for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) this.tryUnsubscribe(type, world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ); } + + /** + * Returns all internal tanks of this tile. Not used by the fluid network, it should only be used for display purposes or edge cases that can't be solved otherwise. + * The array is either composed of the original tank or outright the original tank array, so changes done to this array will extend to the IFluidUser. + * @return + */ + public FluidTank[] getAllTanks(); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java index e0acee51d..44d3f3441 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java @@ -282,4 +282,9 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc public FluidTank[] getReceivingTanks() { return new FluidTank[] {tanks[0]}; } + + @Override + public FluidTank[] getAllTanks() { + return tanks; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java index 986d3fc10..fbaf20204 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java @@ -163,4 +163,9 @@ public class TileEntityCondenser extends TileEntity implements IFluidAcceptor, I public FluidTank[] getReceivingTanks() { return new FluidTank[] {tanks [0]}; } + + @Override + public FluidTank[] getAllTanks() { + return tanks; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java index f22952e22..4aca127f2 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java @@ -292,7 +292,12 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne @Override public FluidTank[] getReceivingTanks() { - return new FluidTank[] {tank}; + return new FluidTank[] { tank }; + } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] { tank }; } // do some opencomputer stuff diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java index 7e592e2b8..94f8f7540 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java @@ -182,6 +182,11 @@ public class TileEntityCoreInjector extends TileEntityMachineBase implements IFl public FluidTank[] getReceivingTanks() { return new FluidTank[] {tanks[0], tanks[1]}; } + + @Override + public FluidTank[] getAllTanks() { + return tanks; + } // do some opencomputer stuff @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java index 8d4edca9d..b7822bf84 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java @@ -178,6 +178,11 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn return new FluidTank[] { tank }; } + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] { tank }; + } + // do some opencomputer stuff @Override public String getComponentName() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumExtractor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumExtractor.java index 66811bd7d..e01421730 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumExtractor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumExtractor.java @@ -187,4 +187,9 @@ public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implemen public FluidTank[] getReceivingTanks() { return new FluidTank[] { tanks[0] }; } + + @Override + public FluidTank[] getAllTanks() { + return tanks; + } } \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFWatzCore.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFWatzCore.java index 8c6e3ebf3..b764fd23a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFWatzCore.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFWatzCore.java @@ -435,8 +435,14 @@ public class TileEntityFWatzCore extends TileEntityLoadedBase implements ISidedI else return 0; } + @Override public FluidTank[] getReceivingTanks() { return new FluidTank[] { tanks[1], tanks[2] }; } + + @Override + public FluidTank[] getAllTanks() { + return tanks; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java index 6844d9fbf..69faf2675 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java @@ -190,4 +190,9 @@ public class TileEntityHeaterOilburner extends TileEntityMachineBase implements public double getMaxRenderDistanceSquared() { return 65536.0D; } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] { tank }; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java index 8d1a46769..4cccb4016 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java @@ -534,4 +534,9 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser public FluidTank[] getReceivingTanks() { return new FluidTank[] {tanks[0]}; } + + @Override + public FluidTank[] getAllTanks() { + return tanks; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java index fd7d5a514..188f0ff01 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java @@ -447,4 +447,9 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase im public int getMaxFluidFill(FluidType type) { return type == water.getTankType() ? water.getMaxFill() : 0; } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] { water, steam }; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoiler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoiler.java index 8924ebbea..9f47277bd 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoiler.java @@ -401,4 +401,9 @@ public class TileEntityMachineBoiler extends TileEntity implements ISidedInvento public FluidTank[] getReceivingTanks() { return new FluidTank[] {tanks[0]}; } + + @Override + public FluidTank[] getAllTanks() { + return tanks; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java index e58455769..b475f959e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java @@ -423,4 +423,9 @@ public class TileEntityMachineBoilerElectric extends TileEntityLoadedBase implem public FluidTank[] getReceivingTanks() { return new FluidTank[] {tanks[0]}; } + + @Override + public FluidTank[] getAllTanks() { + return tanks; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCMBFactory.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCMBFactory.java index 544eb884f..c855fe8cd 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCMBFactory.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCMBFactory.java @@ -356,6 +356,11 @@ public class TileEntityMachineCMBFactory extends TileEntityLoadedBase implements @Override public FluidTank[] getReceivingTanks() { - return new FluidTank[] {tank}; + return new FluidTank[] { tank }; + } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] { tank }; } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java index 38fcb882e..29772bafd 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java @@ -611,4 +611,9 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements public FluidTank[] getReceivingTanks() { return new FluidTank[] {tanks[0], tanks[1]}; } + + @Override + public FluidTank[] getAllTanks() { + return tanks; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java index cdc84f728..2bc550040 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java @@ -343,4 +343,9 @@ public class TileEntityMachineCoal extends TileEntityLoadedBase implements ISide public FluidTank[] getReceivingTanks() { return new FluidTank[] {tank}; } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] { tank }; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java index 2165ed7ee..62e19ca68 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java @@ -380,4 +380,9 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme public FluidTank[] getReceivingTanks() { return new FluidTank[] {tank}; } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] { tank }; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java index c804d647c..1ace1c9b0 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java @@ -536,4 +536,9 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements public FluidTank[] getReceivingTanks() { return new FluidTank[] { coolant }; } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] { amat, coolant }; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java index 905d52a69..ea9a96922 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java @@ -236,4 +236,9 @@ public class TileEntityMachineDiesel extends TileEntityMachineBase implements IE public FluidTank[] getReceivingTanks() { return new FluidTank[] {tank}; } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] { tank }; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java index b90d37d85..260b28c52 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java @@ -340,6 +340,11 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I public FluidTank[] getReceivingTanks() { return new FluidTank[] { tank }; } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] { tank }; + } AxisAlignedBB bb = null; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java index 5b833a10c..ad6a6ef74 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java @@ -308,4 +308,9 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement public FluidTank[] getReceivingTanks() { return new FluidTank[] { tanks[0], tanks[1], tanks[2] }; } + + @Override + public FluidTank[] getAllTanks() { + return tanks; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java index 43f495f8a..1fdc124e9 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java @@ -686,4 +686,9 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen public FluidTank[] getSendingTanks() { return new FluidTank[] { tank }; } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] { tank }; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java index 278a6f02b..64a8fe472 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java @@ -363,4 +363,9 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS public FluidTank[] getReceivingTanks() { return new FluidTank[] { tanks[0] }; } + + @Override + public FluidTank[] getAllTanks() { + return tanks; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java index f98b0de63..bbba68220 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java @@ -403,4 +403,9 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements public FluidTank[] getReceivingTanks() { return new FluidTank[] { tank }; } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] { tank }; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java index ad339c00b..759892c38 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java @@ -530,6 +530,11 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF public FluidTank[] getReceivingTanks() { return new FluidTank[] { water, carbonDioxide }; } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] { water, steam, carbonDioxide }; + } // do some opencomputer stuff @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java index e8b12ca17..d9a9d46b1 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java @@ -189,4 +189,9 @@ public class TileEntitySolarBoiler extends TileEntity implements IFluidAcceptor, public FluidTank[] getReceivingTanks() { return new FluidTank[] { water }; } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] { water, steam }; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java b/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java index 3e8f9c78b..52172bafb 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java @@ -317,4 +317,9 @@ public class TileEntityStorageDrum extends TileEntityMachineBase implements IFlu public FluidTank[] getSendingTanks() { return new FluidTank[] { tanks[0], tanks[1] }; } + + @Override + public FluidTank[] getAllTanks() { + return tanks; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java b/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java index ab752bc78..6373f69c0 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java @@ -754,4 +754,9 @@ public class TileEntityWatzCore extends TileEntityLoadedBase implements ISidedIn public FluidTank[] getSendingTanks() { return new FluidTank[] { tank }; } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] { tank }; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticCracker.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticCracker.java index 79b817c37..6d81d415e 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticCracker.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticCracker.java @@ -278,4 +278,9 @@ public class TileEntityMachineCatalyticCracker extends TileEntity implements IFl public FluidTank[] getReceivingTanks() { return new FluidTank[] {tanks[0], tanks[1]}; } + + @Override + public FluidTank[] getAllTanks() { + return tanks; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java index 166307a3f..494c8d0ea 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java @@ -121,6 +121,11 @@ public class TileEntityMachineFrackingTower extends TileEntityOilDrillBase imple return new FluidTank[] { tanks[2] }; } + @Override + public FluidTank[] getAllTanks() { + return tanks; + } + @Override public DirPos[] getConPos() { return new DirPos[] { diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFractionTower.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFractionTower.java index 65cb2fbea..f43c3ad26 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFractionTower.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFractionTower.java @@ -272,4 +272,9 @@ public class TileEntityMachineFractionTower extends TileEntity implements IFluid public FluidTank[] getReceivingTanks() { return new FluidTank[] { tanks[0] }; } + + @Override + public FluidTank[] getAllTanks() { + return tanks; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java index 29ed47647..6c94e3730 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java @@ -273,4 +273,9 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements public FluidTank[] getReceivingTanks() { return new FluidTank[] { tank }; } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] { tank }; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java index 941d10cea..e8ee4edae 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java @@ -273,4 +273,9 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen public FluidTank[] getSendingTanks() { return new FluidTank[] { tank }; } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] { tank }; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java index f59456d9d..b52cb8fa1 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java @@ -3,6 +3,7 @@ package com.hbm.tileentity.machine.oil; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.lib.Library; import com.hbm.util.fauxpointtwelve.DirPos; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java index 4007ec868..50bb2b2f1 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java @@ -358,4 +358,9 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements public FluidTank[] getReceivingTanks() { return new FluidTank[] { tanks[0] }; } + + @Override + public FluidTank[] getAllTanks() { + return tanks; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java index bc5d3cd2f..44f0beece 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java @@ -247,4 +247,9 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement public FluidTank[] getReceivingTanks() { return new FluidTank[] { tank }; } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] { tank }; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java index e3bb51550..6015322b4 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java @@ -339,6 +339,11 @@ public abstract class TileEntityOilDrillBase extends TileEntityMachineBase imple public FluidTank[] getReceivingTanks() { return new FluidTank[0]; } + + @Override + public FluidTank[] getAllTanks() { + return tanks; + } public abstract DirPos[] getConPos(); diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java index 0eaca905a..5a019683e 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java @@ -222,6 +222,11 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc return (mode == 0 || mode == 1) ? new FluidTank[] {tank} : new FluidTank[0]; } + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] { tank }; + } + @Override public void writeNBT(NBTTagCompound nbt) { if(tank.getFill() == 0) return; diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java index 264b154d8..7aee76459 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java @@ -209,6 +209,11 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements return type == tank.getTankType() ? tank.getMaxFill() - tank.getFill() : 0; } + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] { tank }; + } + @Override public void writeNBT(NBTTagCompound nbt) { if(tank.getFill() == 0) return; diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java index 484fa0ac2..f571c4c03 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java @@ -207,4 +207,9 @@ public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFl public FluidTank[] getReceivingTanks() { return new FluidTank[] { tank }; } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] { tank }; + } } diff --git a/src/main/java/com/hbm/util/CompatExternal.java b/src/main/java/com/hbm/util/CompatExternal.java new file mode 100644 index 000000000..37a6d67da --- /dev/null +++ b/src/main/java/com/hbm/util/CompatExternal.java @@ -0,0 +1,90 @@ +package com.hbm.util; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.tileentity.machine.TileEntityDummy; + +import api.hbm.energy.IEnergyUser; +import net.minecraft.block.Block; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +/** + * EXTERNAL COMPATIBILITY CLASS - DO NOT CHANGE METHOD NAMES/PARAMS ONCE CREATED + * Is there a smarter way to do this? Most likely. Is there an easier one? Probably not. + * @author hbm + */ +public class CompatExternal { + + /** + * Gets the tile entity at that pos. If the tile entity is an mk1 or mk2 dummy, it will return the core instead. + * This method will be updated in the event that other multiblock systems or dummies are added to retrain the intended functionality. + * @return the core tile entity if the given position holds a dummy, the tile entity at that position if it doesn't or null if there is no tile entity + */ + public static TileEntity getCoreFromPos(World world, int x, int y, int z) { + + Block b = world.getBlock(x, y, z); + + //if the block at that pos is a Dummyable, use the mk2's system to find the core + if(b instanceof BlockDummyable) { + BlockDummyable dummy = (BlockDummyable) b; + int[] pos = dummy.findCore(world, x, y, z); + + if(pos != null) { + return world.getTileEntity(pos[0], pos[1], pos[2]); + } + } + + TileEntity tile = world.getTileEntity(x, y, z); + + //if the tile at that pos is an old dummy tile, use mk1 + if(tile instanceof TileEntityDummy) { + TileEntityDummy dummy = (TileEntityDummy) tile; + return world.getTileEntity(dummy.targetX, dummy.targetY, dummy.targetZ); + } + + //otherwise, return the tile at that position whihc could be null + return tile; + } + + /** + * Returns the numeric value of the buffered energy held by that tile entity. Current implementation relies on IEnergyUser. + * @param tile + * @return power + */ + public static long getBufferedPowerFromTile(TileEntity tile) { + + if(tile instanceof IEnergyUser) { + return ((IEnergyUser) tile).getPower(); + } + + return 0L; + } + + /** + * Returns the numeric value of the energy capacity of this tile entity. Current implementation relies on IEnergyUser. + * @param tile + * @return max power + */ + public static long getMaxPowerFromTile(TileEntity tile) { + + if(tile instanceof IEnergyUser) { + return ((IEnergyUser) tile).getMaxPower(); + } + + return 0L; + } + + /** + * Returns the ordinal of the energy priority from the supplied tile entity. 0 = low, 1 = normal, 2 = high. Returns -1 if not applicable. + * @param tile + * @return priority + */ + public static int getEnergyPriorityFromTile(TileEntity tile) { + + if(tile instanceof IEnergyUser) { + return ((IEnergyUser) tile).getPriority().ordinal(); + } + + return -1; + } +}