From 0b4f1772e67d4b6f9103450b434a65d6aeb163a0 Mon Sep 17 00:00:00 2001 From: bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com> Date: Wed, 22 Apr 2020 18:58:11 +0200 Subject: Fixed Multis not registering Update due to own Casing implementation. Signed-off-by: bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com> --- src/main/java/blocks/BaseGTUpdateableBlock.java | 29 ++ src/main/java/blocks/Block_ControlRod.java | 3 +- src/main/java/blocks/Block_GDCUnit.java | 3 +- src/main/java/blocks/Block_ItemServerDrive.java | 3 +- src/main/java/blocks/Block_ItemServerIOPort.java | 12 +- .../java/blocks/Block_ItemServerRackCasing.java | 3 +- src/main/java/blocks/Block_ReactorChamber_OFF.java | 3 +- src/main/java/blocks/Block_ReactorChamber_ON.java | 3 +- src/main/java/blocks/Block_TFFTCasing.java | 3 +- src/main/java/blocks/Block_TFFTMultiHatch.java | 11 +- .../java/blocks/Block_TFFTStorageFieldBlockT1.java | 3 +- .../java/blocks/Block_TFFTStorageFieldBlockT2.java | 3 +- .../java/blocks/Block_TFFTStorageFieldBlockT3.java | 3 +- .../java/blocks/Block_TFFTStorageFieldBlockT4.java | 3 +- .../java/blocks/Block_TFFTStorageFieldBlockT5.java | 3 +- src/main/java/blocks/Block_YSZUnit.java | 3 +- .../java/tileentities/GTMTE_FluidMultiStorage.java | 324 ++++++++++----------- 17 files changed, 212 insertions(+), 203 deletions(-) create mode 100644 src/main/java/blocks/BaseGTUpdateableBlock.java (limited to 'src/main/java') diff --git a/src/main/java/blocks/BaseGTUpdateableBlock.java b/src/main/java/blocks/BaseGTUpdateableBlock.java new file mode 100644 index 0000000000..5b49a1fb25 --- /dev/null +++ b/src/main/java/blocks/BaseGTUpdateableBlock.java @@ -0,0 +1,29 @@ +package blocks; + + +import gregtech.api.GregTech_API; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.world.World; + +public abstract class BaseGTUpdateableBlock extends Block { + + protected BaseGTUpdateableBlock(Material p_i45394_1_) { + super(p_i45394_1_); + GregTech_API.registerMachineBlock(this, -1); + } + + @Override + public void onBlockAdded(World aWorld, int aX, int aY, int aZ) { + if (GregTech_API.isMachineBlock(this, aWorld.getBlockMetadata(aX, aY, aZ))) { + GregTech_API.causeMachineUpdate(aWorld, aX, aY, aZ); + } + } + + @Override + public void breakBlock(World aWorld, int aX, int aY, int aZ, Block aBlock, int aMetaData) { + if (GregTech_API.isMachineBlock(this, aWorld.getBlockMetadata(aX, aY, aZ))) { + GregTech_API.causeMachineUpdate(aWorld, aX, aY, aZ); + } + } +} diff --git a/src/main/java/blocks/Block_ControlRod.java b/src/main/java/blocks/Block_ControlRod.java index 4e407a5ed1..a31c6e2981 100644 --- a/src/main/java/blocks/Block_ControlRod.java +++ b/src/main/java/blocks/Block_ControlRod.java @@ -2,11 +2,10 @@ package blocks; import cpw.mods.fml.common.registry.GameRegistry; import kekztech.KekzCore; -import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; -public class Block_ControlRod extends Block { +public class Block_ControlRod extends BaseGTUpdateableBlock { private static Block_ControlRod instance = new Block_ControlRod(); diff --git a/src/main/java/blocks/Block_GDCUnit.java b/src/main/java/blocks/Block_GDCUnit.java index ed778b5e8d..9dbad68d45 100644 --- a/src/main/java/blocks/Block_GDCUnit.java +++ b/src/main/java/blocks/Block_GDCUnit.java @@ -2,11 +2,10 @@ package blocks; import cpw.mods.fml.common.registry.GameRegistry; import kekztech.KekzCore; -import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; -public class Block_GDCUnit extends Block { +public class Block_GDCUnit extends BaseGTUpdateableBlock { private static Block_GDCUnit instance = new Block_GDCUnit(); diff --git a/src/main/java/blocks/Block_ItemServerDrive.java b/src/main/java/blocks/Block_ItemServerDrive.java index 14a9e97d3e..e2d521424b 100644 --- a/src/main/java/blocks/Block_ItemServerDrive.java +++ b/src/main/java/blocks/Block_ItemServerDrive.java @@ -3,13 +3,12 @@ package blocks; import cpw.mods.fml.common.registry.GameRegistry; import itemBlocks.IB_ItemServerDrive; import kekztech.KekzCore; -import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.util.IIcon; -public class Block_ItemServerDrive extends Block{ +public class Block_ItemServerDrive extends BaseGTUpdateableBlock{ private static Block_ItemServerDrive instance = new Block_ItemServerDrive(); diff --git a/src/main/java/blocks/Block_ItemServerIOPort.java b/src/main/java/blocks/Block_ItemServerIOPort.java index 79aba33b89..e53ebe2859 100644 --- a/src/main/java/blocks/Block_ItemServerIOPort.java +++ b/src/main/java/blocks/Block_ItemServerIOPort.java @@ -3,14 +3,13 @@ package blocks; import cpw.mods.fml.common.registry.GameRegistry; import itemBlocks.IB_ItemServerIOPort; import kekztech.KekzCore; -import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import tileentities.TE_ItemServerIOPort; -public class Block_ItemServerIOPort extends BlockContainer { +public class Block_ItemServerIOPort extends BaseGTUpdateableBlock { private static Block_ItemServerIOPort instance = new Block_ItemServerIOPort(); @@ -32,9 +31,14 @@ public class Block_ItemServerIOPort extends BlockContainer { super.setResistance(6.0f); GameRegistry.registerBlock(getInstance(), IB_ItemServerIOPort.class, blockName); } - + + @Override + public boolean hasTileEntity(int metadata) { + return true; + } + @Override - public TileEntity createNewTileEntity(World world, int p_149915_2_) { + public TileEntity createTileEntity(World world, int metadata) { return new TE_ItemServerIOPort(); } diff --git a/src/main/java/blocks/Block_ItemServerRackCasing.java b/src/main/java/blocks/Block_ItemServerRackCasing.java index e0ee7af698..fe57f2da85 100644 --- a/src/main/java/blocks/Block_ItemServerRackCasing.java +++ b/src/main/java/blocks/Block_ItemServerRackCasing.java @@ -3,11 +3,10 @@ package blocks; import cpw.mods.fml.common.registry.GameRegistry; import itemBlocks.IB_ItemServerRackCasing; import kekztech.KekzCore; -import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; -public class Block_ItemServerRackCasing extends Block { +public class Block_ItemServerRackCasing extends BaseGTUpdateableBlock { private static Block_ItemServerRackCasing instance = new Block_ItemServerRackCasing(); diff --git a/src/main/java/blocks/Block_ReactorChamber_OFF.java b/src/main/java/blocks/Block_ReactorChamber_OFF.java index effe7aa9b4..86b4b63445 100644 --- a/src/main/java/blocks/Block_ReactorChamber_OFF.java +++ b/src/main/java/blocks/Block_ReactorChamber_OFF.java @@ -2,11 +2,10 @@ package blocks; import cpw.mods.fml.common.registry.GameRegistry; import kekztech.KekzCore; -import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; -public class Block_ReactorChamber_OFF extends Block { +public class Block_ReactorChamber_OFF extends BaseGTUpdateableBlock { private static Block_ReactorChamber_OFF instance = new Block_ReactorChamber_OFF(); diff --git a/src/main/java/blocks/Block_ReactorChamber_ON.java b/src/main/java/blocks/Block_ReactorChamber_ON.java index 26004e0753..621ffb99eb 100644 --- a/src/main/java/blocks/Block_ReactorChamber_ON.java +++ b/src/main/java/blocks/Block_ReactorChamber_ON.java @@ -2,11 +2,10 @@ package blocks; import cpw.mods.fml.common.registry.GameRegistry; import kekztech.KekzCore; -import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; -public class Block_ReactorChamber_ON extends Block { +public class Block_ReactorChamber_ON extends BaseGTUpdateableBlock { private static Block_ReactorChamber_ON instance = new Block_ReactorChamber_ON(); diff --git a/src/main/java/blocks/Block_TFFTCasing.java b/src/main/java/blocks/Block_TFFTCasing.java index 02f44a9dd7..df6626894d 100644 --- a/src/main/java/blocks/Block_TFFTCasing.java +++ b/src/main/java/blocks/Block_TFFTCasing.java @@ -2,11 +2,10 @@ package blocks; import cpw.mods.fml.common.registry.GameRegistry; import kekztech.KekzCore; -import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; -public class Block_TFFTCasing extends Block { +public class Block_TFFTCasing extends BaseGTUpdateableBlock { private static Block_TFFTCasing instance = new Block_TFFTCasing(); diff --git a/src/main/java/blocks/Block_TFFTMultiHatch.java b/src/main/java/blocks/Block_TFFTMultiHatch.java index e8378f39e8..c1d3c95717 100644 --- a/src/main/java/blocks/Block_TFFTMultiHatch.java +++ b/src/main/java/blocks/Block_TFFTMultiHatch.java @@ -3,14 +3,13 @@ package blocks; import cpw.mods.fml.common.registry.GameRegistry; import itemBlocks.IB_TFFTMultiHatch; import kekztech.KekzCore; -import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import tileentities.TE_TFFTMultiHatch; -public class Block_TFFTMultiHatch extends BlockContainer { +public class Block_TFFTMultiHatch extends BaseGTUpdateableBlock { private static Block_TFFTMultiHatch instance = new Block_TFFTMultiHatch(); @@ -33,8 +32,12 @@ public class Block_TFFTMultiHatch extends BlockContainer { } @Override - public TileEntity createNewTileEntity(World world, int p_149915_2_) { + public TileEntity createTileEntity(World world, int p_149915_2_) { return new TE_TFFTMultiHatch(); } - + + @Override + public boolean hasTileEntity(int metadata) { + return true; + } } diff --git a/src/main/java/blocks/Block_TFFTStorageFieldBlockT1.java b/src/main/java/blocks/Block_TFFTStorageFieldBlockT1.java index d90838325f..cfb40282fa 100644 --- a/src/main/java/blocks/Block_TFFTStorageFieldBlockT1.java +++ b/src/main/java/blocks/Block_TFFTStorageFieldBlockT1.java @@ -3,11 +3,10 @@ package blocks; import cpw.mods.fml.common.registry.GameRegistry; import itemBlocks.IB_TFFTStorageFieldBlockT1; import kekztech.KekzCore; -import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; -public class Block_TFFTStorageFieldBlockT1 extends Block { +public class Block_TFFTStorageFieldBlockT1 extends BaseGTUpdateableBlock { private static Block_TFFTStorageFieldBlockT1 instance = new Block_TFFTStorageFieldBlockT1(); diff --git a/src/main/java/blocks/Block_TFFTStorageFieldBlockT2.java b/src/main/java/blocks/Block_TFFTStorageFieldBlockT2.java index 08094338d5..afacd768c3 100644 --- a/src/main/java/blocks/Block_TFFTStorageFieldBlockT2.java +++ b/src/main/java/blocks/Block_TFFTStorageFieldBlockT2.java @@ -3,11 +3,10 @@ package blocks; import cpw.mods.fml.common.registry.GameRegistry; import itemBlocks.IB_TFFTStorageFieldBlockT2; import kekztech.KekzCore; -import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; -public class Block_TFFTStorageFieldBlockT2 extends Block { +public class Block_TFFTStorageFieldBlockT2 extends BaseGTUpdateableBlock { private static Block_TFFTStorageFieldBlockT2 instance = new Block_TFFTStorageFieldBlockT2(); diff --git a/src/main/java/blocks/Block_TFFTStorageFieldBlockT3.java b/src/main/java/blocks/Block_TFFTStorageFieldBlockT3.java index 987cf54b63..389bb7a24c 100644 --- a/src/main/java/blocks/Block_TFFTStorageFieldBlockT3.java +++ b/src/main/java/blocks/Block_TFFTStorageFieldBlockT3.java @@ -3,11 +3,10 @@ package blocks; import cpw.mods.fml.common.registry.GameRegistry; import itemBlocks.IB_TFFTStorageFieldBlockT3; import kekztech.KekzCore; -import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; -public class Block_TFFTStorageFieldBlockT3 extends Block { +public class Block_TFFTStorageFieldBlockT3 extends BaseGTUpdateableBlock { private static Block_TFFTStorageFieldBlockT3 instance = new Block_TFFTStorageFieldBlockT3(); diff --git a/src/main/java/blocks/Block_TFFTStorageFieldBlockT4.java b/src/main/java/blocks/Block_TFFTStorageFieldBlockT4.java index 4ba363cfbb..f328b858a5 100644 --- a/src/main/java/blocks/Block_TFFTStorageFieldBlockT4.java +++ b/src/main/java/blocks/Block_TFFTStorageFieldBlockT4.java @@ -3,11 +3,10 @@ package blocks; import cpw.mods.fml.common.registry.GameRegistry; import itemBlocks.IB_TFFTStorageFieldBlockT4; import kekztech.KekzCore; -import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; -public class Block_TFFTStorageFieldBlockT4 extends Block { +public class Block_TFFTStorageFieldBlockT4 extends BaseGTUpdateableBlock { private static Block_TFFTStorageFieldBlockT4 instance = new Block_TFFTStorageFieldBlockT4(); diff --git a/src/main/java/blocks/Block_TFFTStorageFieldBlockT5.java b/src/main/java/blocks/Block_TFFTStorageFieldBlockT5.java index 61ed1decf3..fd53051974 100644 --- a/src/main/java/blocks/Block_TFFTStorageFieldBlockT5.java +++ b/src/main/java/blocks/Block_TFFTStorageFieldBlockT5.java @@ -3,11 +3,10 @@ package blocks; import cpw.mods.fml.common.registry.GameRegistry; import itemBlocks.IB_TFFTStorageFieldBlockT5; import kekztech.KekzCore; -import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; -public class Block_TFFTStorageFieldBlockT5 extends Block { +public class Block_TFFTStorageFieldBlockT5 extends BaseGTUpdateableBlock { private static Block_TFFTStorageFieldBlockT5 instance = new Block_TFFTStorageFieldBlockT5(); diff --git a/src/main/java/blocks/Block_YSZUnit.java b/src/main/java/blocks/Block_YSZUnit.java index a32b28e94d..33ec67c5be 100644 --- a/src/main/java/blocks/Block_YSZUnit.java +++ b/src/main/java/blocks/Block_YSZUnit.java @@ -2,11 +2,10 @@ package blocks; import cpw.mods.fml.common.registry.GameRegistry; import kekztech.KekzCore; -import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; -public class Block_YSZUnit extends Block { +public class Block_YSZUnit extends BaseGTUpdateableBlock { private static Block_YSZUnit instance = new Block_YSZUnit(); diff --git a/src/main/java/tileentities/GTMTE_FluidMultiStorage.java b/src/main/java/tileentities/GTMTE_FluidMultiStorage.java index 07e0a56151..f220da2dbc 100644 --- a/src/main/java/tileentities/GTMTE_FluidMultiStorage.java +++ b/src/main/java/tileentities/GTMTE_FluidMultiStorage.java @@ -1,18 +1,6 @@ package tileentities; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.Iterator; - -import org.lwjgl.input.Keyboard; - -import blocks.Block_TFFTCasing; -import blocks.Block_TFFTMultiHatch; -import blocks.Block_TFFTStorageFieldBlockT1; -import blocks.Block_TFFTStorageFieldBlockT2; -import blocks.Block_TFFTStorageFieldBlockT3; -import blocks.Block_TFFTStorageFieldBlockT4; -import blocks.Block_TFFTStorageFieldBlockT5; +import blocks.*; import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.gui.GT_GUIContainer_MultiMachine; import gregtech.api.interfaces.ITexture; @@ -32,29 +20,33 @@ import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; +import org.lwjgl.input.Keyboard; import util.MultiBlockTooltipBuilder; import util.Vector3i; import util.Vector3ic; +import java.util.ArrayList; +import java.util.HashSet; + public class GTMTE_FluidMultiStorage extends GT_MetaTileEntity_MultiBlockBase { - - private final String glassNameAE2 = "tile.appliedenergistics2.BlockQuartzGlass"; - private final String glassNameStained = "tile.stainedGlass"; - private final Block CASING = Block_TFFTCasing.getInstance(); - private final Block_TFFTStorageFieldBlockT1 STORAGE_FIELD1 = Block_TFFTStorageFieldBlockT1.getInstance(); - private final Block_TFFTStorageFieldBlockT2 STORAGE_FIELD2 = Block_TFFTStorageFieldBlockT2.getInstance(); - private final Block_TFFTStorageFieldBlockT3 STORAGE_FIELD3 = Block_TFFTStorageFieldBlockT3.getInstance(); - private final Block_TFFTStorageFieldBlockT4 STORAGE_FIELD4 = Block_TFFTStorageFieldBlockT4.getInstance(); - private final Block_TFFTStorageFieldBlockT5 STORAGE_FIELD5 = Block_TFFTStorageFieldBlockT5.getInstance(); - private final Block MULTI_HATCH = Block_TFFTMultiHatch.getInstance(); - private final int CASING_TEXTURE_ID = 176; - + + private final static String glassNameAE2 = "tile.appliedenergistics2.BlockQuartzGlass"; + private final static String glassNameStained = "tile.stainedGlass"; + private final static Block CASING = Block_TFFTCasing.getInstance(); + private final static Block_TFFTStorageFieldBlockT1 STORAGE_FIELD1 = Block_TFFTStorageFieldBlockT1.getInstance(); + private final static Block_TFFTStorageFieldBlockT2 STORAGE_FIELD2 = Block_TFFTStorageFieldBlockT2.getInstance(); + private final static Block_TFFTStorageFieldBlockT3 STORAGE_FIELD3 = Block_TFFTStorageFieldBlockT3.getInstance(); + private final static Block_TFFTStorageFieldBlockT4 STORAGE_FIELD4 = Block_TFFTStorageFieldBlockT4.getInstance(); + private final static Block_TFFTStorageFieldBlockT5 STORAGE_FIELD5 = Block_TFFTStorageFieldBlockT5.getInstance(); + private final static Block MULTI_HATCH = Block_TFFTMultiHatch.getInstance(); + private final static int CASING_TEXTURE_ID = 176; + private MultiFluidHandler mfh; private HashSet multiHatches = new HashSet<>(); private int runningCost = 0; private boolean doVoidExcess = false; - + public GTMTE_FluidMultiStorage(int aID, String aName, String aNameRegional) { super(aID, aName, aNameRegional); } @@ -62,7 +54,7 @@ public class GTMTE_FluidMultiStorage extends GT_MetaTileEntity_MultiBlockBase { public GTMTE_FluidMultiStorage(String aName) { super(aName); } - + @Override public IMetaTileEntity newMetaEntity(IGregTechTileEntity var1) { return new GTMTE_FluidMultiStorage(super.mName); @@ -88,7 +80,7 @@ public class GTMTE_FluidMultiStorage extends GT_MetaTileEntity_MultiBlockBase { .addMaintenanceHatch("Instead of any casing or glass, has to touch storage field.") .addIOHatches("Instead of any casing or glass, have to touch storage field. True for the Multi-Hatch as well.") .signAndFinalize("Kekzdealer"); - if(!Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { + if (!Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { return b.getInformation(); } else { return b.getStructureInformation(); @@ -97,12 +89,12 @@ public class GTMTE_FluidMultiStorage extends GT_MetaTileEntity_MultiBlockBase { @Override public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, - boolean aActive, boolean aRedstone) { + boolean aActive, boolean aRedstone) { return aSide == aFacing ? new ITexture[]{BlockIcons.casingTexturePages[1][48], - new GT_RenderedTexture(aActive - ? BlockIcons.OVERLAY_FRONT_LARGE_CHEMICAL_REACTOR_ACTIVE - : BlockIcons.OVERLAY_FRONT_LARGE_CHEMICAL_REACTOR)} + new GT_RenderedTexture(aActive + ? BlockIcons.OVERLAY_FRONT_LARGE_CHEMICAL_REACTOR_ACTIVE + : BlockIcons.OVERLAY_FRONT_LARGE_CHEMICAL_REACTOR)} : new ITexture[]{BlockIcons.casingTexturePages[1][48]}; } @@ -118,45 +110,45 @@ public class GTMTE_FluidMultiStorage extends GT_MetaTileEntity_MultiBlockBase { @Override public boolean checkRecipe(ItemStack guiSlotItem) { - + super.mEfficiency = 10000 - (super.getIdealStatus() - super.getRepairStatus()) * 1000; super.mEfficiencyIncrease = 10000; super.mEUt = runningCost; super.mMaxProgresstime = 10; - + // If there are no basic I/O hatches, let multi hatches handle it and skip a lot of code! - if(multiHatches.size() > 0 && super.mInputHatches.size() == 0 && super.mOutputHatches.size() == 0) { + if (multiHatches.size() > 0 && super.mInputHatches.size() == 0 && super.mOutputHatches.size() == 0) { return true; } - + // Suck in fluids final ArrayList inputHatchFluids = super.getStoredFluids(); - if(inputHatchFluids.size() > 0) { - - for(FluidStack fluidStack : inputHatchFluids) { - + if (inputHatchFluids.size() > 0) { + + for (FluidStack fluidStack : inputHatchFluids) { + final int pushed = mfh.pushFluid(fluidStack, true); final FluidStack toDeplete = fluidStack.copy(); toDeplete.amount = pushed; - super.depleteInput(toDeplete); + super.depleteInput(toDeplete); } - + // Void excess if that is turned on - if(doVoidExcess) { - for(GT_MetaTileEntity_Hatch_Input inputHatch : super.mInputHatches) { + if (doVoidExcess) { + for (GT_MetaTileEntity_Hatch_Input inputHatch : super.mInputHatches) { inputHatch.setDrainableStack(null); } } } - + // Push out fluids - if(guiSlotItem != null && guiSlotItem.getUnlocalizedName().equals("gt.integrated_circuit")) { + if (guiSlotItem != null && guiSlotItem.getUnlocalizedName().equals("gt.integrated_circuit")) { final int config = guiSlotItem.getItemDamage(); - final FluidStack storedFluid = mfh.getFluid(config); + final FluidStack storedFluid = mfh.getFluid(config); // Sum available output capacity int possibleOutput = 0; - for(GT_MetaTileEntity_Hatch_Output outputHatch : super.mOutputHatches) { - if(outputHatch.isFluidLocked() && outputHatch.getLockedFluidName().equals(storedFluid.getUnlocalizedName())) { + for (GT_MetaTileEntity_Hatch_Output outputHatch : super.mOutputHatches) { + if (outputHatch.isFluidLocked() && outputHatch.getLockedFluidName().equals(storedFluid.getUnlocalizedName())) { possibleOutput += outputHatch.getCapacity() - outputHatch.getFluidAmount(); } else if (outputHatch.getFluid() != null && outputHatch.getFluid().getUnlocalizedName().equals(storedFluid.getUnlocalizedName())) { possibleOutput += outputHatch.getCapacity() - outputHatch.getFluidAmount(); @@ -169,15 +161,13 @@ public class GTMTE_FluidMultiStorage extends GT_MetaTileEntity_MultiBlockBase { tempStack.amount = possibleOutput; tempStack.amount = mfh.pullFluid(tempStack, config, true); super.addOutput(tempStack); - + } else { - final Iterator storageIterator = mfh.getFluids().iterator(); - while(storageIterator.hasNext()) { - FluidStack storedFluid = storageIterator.next(); + for (FluidStack storedFluid : mfh.getFluids()) { // Sum available output capacity int possibleOutput = 0; - for(GT_MetaTileEntity_Hatch_Output outputHatch : super.mOutputHatches) { - if(outputHatch.isFluidLocked() && outputHatch.getLockedFluidName().equals(storedFluid.getUnlocalizedName())) { + for (GT_MetaTileEntity_Hatch_Output outputHatch : super.mOutputHatches) { + if (outputHatch.isFluidLocked() && outputHatch.getLockedFluidName().equals(storedFluid.getUnlocalizedName())) { possibleOutput += outputHatch.getCapacity() - outputHatch.getFluidAmount(); } else if (outputHatch.getFluid() != null && outputHatch.getFluid().getUnlocalizedName().equals(storedFluid.getUnlocalizedName())) { possibleOutput += outputHatch.getCapacity() - outputHatch.getFluidAmount(); @@ -193,66 +183,63 @@ public class GTMTE_FluidMultiStorage extends GT_MetaTileEntity_MultiBlockBase { super.addOutput(tempStack); } } - + return true; } - + @Override public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { super.onPostTick(aBaseMetaTileEntity, aTick); - - if(mfh != null) { + + if (mfh != null) { mfh.setLock(!super.getBaseMetaTileEntity().isActive()); } } - + public Vector3ic rotateOffsetVector(Vector3ic forgeDirection, int x, int y, int z) { final Vector3i offset = new Vector3i(); - + // either direction on z-axis - if(forgeDirection.x() == 0 && forgeDirection.z() == -1) { + if (forgeDirection.x() == 0 && forgeDirection.z() == -1) { offset.x = x; offset.y = y; offset.z = z; } - if(forgeDirection.x() == 0 && forgeDirection.z() == 1) { + if (forgeDirection.x() == 0 && forgeDirection.z() == 1) { offset.x = -x; offset.y = y; offset.z = -z; } // either direction on x-axis - if(forgeDirection.x() == -1 && forgeDirection.z() == 0) { + if (forgeDirection.x() == -1 && forgeDirection.z() == 0) { offset.x = z; offset.y = y; offset.z = -x; } - if(forgeDirection.x() == 1 && forgeDirection.z() == 0) { + if (forgeDirection.x() == 1 && forgeDirection.z() == 0) { offset.x = -z; offset.y = y; offset.z = x; } // either direction on y-axis - if(forgeDirection.y() == -1) { + if (forgeDirection.y() == -1) { offset.x = x; offset.y = z; offset.z = y; } - + return offset; } - + /** * Checks structural integrity and registers machine parts. * Appears to often not run but can be jump started by forcing a block update on the controller. * (Place a piece of dirt on the front face and remove it again. Dirty fix lol.) - * - * @param thisController - * Object reference to this controller block's Tile Entity. - * @param guiSlotItem - * References the item stack that can be placed in that GUI slot - * in the top right. + * + * @param thisController Object reference to this controller block's Tile Entity. + * @param guiSlotItem References the item stack that can be placed in that GUI slot + * in the top right. */ - @SuppressWarnings("static-access") @Override public boolean checkMachine(IGregTechTileEntity thisController, ItemStack guiSlotItem) { // Figure out the vector for the direction the back face of the controller is facing @@ -260,55 +247,56 @@ public class GTMTE_FluidMultiStorage extends GT_MetaTileEntity_MultiBlockBase { ForgeDirection.getOrientation(thisController.getBackFacing()).offsetX, ForgeDirection.getOrientation(thisController.getBackFacing()).offsetY, ForgeDirection.getOrientation(thisController.getBackFacing()).offsetZ - ); - int minCasingAmount = 20; + ); + int minCasingAmount = 20; boolean formationChecklist = true; // if this is still true at the end, machine is good to go :) float runningCostAcc = 0; double fluidCapacityAcc = 0; - + multiHatches.clear(); - + // Front slice - for(int X = -2; X <= 2; X++) { - for(int Y = -2; Y <= 2; Y++) { - if(X == 0 && Y == 0) { + for (int X = -2; X <= 2; X++) { + for (int Y = -2; Y <= 2; Y++) { + if (X == 0 && Y == 0) { continue; // is controller } - + // Get next TE final Vector3ic offset = rotateOffsetVector(forgeDirection, X, Y, 0); - IGregTechTileEntity currentTE = + IGregTechTileEntity currentTE = thisController.getIGregTechTileEntityOffset(offset.x(), offset.y(), offset.z()); - + // Fluid hatches should touch the storage field. // Maintenance/Energy hatch can go anywhere - if(X > -2 && X < 2 && Y > -2 && Y < 2) { + if (X > -2 && X < 2 && Y > -2 && Y < 2) { if (!super.addMaintenanceToMachineList(currentTE, CASING_TEXTURE_ID) && !super.addInputToMachineList(currentTE, CASING_TEXTURE_ID) && !super.addOutputToMachineList(currentTE, CASING_TEXTURE_ID) && !super.addEnergyInputToMachineList(currentTE, CASING_TEXTURE_ID)) { - + + Block b = thisController.getBlockOffset(offset.x(), offset.y(), offset.z()); + // If it's not a hatch, is it the right casing for this machine? Check block and block meta. // Also check for multi hatch - if (thisController.getBlockOffset(offset.x(), offset.y(), offset.z()) == CASING) { + if (b == CASING) { // Seems to be valid casing. Decrement counter. minCasingAmount--; - } else if(thisController.getBlockOffset(offset.x(), offset.y(), offset.z()) == MULTI_HATCH) { - final TE_TFFTMultiHatch mh = + } else if (b == MULTI_HATCH) { + final TE_TFFTMultiHatch mh = (TE_TFFTMultiHatch) thisController.getWorld().getTileEntity( - thisController.getXCoord() + offset.x(), + thisController.getXCoord() + offset.x(), thisController.getYCoord() + offset.y(), thisController.getZCoord() + offset.z()); multiHatches.add(mh); - } - else { + } else { formationChecklist = false; } } } else { if (!super.addMaintenanceToMachineList(currentTE, CASING_TEXTURE_ID) && !super.addEnergyInputToMachineList(currentTE, CASING_TEXTURE_ID)) { - + // If it's not a hatch, is it the right casing for this machine? Check block and block meta. if (thisController.getBlockOffset(offset.x(), offset.y(), offset.z()) == CASING) { // Seems to be valid casing. Decrement counter. @@ -320,72 +308,70 @@ public class GTMTE_FluidMultiStorage extends GT_MetaTileEntity_MultiBlockBase { } } } - + // Middle three slices - for(int X = -2; X <= 2; X++) { - for(int Y = -2; Y <= 2; Y++) { - for(int Z = -1; Z >= -7; Z--) { + for (int X = -2; X <= 2; X++) { + for (int Y = -2; Y <= 2; Y++) { + for (int Z = -1; Z >= -7; Z--) { final Vector3ic offset = rotateOffsetVector(forgeDirection, X, Y, Z); - if(X > -2 && X < 2 && Y > -2 && Y < 2) { - if(thisController.getBlockOffset(offset.x(), offset.y(), offset.z()).getUnlocalizedName() + if (X > -2 && X < 2 && Y > -2 && Y < 2) { + if (thisController.getBlockOffset(offset.x(), offset.y(), offset.z()).getUnlocalizedName() .equals(STORAGE_FIELD1.getUnlocalizedName())) { runningCostAcc += 0.5f; - fluidCapacityAcc += (float) STORAGE_FIELD1.getCapacity(); - } else if(thisController.getBlockOffset(offset.x(), offset.y(), offset.z()).getUnlocalizedName() + fluidCapacityAcc += (float) Block_TFFTStorageFieldBlockT1.getCapacity(); + } else if (thisController.getBlockOffset(offset.x(), offset.y(), offset.z()).getUnlocalizedName() .equals(STORAGE_FIELD2.getUnlocalizedName())) { runningCostAcc += 1.0f; - fluidCapacityAcc += (float) STORAGE_FIELD2.getCapacity(); - } else if(thisController.getBlockOffset(offset.x(), offset.y(), offset.z()).getUnlocalizedName() + fluidCapacityAcc += (float) Block_TFFTStorageFieldBlockT2.getCapacity(); + } else if (thisController.getBlockOffset(offset.x(), offset.y(), offset.z()).getUnlocalizedName() .equals(STORAGE_FIELD3.getUnlocalizedName())) { runningCostAcc += 2.0f; - fluidCapacityAcc += (float) STORAGE_FIELD3.getCapacity(); - } else if(thisController.getBlockOffset(offset.x(), offset.y(), offset.z()).getUnlocalizedName() + fluidCapacityAcc += (float) Block_TFFTStorageFieldBlockT3.getCapacity(); + } else if (thisController.getBlockOffset(offset.x(), offset.y(), offset.z()).getUnlocalizedName() .equals(STORAGE_FIELD4.getUnlocalizedName())) { runningCostAcc += 4.0f; - fluidCapacityAcc += (float) STORAGE_FIELD4.getCapacity(); - } else if(thisController.getBlockOffset(offset.x(), offset.y(), offset.z()).getUnlocalizedName() + fluidCapacityAcc += (float) Block_TFFTStorageFieldBlockT4.getCapacity(); + } else if (thisController.getBlockOffset(offset.x(), offset.y(), offset.z()).getUnlocalizedName() .equals(STORAGE_FIELD5.getUnlocalizedName())) { runningCostAcc += 8.0f; - fluidCapacityAcc += (float) STORAGE_FIELD5.getCapacity(); + fluidCapacityAcc += (float) Block_TFFTStorageFieldBlockT5.getCapacity(); } else { formationChecklist = false; } continue; } - + // Get next TE - IGregTechTileEntity currentTE = + IGregTechTileEntity currentTE = thisController.getIGregTechTileEntityOffset(offset.x(), offset.y(), offset.z());// x, y ,z - + // Corner allows only glass or casings - if(X == -2 && Y == -2 || X == 2 && Y == 2 || X == -2 && Y == 2 || X == 2 && Y == -2) { - if(!(thisController.getBlockOffset(offset.x(), offset.y(), offset.z()).getUnlocalizedName().equals(glassNameAE2) + if (X == -2 && Y == -2 || X == 2 && Y == 2 || X == -2 && Y == 2 || X == 2 && Y == -2) { + if (!(thisController.getBlockOffset(offset.x(), offset.y(), offset.z()).getUnlocalizedName().equals(glassNameAE2) || thisController.getBlockOffset(offset.x(), offset.y(), offset.z()).getUnlocalizedName().equals(glassNameStained) - || thisController.getBlockOffset(offset.x(), offset.y(), offset.z()) == CASING)) { + || thisController.getBlockOffset(offset.x(), offset.y(), offset.z()) == CASING)) { formationChecklist = false; // do nothing yet } } else { // Tries to add TE as either of those kinds of hatches. // The number is the texture index number for the texture that needs to be painted over the hatch texture (TAE for GT++) - if ( !super.addInputToMachineList(currentTE, CASING_TEXTURE_ID) - && !super.addOutputToMachineList(currentTE, CASING_TEXTURE_ID)) { - + if (!super.addInputToMachineList(currentTE, CASING_TEXTURE_ID) + && !super.addOutputToMachineList(currentTE, CASING_TEXTURE_ID)) { + // If it's not a hatch, is it the right casing for this machine? Check block and block meta. // Also check for multi hatch if (thisController.getBlockOffset(offset.x(), offset.y(), offset.z()) == CASING) { // Seems to be valid casing. Decrement counter. minCasingAmount--; - } else if(thisController.getBlockOffset(offset.x(), offset.y(), offset.z()) == MULTI_HATCH) { - final TE_TFFTMultiHatch mh = + } else if (thisController.getBlockOffset(offset.x(), offset.y(), offset.z()) == MULTI_HATCH) { + final TE_TFFTMultiHatch mh = (TE_TFFTMultiHatch) thisController.getWorld().getTileEntity( - thisController.getXCoord() + offset.x(), + thisController.getXCoord() + offset.x(), thisController.getYCoord() + offset.y(), thisController.getZCoord() + offset.z()); multiHatches.add(mh); - } else if (thisController.getBlockOffset(offset.x(), offset.y(), offset.z()).getUnlocalizedName().equals(glassNameAE2) - || thisController.getBlockOffset(offset.x(), offset.y(), offset.z()).getUnlocalizedName().equals(glassNameStained)) { - // do nothing lol - } else { + } else if (!thisController.getBlockOffset(offset.x(), offset.y(), offset.z()).getUnlocalizedName().equals(glassNameAE2) + && !thisController.getBlockOffset(offset.x(), offset.y(), offset.z()).getUnlocalizedName().equals(glassNameStained)) { formationChecklist = false; } } @@ -393,31 +379,31 @@ public class GTMTE_FluidMultiStorage extends GT_MetaTileEntity_MultiBlockBase { } } } - + // Back slice - for(int X = -2; X <= 2; X++) { - for(int Y = -2; Y <= 2; Y++) { + for (int X = -2; X <= 2; X++) { + for (int Y = -2; Y <= 2; Y++) { // Get next TE final Vector3ic offset = rotateOffsetVector(forgeDirection, X, Y, -8); - IGregTechTileEntity currentTE = + IGregTechTileEntity currentTE = thisController.getIGregTechTileEntityOffset(offset.x(), offset.y(), offset.z()); - + // Fluid hatches should touch the storage field. // Maintenance/Energy hatch can go anywhere - if(X > -2 && X < 2 && Y > -2 && Y < 2) { + if (X > -2 && X < 2 && Y > -2 && Y < 2) { if (!super.addMaintenanceToMachineList(currentTE, CASING_TEXTURE_ID) && !super.addInputToMachineList(currentTE, CASING_TEXTURE_ID) && !super.addOutputToMachineList(currentTE, CASING_TEXTURE_ID) && !super.addEnergyInputToMachineList(currentTE, CASING_TEXTURE_ID)) { - + // If it's not a hatch, is it the right casing for this machine? Check block and block meta. if (thisController.getBlockOffset(offset.x(), offset.y(), offset.z()) == CASING) { // Seems to be valid casing. Decrement counter. minCasingAmount--; - } else if(thisController.getBlockOffset(offset.x(), offset.y(), offset.z()) == MULTI_HATCH) { - final TE_TFFTMultiHatch mh = + } else if (thisController.getBlockOffset(offset.x(), offset.y(), offset.z()) == MULTI_HATCH) { + final TE_TFFTMultiHatch mh = (TE_TFFTMultiHatch) thisController.getWorld().getTileEntity( - thisController.getXCoord() + offset.x(), + thisController.getXCoord() + offset.x(), thisController.getYCoord() + offset.y(), thisController.getZCoord() + offset.z()); multiHatches.add(mh); @@ -428,7 +414,7 @@ public class GTMTE_FluidMultiStorage extends GT_MetaTileEntity_MultiBlockBase { } else { if (!super.addMaintenanceToMachineList(currentTE, CASING_TEXTURE_ID) && !super.addEnergyInputToMachineList(currentTE, CASING_TEXTURE_ID)) { - + // If it's not a hatch, is it the right casing for this machine? Check block and block meta. if (thisController.getBlockOffset(offset.x(), offset.y(), offset.z()) == CASING) { // Seems to be valid casing. Decrement counter. @@ -440,98 +426,98 @@ public class GTMTE_FluidMultiStorage extends GT_MetaTileEntity_MultiBlockBase { } } } - - if(this.mEnergyHatches.size() < 1) { + + if (this.mEnergyHatches.size() < 1) { System.out.println("At least one energy hatch is required!"); formationChecklist = false; } - - if(this.mMaintenanceHatches.size() < 1) { + + if (this.mMaintenanceHatches.size() < 1) { System.out.println("You need a maintenance hatch to do maintenance."); formationChecklist = false; } - - if(minCasingAmount > 0) { + + if (minCasingAmount > 0) { formationChecklist = false; } - - if(formationChecklist) { - runningCost = (int) Math.round(-runningCostAcc); + + if (formationChecklist) { + runningCost = Math.round(-runningCostAcc); // Update MultiFluidHandler in case storage cells have been changed final int capacityPerFluid = (int) Math.round(fluidCapacityAcc / 25.0f); - if(mfh == null) { + if (mfh == null) { mfh = new MultiFluidHandler(capacityPerFluid); } else { - if(mfh.getCapacity() != capacityPerFluid) { + if (mfh.getCapacity() != capacityPerFluid) { mfh = new MultiFluidHandler(capacityPerFluid, mfh.getFluids()); } } - for(TE_TFFTMultiHatch mh : multiHatches) { + for (TE_TFFTMultiHatch mh : multiHatches) { mh.setMultiFluidHandler(mfh); } } - + return formationChecklist; } - + @Override public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) { - if(doVoidExcess) { + if (doVoidExcess) { doVoidExcess = false; aPlayer.addChatComponentMessage(new ChatComponentText("Auto-voiding turned off")); } else { doVoidExcess = true; aPlayer.addChatComponentMessage(new ChatComponentText("Auto-voiding turned on")); - } + } } - + @Override public String[] getInfoData() { final ArrayList ll = mfh.getInfoData(); - + ll.add(EnumChatFormatting.YELLOW + "Operational Data:" + EnumChatFormatting.RESET); ll.add("Auto-voiding: " + doVoidExcess); ll.add("Per-Fluid Capacity: " + mfh.getCapacity() + "L"); - ll.add("Running Cost: " + ll.add("Running Cost: " // mEUt does not naturally reflect efficiency status. Do that here. - + ((-super.mEUt) * 10000 / Math.max(1000, super.mEfficiency)) + "EU/t"); - ll.add("Maintenance Status: " + ((super.getRepairStatus() == super.getIdealStatus()) - ? EnumChatFormatting.GREEN + "Working perfectly" + EnumChatFormatting.RESET - : EnumChatFormatting.RED + "Has Problems" + EnumChatFormatting.RESET)); + + ((-super.mEUt) * 10000 / Math.max(1000, super.mEfficiency)) + "EU/t"); + ll.add("Maintenance Status: " + ((super.getRepairStatus() == super.getIdealStatus()) + ? EnumChatFormatting.GREEN + "Working perfectly" + EnumChatFormatting.RESET + : EnumChatFormatting.RED + "Has Problems" + EnumChatFormatting.RESET)); ll.add("---------------------------------------------"); - + final String[] a = new String[ll.size()]; return ll.toArray(a); } - + @Override public void saveNBTData(NBTTagCompound nbt) { nbt = (nbt == null) ? new NBTTagCompound() : nbt; - + nbt.setInteger("runningCost", runningCost); nbt.setBoolean("doVoidExcess", doVoidExcess); nbt.setInteger("capacityPerFluid", mfh.getCapacity()); nbt.setTag("fluids", mfh.saveNBTData(new NBTTagCompound())); - + super.saveNBTData(nbt); } - + @Override public void loadNBTData(NBTTagCompound nbt) { nbt = (nbt == null) ? new NBTTagCompound() : nbt; - + runningCost = nbt.getInteger("runningCost"); doVoidExcess = nbt.getBoolean("doVoidExcess"); - + mfh = new MultiFluidHandler(); mfh.loadNBTData(nbt); - for(TE_TFFTMultiHatch mh : multiHatches) { + for (TE_TFFTMultiHatch mh : multiHatches) { mh.setMultiFluidHandler(mfh); } super.loadNBTData(nbt); } - + @Override public boolean isGivingInformation() { return true; @@ -556,4 +542,4 @@ public class GTMTE_FluidMultiStorage extends GT_MetaTileEntity_MultiBlockBase { public boolean explodesOnComponentBreak(ItemStack var1) { return false; } -} +} \ No newline at end of file -- cgit