diff options
author | kekzdealer <31353359+kekzdealer@users.noreply.github.com> | 2020-04-23 01:22:12 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-23 01:22:12 +0200 |
commit | 35477125b256e6577156911ddf8bcc30a090edc7 (patch) | |
tree | 47c221334137c43d70fa0b6ef19adca7a7bd784f /src/main/java | |
parent | 7f927621de00e55ad6cedca256a6f54cfa12c2be (diff) | |
parent | 0b4f1772e67d4b6f9103450b434a65d6aeb163a0 (diff) | |
download | GT5-Unofficial-35477125b256e6577156911ddf8bcc30a090edc7.tar.gz GT5-Unofficial-35477125b256e6577156911ddf8bcc30a090edc7.tar.bz2 GT5-Unofficial-35477125b256e6577156911ddf8bcc30a090edc7.zip |
Merge pull request #14 from bartimaeusnek/MachineBlockFix
Fixed Multis not registering Update due to own Casing implementation.
Diffstat (limited to 'src/main/java')
17 files changed, 212 insertions, 203 deletions
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<TE_TFFTMultiHatch> 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<FluidStack> 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<FluidStack> 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<String> 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 |