aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/common')
-rw-r--r--src/main/java/gregtech/common/GT_RecipeAdder.java35
-rw-r--r--src/main/java/gregtech/common/blocks/GT_Block_Casings1.java29
-rw-r--r--src/main/java/gregtech/common/blocks/GT_Item_Casings1.java10
-rw-r--r--src/main/java/gregtech/common/blocks/GT_Item_Casings_Abstract.java2
-rw-r--r--src/main/java/gregtech/common/items/GT_FluidDisplayItem.java4
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ElectricBlastFurnace.java35
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java8
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PlasmaForge.java326
8 files changed, 386 insertions, 63 deletions
diff --git a/src/main/java/gregtech/common/GT_RecipeAdder.java b/src/main/java/gregtech/common/GT_RecipeAdder.java
index 7b9905669b..38acb4ac92 100644
--- a/src/main/java/gregtech/common/GT_RecipeAdder.java
+++ b/src/main/java/gregtech/common/GT_RecipeAdder.java
@@ -52,6 +52,26 @@ public class GT_RecipeAdder implements IGT_RecipeAdder {
}
@Override
+ public boolean addFusionReactorRecipe(FluidStack[] FluidInputArray, FluidStack[] FluidOutputArray, int aFusionDurationInTicks, int aFusionEnergyPerTick, int aEnergyNeededForStartingFusion) {
+ if (FluidInputArray.length == 0)
+ return false;
+
+ if (FluidOutputArray.length == 0)
+ return false;
+
+ // If the recipe has more than 2 inputs or 2 outputs it is added to a different recipe map.
+ // This is so NEI can function properly and understand the recipe. Otherwise it gets cut off.
+ if ((FluidInputArray.length > 2) || (FluidInputArray.length > 2)) {
+ GT_Recipe.GT_Recipe_Map.sComplexFusionRecipes.addRecipe(null, FluidInputArray, FluidOutputArray, aFusionDurationInTicks, aFusionEnergyPerTick, aEnergyNeededForStartingFusion);
+ return true;
+ }
+
+ GT_Recipe.GT_Recipe_Map.sFusionRecipes.addRecipe(null, FluidInputArray, FluidOutputArray, aFusionDurationInTicks, aFusionEnergyPerTick, aEnergyNeededForStartingFusion);
+ return true;
+ }
+
+
+ @Override
public boolean addCentrifugeRecipe(ItemStack aInput1, int aInput2, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, ItemStack aOutput5, ItemStack aOutput6, int aDuration) {
return addCentrifugeRecipe(aInput1, aInput2 < 0 ? ItemList.IC2_Fuel_Can_Empty.get(-aInput2, new Object[0]) : aInput2 > 0 ? ItemList.Cell_Empty.get(aInput2, new Object[0]) : null, null, null, aOutput1, aOutput2, aOutput3, aOutput4, aOutput5, aOutput6, null, aDuration, 5);
}
@@ -248,6 +268,13 @@ public class GT_RecipeAdder implements IGT_RecipeAdder {
}
@Override
+ public boolean addPlasmaForgeRecipe(ItemStack[] ItemInputArray, FluidStack[] FluidInputArray, ItemStack[] OutputItemArray, FluidStack[] FluidOutputArray, int aDuration, int aEUt, int coil_heat_level) {
+ GT_Recipe.GT_Recipe_Map.sPlasmaForgeRecipes.addRecipe(false, ItemInputArray, OutputItemArray, null, null,
+ FluidInputArray, FluidOutputArray, aDuration, aEUt, coil_heat_level);
+ return true;
+ }
+
+ @Override
public boolean addPrimitiveBlastRecipe(ItemStack aInput1, ItemStack aInput2, int aCoalAmount, ItemStack aOutput1, ItemStack aOutput2, int aDuration) {
if ((aInput1 == null && aInput2 == null) || (aOutput1 == null && aOutput2 == null)) {
return false;
@@ -1223,6 +1250,14 @@ public class GT_RecipeAdder implements IGT_RecipeAdder {
return true;
}
+
+ @Override
+ public boolean addLaserEngraverRecipe(ItemStack[] ItemInputArray, FluidStack[] FluidInputArray, ItemStack[] OutputItemArray, FluidStack[] FluidOutputArray, int aDuration, int aEUt, boolean aCleanroom) {
+ GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes.addRecipe(false, ItemInputArray, OutputItemArray, null, null,
+ FluidInputArray, FluidOutputArray, aDuration, aEUt, aCleanroom ? -200 : 0);
+ return true;
+ }
+
@Override
public boolean addFormingPressRecipe(ItemStack aItemToImprint, ItemStack aForm, ItemStack aImprintedItem, int aDuration, int aEUt) {
if ((aItemToImprint == null) || (aForm == null) || (aImprintedItem == null)) {
diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Casings1.java b/src/main/java/gregtech/common/blocks/GT_Block_Casings1.java
index 2f8e248117..edbdacdfbd 100644
--- a/src/main/java/gregtech/common/blocks/GT_Block_Casings1.java
+++ b/src/main/java/gregtech/common/blocks/GT_Block_Casings1.java
@@ -1,5 +1,6 @@
package gregtech.common.blocks;
+import gregtech.api.GregTech_API;
import gregtech.api.enums.ItemList;
import gregtech.api.enums.Textures;
import gregtech.api.render.TextureFactory;
@@ -8,8 +9,10 @@ import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
+import static gregtech.api.enums.GT_Values.RES_PATH_BLOCK;
+
public class GT_Block_Casings1 extends GT_Block_Casings_Abstract {
-
+
/**
* Texture Index Information
* Textures.BlockIcons.casingTexturePages[0][0-63] - Gregtech
@@ -21,10 +24,10 @@ public class GT_Block_Casings1 extends GT_Block_Casings_Abstract {
* Textures.BlockIcons.casingTexturePages[5][0-127] - Free
* Textures.BlockIcons.casingTexturePages[6][0-127] - Free
* Textures.BlockIcons.casingTexturePages[7][0-127] - Free
- * Textures.BlockIcons.casingTexturePages[8][0-127] - TecTech
+ * Textures.BlockIcons.casingTexturePages[8][0-127] - TecTech
*/
-
-
+
+
public GT_Block_Casings1() {
super(GT_Item_Casings1.class, "gt.blockcasings", GT_Material_Casings.INSTANCE);
for (int i = 0; i < 16; i++) {
@@ -43,9 +46,9 @@ public class GT_Block_Casings1 extends GT_Block_Casings_Abstract {
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".9.name", "UHV Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".10.name", "Bronze Plated Bricks");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".11.name", "Heat Proof Machine Casing");
- GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".12.name", "Cupronickel Coil Block (Deprecated)");
- GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".13.name", "Kanthal Coil Block (Deprecated)");
- GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".14.name", "Nichrome Coil Block (Deprecated)");
+ GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".12.name", "Dimensionally Transcendent Casing");
+ GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".13.name", "Dimensional Injection Casing");
+ GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".14.name", "Dimensional Bridge");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".15.name", "Superconducting Coil Block");
ItemList.Casing_ULV.set(new ItemStack(this, 1, 0));
ItemList.Casing_LV.set(new ItemStack(this, 1, 1));
@@ -59,9 +62,9 @@ public class GT_Block_Casings1 extends GT_Block_Casings_Abstract {
ItemList.Casing_MAX.set(new ItemStack(this, 1, 9));
ItemList.Casing_BronzePlatedBricks.set(new ItemStack(this, 1, 10));
ItemList.Casing_HeatProof.set(new ItemStack(this, 1, 11));
- ItemList.Casing_Coil_Cupronickel_Deprecated.set(new ItemStack(this, 1, 12));
- ItemList.Casing_Coil_Kanthal_Deprecated.set(new ItemStack(this, 1, 13));
- ItemList.Casing_Coil_Nichrome_Deprecated.set(new ItemStack(this, 1, 14));
+ ItemList.Casing_Dim_Trans.set(new ItemStack(this, 1, 12));
+ ItemList.Casing_Dim_Injector.set(new ItemStack(this, 1, 13));
+ ItemList.Casing_Dim_Bridge.set(new ItemStack(this, 1, 14));
ItemList.Casing_Coil_Superconductor.set(new ItemStack(this, 1, 15));
}
@@ -74,11 +77,11 @@ public class GT_Block_Casings1 extends GT_Block_Casings_Abstract {
case 11:
return Textures.BlockIcons.MACHINE_HEATPROOFCASING.getIcon();
case 12:
- return Textures.BlockIcons.RENDERING_ERROR.getIcon();
+ return Textures.BlockIcons.MACHINE_DIM_TRANS_CASING.getIcon();
case 13:
- return Textures.BlockIcons.RENDERING_ERROR.getIcon();
+ return Textures.BlockIcons.MACHINE_DIM_INJECTOR.getIcon();
case 14:
- return Textures.BlockIcons.RENDERING_ERROR.getIcon();
+ return Textures.BlockIcons.MACHINE_DIM_BRIDGE.getIcon();
case 15:
return Textures.BlockIcons.MACHINE_COIL_SUPERCONDUCTOR.getIcon();
}
diff --git a/src/main/java/gregtech/common/blocks/GT_Item_Casings1.java b/src/main/java/gregtech/common/blocks/GT_Item_Casings1.java
index bcb50b2176..98b0c24c61 100644
--- a/src/main/java/gregtech/common/blocks/GT_Item_Casings1.java
+++ b/src/main/java/gregtech/common/blocks/GT_Item_Casings1.java
@@ -13,14 +13,4 @@ public class GT_Item_Casings1 extends GT_Item_Casings_Abstract {
public GT_Item_Casings1(Block par1) {
super(par1);
}
- @Override
- @SideOnly(Side.CLIENT)
- public void addInformation(ItemStack aStack, EntityPlayer aPlayer, List aList, boolean aF3_H) {
- super.addInformation(aStack, aPlayer, aList, aF3_H);
- int tMeta = getDamage(aStack);
- if (tMeta >= 12 && tMeta <= 14) {
- aList.add(EnumChatFormatting.ITALIC + this.mCoilOverheated1Tooltip);
- aList.add(EnumChatFormatting.ITALIC + this.mCoilOverheated2Tooltip);
- }
- }
}
diff --git a/src/main/java/gregtech/common/blocks/GT_Item_Casings_Abstract.java b/src/main/java/gregtech/common/blocks/GT_Item_Casings_Abstract.java
index 0468da20d8..6a4b6e0695 100644
--- a/src/main/java/gregtech/common/blocks/GT_Item_Casings_Abstract.java
+++ b/src/main/java/gregtech/common/blocks/GT_Item_Casings_Abstract.java
@@ -21,8 +21,6 @@ public abstract class GT_Item_Casings_Abstract extends ItemBlock {
protected final String mCoil07Tooltip = GT_LanguageManager.addStringLocalization("gt.coil07tooltip", "Base Heating Capacity = 9001 Kelvin");
protected final String mCoil08Tooltip = GT_LanguageManager.addStringLocalization("gt.coil08tooltip", "Base Heating Capacity = 9900 Kelvin");
protected final String mCoil09Tooltip = GT_LanguageManager.addStringLocalization("gt.coil09tooltip", "Base Heating Capacity = 10800 Kelvin");
- protected final String mCoilOverheated1Tooltip = GT_LanguageManager.addStringLocalization("gt.coil.overheated1.tooltip", "These coils are deprecated");
- protected final String mCoilOverheated2Tooltip = GT_LanguageManager.addStringLocalization("gt.coil.overheated2.tooltip", "Place in crafting grid to get regular coils");
protected final String mBlastProofTooltip = GT_LanguageManager.addStringLocalization("gt.blastprooftooltip", "This Block is Blast Proof");
public GT_Item_Casings_Abstract(Block par1) {
diff --git a/src/main/java/gregtech/common/items/GT_FluidDisplayItem.java b/src/main/java/gregtech/common/items/GT_FluidDisplayItem.java
index 92224646d8..55e10bd62e 100644
--- a/src/main/java/gregtech/common/items/GT_FluidDisplayItem.java
+++ b/src/main/java/gregtech/common/items/GT_FluidDisplayItem.java
@@ -52,9 +52,9 @@ public class GT_FluidDisplayItem extends GT_Generic_Item {
if (aNBT != null) {
long tToolTipAmount = aNBT.getLong("mFluidDisplayAmount");
if (tToolTipAmount > 0L) {
- aList.add(EnumChatFormatting.BLUE + String.format(transItem("016", "Amount: %s L"), "" + tToolTipAmount) + EnumChatFormatting.GRAY);
+ aList.add(EnumChatFormatting.BLUE + "Amount: " + GT_Utility.formatNumbers(tToolTipAmount) + " L" + EnumChatFormatting.GRAY);
}
- aList.add(EnumChatFormatting.RED + String.format(transItem("017", "Temperature: %s K"), "" + aNBT.getLong("mFluidDisplayHeat")) + EnumChatFormatting.GRAY);
+ aList.add(EnumChatFormatting.RED + "Temperature: " + GT_Utility.formatNumbers(aNBT.getLong("mFluidDisplayHeat")) + " K" + EnumChatFormatting.GRAY);
aList.add(EnumChatFormatting.GREEN + String.format(transItem("018", "State: %s"), aNBT.getBoolean("mFluidState") ? "Gas" : "Liquid") + EnumChatFormatting.GRAY);
}
}
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ElectricBlastFurnace.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ElectricBlastFurnace.java
index 4c5ae32b79..f39174435c 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ElectricBlastFurnace.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ElectricBlastFurnace.java
@@ -288,8 +288,6 @@ public class GT_MetaTileEntity_ElectricBlastFurnace extends GT_MetaTileEntity_Ab
public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) {
this.mHeatingCapacity = 0;
- replaceDeprecatedCoils(aBaseMetaTileEntity);
-
setCoilLevel(HeatingCoilLevel.None);
mPollutionOutputHatches.clear();
@@ -307,39 +305,6 @@ public class GT_MetaTileEntity_ElectricBlastFurnace extends GT_MetaTileEntity_Ab
return true;
}
- private void replaceDeprecatedCoils(IGregTechTileEntity aBaseMetaTileEntity) {
- int xDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetX;
- int zDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetZ;
- int tX = aBaseMetaTileEntity.getXCoord() + xDir;
- int tY = aBaseMetaTileEntity.getYCoord();
- int tZ = aBaseMetaTileEntity.getZCoord() + zDir;
- int tUsedMeta;
- for (int xPos = tX - 1; xPos <= tX + 1; xPos++) {
- for (int zPos = tZ - 1; zPos <= tZ + 1; zPos++) {
- if ((xPos == tX) && (zPos == tZ))
- continue;
- for (int yPos = tY + 1; yPos <= tY + 2; yPos++) {
- tUsedMeta = aBaseMetaTileEntity.getMetaID(xPos, yPos, zPos);
- if (tUsedMeta < 12)
- continue;
- if (tUsedMeta > 14)
- continue;
- if (aBaseMetaTileEntity.getBlock(xPos, yPos, zPos) != GregTech_API.sBlockCasings1)
- continue;
-
- aBaseMetaTileEntity.getWorld().setBlock(
- xPos,
- yPos,
- zPos,
- GregTech_API.sBlockCasings5,
- tUsedMeta - 12,
- 3
- );
- }
- }
- }
- }
-
@Override
public boolean addOutput(FluidStack aLiquid) {
if (aLiquid == null)
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java
index 02748d08c6..92c2db3472 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java
@@ -278,7 +278,13 @@ public abstract class GT_MetaTileEntity_FusionComputer extends GT_MetaTileEntity
}
if (tFluidList.size() > 1) {
FluidStack[] tFluids = tFluidList.toArray(new FluidStack[tFluidList.size()]);
- GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sFusionRecipes.findRecipe(this.getBaseMetaTileEntity(), this.mLastRecipe, false, GT_Values.V[8], tFluids);
+ GT_Recipe tRecipe;
+
+ if (tFluids.length <= 2)
+ tRecipe = GT_Recipe.GT_Recipe_Map.sFusionRecipes.findRecipe(this.getBaseMetaTileEntity(), this.mLastRecipe, false, GT_Values.V[8], tFluids);
+ else
+ tRecipe = GT_Recipe.GT_Recipe_Map.sComplexFusionRecipes.findRecipe(this.getBaseMetaTileEntity(), this.mLastRecipe, false, GT_Values.V[8], tFluids);
+
if ((tRecipe == null && !mRunningOnLoad) || (maxEUStore() < tRecipe.mSpecialValue)) {
turnCasingActive(false);
this.mLastRecipe = null;
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PlasmaForge.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PlasmaForge.java
new file mode 100644
index 0000000000..34c38537a9
--- /dev/null
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PlasmaForge.java
@@ -0,0 +1,326 @@
+package gregtech.common.tileentities.machines.multi;
+
+import com.gtnewhorizon.structurelib.alignment.constructable.IConstructable;
+import com.gtnewhorizon.structurelib.structure.IStructureDefinition;
+import com.gtnewhorizon.structurelib.structure.StructureDefinition;
+import gregtech.api.GregTech_API;
+import gregtech.api.enums.HeatingCoilLevel;
+import gregtech.api.gui.GT_GUIContainer_MultiMachine;
+import gregtech.api.interfaces.ITexture;
+import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy;
+import gregtech.api.objects.GT_ChunkManager;
+import gregtech.api.render.TextureFactory;
+import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
+import gregtech.api.util.GT_Recipe;
+import gregtech.api.util.GT_Utility;
+import net.minecraft.entity.player.InventoryPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.util.StatCollector;
+import net.minecraft.world.ChunkCoordIntPair;
+import net.minecraftforge.fluids.FluidStack;
+
+
+import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlock;
+import static gregtech.api.enums.GT_Values.V;
+import static gregtech.api.enums.GT_Values.VN;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ACTIVE;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ACTIVE_GLOW;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_GLOW;
+import static gregtech.api.enums.Textures.BlockIcons.casingTexturePages;
+import static gregtech.api.util.GT_StructureUtility.ofCoil;
+import static gregtech.api.util.GT_StructureUtility.ofHatchAdderOptional;
+
+
+
+public class GT_MetaTileEntity_PlasmaForge extends GT_MetaTileEntity_AbstractMultiFurnace<GT_MetaTileEntity_PlasmaForge> implements IConstructable {
+ private int mHeatingCapacity = 0;
+
+ protected static final int NULL_CASING = 12;
+ protected static final int USEFUL_CASING = 13;
+ protected static final int DIM_CASING = 14;
+
+ private boolean isMultiChunkloaded = true;
+
+ protected static final String STRUCTURE_PIECE_MAIN = "main";
+ private static final IStructureDefinition<GT_MetaTileEntity_PlasmaForge> STRUCTURE_DEFINITION = StructureDefinition.<GT_MetaTileEntity_PlasmaForge>builder()
+ .addShape(STRUCTURE_PIECE_MAIN, new String[][] {
+ {" ", " N N N N ", " N N N N ", " N N N N ", " ", " ", " ", " N N N N ", " N N N N ", " NNN NNN N N NNN NNN ", " ", " ", " ", " NNN NNN NNN NNN ", " ", " ", " ", " ", " ", " NNN NNN NNN NNN ", " ", " ", " ", " NNN NNN NNN NNN "},
+ {" N N N N ", " bCCCb bCCCb ", " bCCCb bCCCb ", " bCCCb bCCCb ", " N N N N ", " ", " N N N N ", " bCCCb bCCCb ", " bCCCb bCCCb ", "NbbbN NbbNCCCb bCCCNbbN NbbbN", " CCC CCC N N CCC CCC ", " CCC CCC CCC CCC ", " CCC CCC CCC CCC ", "NbbbN NbbbN NbbbN NbbbN", " N N N N ", " N N N N ", " ", " N N N N ", " N N N N ", "NbbbN NbbbN NbbbN NbbbN", " CCC CCC CCC CCC ", " CCC CCC CCC CCC ", " CCC CCC CCC CCC ", "NbbbN NbbbN N N NbbbN NbbbN",},
+ {" N N N N ", " bCCCb bCCCb ", " NNNbbbbbNNsNNbbbbbNNN ", " ss bCCCb bCCCb ss ", " s N N N N s ", " s s ", " N N N N N N ", " N bCCCb bCCCb N ", " N sbbbbbNNsNNbbbbbs N ", "NbbbN NbbNCCCb bCCCNbbN NbbbN", " CbC CbC N N CbC CbC ", " CbC CbC CbC CbC ", " CbC CbC CbC CbC ", "NbbbN NbbbN NbbbN NbbbN", " NNN NNN NNN NNN ", " NNN NNN NNN NNN ", " s s s s ", " NNN NNN NNN NNN ", " NNN NNN NNN NNN ", "NbbbN NbbbN NbbbN NbbbN", " CbC CbC CbC CbC ", " CbC CbC CbC CbC ", " CbC CbC CbC CbC ", "NbbbN NbbbNNNNNsNsNNNNNbbbN NbbbN",},
+ {" N N N N ", " bCCCb bCCCb ", " ss bCCCb bCCCb ss ", " bCCCb bCCCb ", " s NCCCN NCCCN s ", " s NCCCN NCCCN s ", " NCCCN NCCCN ", " bCCCb bCCCb ", " bCCCb bCCCb ", "NbbbNNNbbNCCCb bCCCNbbNNNbbbN", " CCCCCCCCC N N CCCCCCCCC ", " CCCCCCCCC CCCCCCCCC ", " CCCCCCCCC CCCCCCCCC ", "NbbbNNNbbbN NbbbNNNbbbN", " N N N N ", " N N N N ", " ", " N N N N ", " N N N N ", "NbbbNNNbbbN NbbbNNNbbbN", " CCCCCCCCC CCCCCCCCC ", " CCCCCCCCC CCCCCCCCC ", " CCCCCCCCC CCCCCCCCC ", "NbbbNNNbbbN NbN NbbbNNNbbbN",},
+ {" ", " N N N N ", " s N N N N s ", " s NCCCN NCCCN s ", " ", " ", " ", " NCCCN NCCCN ", " N N N N ", " NNN NN N N NN NNN ", " C C C C ", " C C C C ", " C C C C ", " NNN NNN NNN NNN ", " ", " ", " ", " ", " ", " NNN NNN NNN NNN ", " C C C C ", " C C C C ", " C C C C ", " NNN NNN NbN NNN NNN ",},
+ {" ", " ", " s s ", " s NCCCN NCCCN s ", " ", " ", " ", " NCCCN NCCCN ", " ", " N N N N ", " C C C C ", " C C C C ", " C C C C ", " N N N N ", " ", " ", " ", " ", " ", " N N N N ", " C C C C ", " C C C C ", " C C C C ", " N N NbN N N ",},
+ {" ", " N N N N ", " N N N N N N ", " NCCCN NCCCN ", " ", " ", " ", " NCCCN NCCCN ", " N N N N ", " NNN NN N N NN NNN ", " C C C C ", " C C C C ", " C C C C ", " NNN NNN NNN NNN ", " ", " ", " ", " ", " ", " NNN NNN NNN NNN ", " C C C C ", " C C C C ", " C C C C ", " NNN NNN NbN NNN NNN ",},
+ {" N N N N ", " bCCCb bCCCb ", " N bCCCb bCCCb N ", " bCCCb bCCCb ", " NCCCN NCCCN ", " NCCCN NCCCN ", " NCCCN NCCCN ", " bCCCb bCCCb ", " bCCCb bCCCb ", "NbbbNNNbbNCCCb bCCCNbbNNNbbbN", " CCCCCCCCC N N CCCCCCCCC ", " CCCCCCCCC CCCCCCCCC ", " CCCCCCCCC CCCCCCCCC ", "NbbbNNNbbbN NbbbNNNbbbN", " N N N N ", " N N N N ", " ", " N N N N ", " N N N N ", "NbbbNNNbbbN NbbbNNNbbbN", " CCCCCCCCC CCCCCCCCC ", " CCCCCCCCC CCCCCCCCC ", " CCCCCCCCC CCCCCCCCC ", "NbbbNNNbbbN NbN NbbbNNNbbbN",},
+ {" N N N N ", " bCCCb bCCCb ", " N sbbbbbNNsNNbbbbbs N ", " bCCCb bCCCb ", " N N N N ", " ", " N N N N ", " bCCCb bCCCb ", " s sbbbbbNNsNNbbbbbs s ", "NbbbN NbbNCCCb bCCCNbbN NbbbN", " CbC CbC N N CbC CbC ", " CbC CbC CbC CbC ", " CbC CbC CbC CbC ", "NbbbN NbbbN NbbbN NbbbN", " NNN NNN NNN NNN ", " NNN NNN NNN NNN ", " s s s s ", " NNN NNN NNN NNN ", " NNN NNN NNN NNN ", "NbbbN NbbbN NbbbN NbbbN", " CbC CbC CbC CbC ", " CbC CbC CbC CbC ", " CbC CbC CbC CbC ", "NbbbN NbbbNNNNNsNsNNNNNbbbN NbbbN",},
+ {" NNN NNN N N NNN NNN ", "NbbbN NbbNCCCb bCCCNbbN NbbbN", "NbbbN NbbNCCCb bCCCNbbN NbbbN", "NbbbNNNbbNCCCb bCCCNbbNNNbbbN", " NNN NNN N N NNN NNN ", " N N N N ", " NNN NNN N N NNN NNN ", "NbbbNNNbbNCCCb bCCCNbbNNNbbbN", "NbbbN NbbNCCCb bCCCNbbN NbbbN", "NNNN NNNCCCb bCCCNNN NNNN", " CCC CCC N N CCC CCC ", " CCC CCC CCC CCC ", " CCC CCC CCC CCC ", "NbbbN NbbbN NbbbN NbbbN", " N N N N ", " N N N N ", " ", " N N N N ", " N N N N ", "NbbbN NbbbN NbbbN NbbbN", " CCC CCC CCC CCC ", " CCC CCC CCC CCC ", " CCC CCC CCC CCC ", "NbbbN NbbbN NbN NbbbN NbbbN",},
+ {" ", " CCC CCC N N CCC CCC ", " CbC CbC N N CbC CbC ", " CCCCCCCCC N N CCCCCCCCC ", " C C C C ", " C C C C ", " C C C C ", " CCCCCCCCC N N CCCCCCCCC ", " CbC CbC N N CbC CbC ", " CCC CCC N N CCC CCC ", " ", " ", " ", " NNN NNN NNN NNN ", " ", " ", " ", " ", " ", " NNN NNN NNN NNN ", " ", " ", " ", " NNN NNN NbN NNN NNN ",},
+ {" ", " CCC CCC CCC CCC ", " CbC CbC CbC CbC ", " CCCCCCCCC CCCCCCCCC ", " C C C C ", " C C C C ", " C C C C ", " CCCCCCCCC CCCCCCCCC ", " CbC CbC CbC CbC ", " CCC CCC CCC CCC ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " N N NbN N N ",},
+ {" ", " CCC CCC CCC CCC ", " CbC CbC CbC CbC ", " CCCCCCCCC CCCCCCCCC ", " C C C C ", " C C C C ", " C C C C ", " CCCCCCCCC CCCCCCCCC ", " CbC CbC CbC CbC ", " CCC CCC CCC CCC ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " N N NbN N N ",},
+ {" NNN NNN NNN NNN ", "NbbbN NbbbN NbbbN NbbbN", "NbbbN NbbbN NbbbN NbbbN", "NbbbNNNbbbN NbbbNNNbbbN", " NNN NNN NNN NNN ", " N N N N ", " NNN NNN NNN NNN ", "NbbbNNNbbbN NbbbNNNbbbN", "NbbbN NbbbN NbbbN NbbbN", "NbbbN NbbbN NbbbN NbbbN", " NNN NNN NNN NNN ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " N N NsNsN N N ",},
+ {" ", " ", " N N N N ", " ", " ", " ", " ", " ", " N N N N ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " N N NbbbbbN N N ",},
+ {" ", " ", " N N N N ", " ", " ", " ", " ", " ", " N N N N ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " N ", " NsNNNNNsNNNNsbbbbbsNNNNsNNNNNsN ",},
+ {" ", " ", " s s s s ", " ", " ", " ", " ", " ", " s s s s ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ~ ", " NNN ", " NbbbbbNbbbbNbbbbbNbbbbNbbbbbN ",},
+ {" ", " ", " N N N N ", " ", " ", " ", " ", " ", " N N N N ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " N ", " NsNNNNNsNNNNsbbbbbsNNNNsNNNNNsN ",},
+ {" ", " ", " N N N N ", " ", " ", " ", " ", " ", " N N N N ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " N N NbbbbbN N N ",},
+ {" NNN NNN NNN NNN ", "NbbbN NbbbN NbbbN NbbbN", "NbbbN NbbbN NbbbN NbbbN", "NbbbNNNbbbN NbbbNNNbbbN", " NNN NNN NNN NNN ", " N N N N ", " NNN NNN NNN NNN ", "NbbbNNNbbbN NbbbNNNbbbN", "NbbbN NbbbN NbbbN NbbbN", "NbbbN NbbbN NbbbN NbbbN", " NNN NNN NNN NNN ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " N N NsNsN N N ",},
+ {" ", " CCC CCC CCC CCC ", " CbC CbC CbC CbC ", " CCCCCCCCC CCCCCCCCC ", " C C C C ", " C C C C ", " C C C C ", " CCCCCCCCC CCCCCCCCC ", " CbC CbC CbC CbC ", " CCC CCC CCC CCC ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " N N NbN N N ",},
+ {" ", " CCC CCC CCC CCC ", " CbC CbC CbC CbC ", " CCCCCCCCC CCCCCCCCC ", " C C C C ", " C C C C ", " C C C C ", " CCCCCCCCC CCCCCCCCC ", " CbC CbC CbC CbC ", " CCC CCC CCC CCC ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " N N NbN N N ",},
+ {" ", " CCC CCC N N CCC CCC ", " CbC CbC N N CbC CbC ", " CCCCCCCCC N N CCCCCCCCC ", " C C C C ", " C C C C ", " C C C C ", " CCCCCCCCC N N CCCCCCCCC ", " CbC CbC N N CbC CbC ", " CCC CCC N N CCC CCC ", " ", " ", " ", " NNN NNN NNN NNN ", " ", " ", " ", " ", " ", " NNN NNN NNN NNN ", " ", " ", " ", " NNN NNN NbN NNN NNN ",},
+ {" NNN NNN N N NNN NNN ", "NbbbN NbbNCCCb bCCCNbbN NbbbN", "NbbbN NbbNCCCb bCCCNbbN NbbbN", "NbbbNNNbbNCCCb bCCCNbbNNNbbbN", " NNN NNN N N NNN NNN ", " N N N N ", " NNN NNN N N NNN NNN ", "NbbbNNNbbNCCCb bCCCNbbNNNbbbN", "NbbbN NbbNCCCb bCCCNbbN NbbbN", "NNNN NNNCCCb bCCCNNN NNNN", " CCC CCC N N CCC CCC ", " CCC CCC CCC CCC ", " CCC CCC CCC CCC ", "NbbbN NbbbN NbbbN NbbbN", " N N N N ", " N N N N ", " ", " N N N N ", " N N N N ", "NbbbN NbbbN NbbbN NbbbN", " CCC CCC CCC CCC ", " CCC CCC CCC CCC ", " CCC CCC CCC CCC ", "NbbbN NbbbN NbN NbbbN NbbbN",},
+ {" N N N N ", " bCCCb bCCCb ", " N sbbbbbNNsNNbbbbbs N ", " bCCCb bCCCb ", " N N N N ", " ", " N N N N ", " bCCCb bCCCb ", " s sbbbbbNNsNNbbbbbs s ", "NbbbN NbbNCCCb bCCCNbbN NbbbN", " CbC CbC N N CbC CbC ", " CbC CbC CbC CbC ", " CbC CbC CbC CbC ", "NbbbN NbbbN NbbbN NbbbN", " NNN NNN NNN NNN ", " NNN NNN NNN NNN ", " s s s s ", " NNN NNN NNN NNN ", " NNN NNN NNN NNN ", "NbbbN NbbbN NbbbN NbbbN", " CbC CbC CbC CbC ", " CbC CbC CbC CbC ", " CbC CbC CbC CbC ", "NbbbN NbbbNNNNNsNsNNNNNbbbN NbbbN",},
+ {" N N N N ", " bCCCb bCCCb ", " N bCCCb bCCCb N ", " bCCCb bCCCb ", " NCCCN NCCCN ", " NCCCN NCCCN ", " NCCCN NCCCN ", " bCCCb bCCCb ", " bCCCb bCCCb ", "NbbbNNNbbNCCCb bCCCNbbNNNbbbN", " CCCCCCCCC N N CCCCCCCCC ", " CCCCCCCCC CCCCCCCCC ", " CCCCCCCCC CCCCCCCCC ", "NbbbNNNbbbN NbbbNNNbbbN", " N N N N ", " N N N N ", " ", " N N N N ", " N N N N ", "NbbbNNNbbbN NbbbNNNbbbN", " CCCCCCCCC CCCCCCCCC ", " CCCCCCCCC CCCCCCCCC ", " CCCCCCCCC CCCCCCCCC ", "NbbbNNNbbbN NbN NbbbNNNbbbN",},
+ {" ", " N N N N ", " N N N N N N ", " NCCCN NCCCN ", " ", " ", " ", " NCCCN NCCCN ", " N N N N ", " NNN NN N N NN NNN ", " C C C C ", " C C C C ", " C C C C ", " NNN NNN NNN NNN ", " ", " ", " ", " ", " ", " NNN NNN NNN NNN ", " C C C C ", " C C C C ", " C C C C ", " NNN NNN NbN NNN NNN ",},
+ {" ", " ", " s s ", " s NCCCN NCCCN s ", " ", " ", " ", " NCCCN NCCCN ", " ", " N N N N ", " C C C C ", " C C C C ", " C C C C ", " N N N N ", " ", " ", " ", " ", " ", " N N N N ", " C C C C ", " C C C C ", " C C C C ", " N N NbN N N ",},
+ {" ", " N N N N ", " s N N N N s ", " s NCCCN NCCCN s ", " ", " ", " ", " NCCCN NCCCN ", " N N N N ", " NNN NN N N NN NNN ", " C C C C ", " C C C C ", " C C C C ", " NNN NNN NNN NNN ", " ", " ", " ", " ", " ", " NNN NNN NNN NNN ", " C C C C ", " C C C C ", " C C C C ", " NNN NNN NbN NNN NNN ",},
+ {" N N N N ", " bCCCb bCCCb ", " ss bCCCb bCCCb ss ", " bCCCb bCCCb ", " s NCCCN NCCCN s ", " s NCCCN NCCCN s ", " NCCCN NCCCN ", " bCCCb bCCCb ", " bCCCb bCCCb ", "NbbbNNNbbNCCCb bCCCNbbNNNbbbN", " CCCCCCCCC N N CCCCCCCCC ", " CCCCCCCCC CCCCCCCCC ", " CCCCCCCCC CCCCCCCCC ", "NbbbNNNbbbN NbbbNNNbbbN", " N N N N ", " N N N N ", " ", " N N N N ", " N N N N ", "NbbbNNNbbbN NbbbNNNbbbN", " CCCCCCCCC CCCCCCCCC ", " CCCCCCCCC CCCCCCCCC ", " CCCCCCCCC CCCCCCCCC ", "NbbbNNNbbbN NbN NbbbNNNbbbN",},
+ {" N N N N ", " bCCCb bCCCb ", " NNNbbbbbNNsNNbbbbbNNN ", " ss bCCCb bCCCb ss ", " s N N N N s ", " s s ", " N N N N N N ", " N bCCCb bCCCb N ", " N sbbbbbNNsNNbbbbbs N ", "NbbbN NbbNCCCb bCCCNbbN NbbbN", " CbC CbC N N CbC CbC ", " CbC CbC CbC CbC ", " CbC CbC CbC CbC ", "NbbbN NbbbN NbbbN NbbbN", " NNN NNN NNN NNN ", " NNN NNN NNN NNN ", " s s s s ", " NNN NNN NNN NNN ", " NNN NNN NNN NNN ", "NbbbN NbbbN NbbbN NbbbN", " CbC CbC CbC CbC ", " CbC CbC CbC CbC ", " CbC CbC CbC CbC ", "NbbbN NbbbNNNNNsNsNNNNNbbbN NbbbN",},
+ {" N N N N ", " bCCCb bCCCb ", " bCCCb bCCCb ", " bCCCb bCCCb ", " N N N N ", " ", " N N N N ", " bCCCb bCCCb ", " bCCCb bCCCb ", "NbbbN NbbNCCCb bCCCNbbN NbbbN", " CCC CCC N N CCC CCC ", " CCC CCC CCC CCC ", " CCC CCC CCC CCC ", "NbbbN NbbbN NbbbN NbbbN", " N N N N ", " N N N N ", " ", " N N N N ", " N N N N ", "NbbbN NbbbN NbbbN NbbbN", " CCC CCC CCC CCC ", " CCC CCC CCC CCC ", " CCC CCC CCC CCC ", "NbbbN NbbbN N N NbbbN NbbbN",},
+ {" ", " N N N N ", " N N N N ", " N N N N ", " ", " ", " ", " N N N N ", " N N N N ", " NNN NNN N N NNN NNN ", " ", " ", " ", " NNN NNN NNN NNN ", " ", " ", " ", " ", " ", " NNN NNN NNN NNN ", " ", " ", " ", " NNN NNN NNN NNN ",}
+ })
+ .addElement('C', ofCoil(GT_MetaTileEntity_PlasmaForge::setCoilLevel, GT_MetaTileEntity_PlasmaForge::getCoilLevel))
+ .addElement('b', ofHatchAdderOptional(GT_MetaTileEntity_PlasmaForge::addBottomHatch, USEFUL_CASING, 3, GregTech_API.sBlockCasings1, USEFUL_CASING))
+ .addElement('N', ofBlock(GregTech_API.sBlockCasings1, NULL_CASING))
+ .addElement('s', ofBlock(GregTech_API.sBlockCasings1, DIM_CASING))
+ .build();
+
+ public GT_MetaTileEntity_PlasmaForge(int aID, String aName, String aNameRegional) {
+ super(aID, aName, aNameRegional);
+ }
+
+ public GT_MetaTileEntity_PlasmaForge(String aName) {
+ super(aName);
+ }
+
+ @Override
+ public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
+ return new GT_MetaTileEntity_PlasmaForge(this.mName);
+ }
+
+ @Override
+ protected GT_Multiblock_Tooltip_Builder createTooltip() {
+ GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder();
+ tt.addMachineType("Blast Furnace")
+ .addInfo("Controller block for the Dimensionally Transcendent Plasma Forge")
+ .addInfo("Author: Colen")
+ .addSeparator()
+ .beginStructureBlock(33, 24, 33, false)
+ .addStructureInfo("Structure is too complex! See schematic for details.")
+ .addStructureInfo("2112 Heating coils required.")
+ .addStructureInfo("120 Dimensional bridge blocks required.")
+ .addStructureInfo("1270 Dimensional injection casing required.")
+ .addStructureInfo("2121 Dimensionally transcendent casing required.")
+ .addStructureInfo("--------------------------------------------")
+ .addStructureInfo("If you are having difficulty with the blueprint")
+ .addStructureInfo("you can rotate the controller. This multi is symmetrical.")
+ .toolTipFinisher("Gregtech");
+ return tt;
+ }
+
+ @Override
+ public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) {
+ if (aSide == aFacing) {
+ if (aActive)
+ return new ITexture[]{
+ casingTexturePages[0][DIM_CASING],
+ TextureFactory.builder().addIcon(OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ACTIVE).extFacing().build(),
+ TextureFactory.builder().addIcon(OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ACTIVE_GLOW).extFacing().glow().build()};
+ return new ITexture[]{
+ casingTexturePages[0][DIM_CASING],
+ TextureFactory.builder().addIcon(OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE).extFacing().build(),
+ TextureFactory.builder().addIcon(OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_GLOW).extFacing().glow().build()};
+ }
+ return new ITexture[]{casingTexturePages[0][DIM_CASING]};
+ }
+
+ @Override
+ public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
+ return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "PlasmaForge.png");
+ }
+
+ @Override
+ public int getPollutionPerSecond(ItemStack aStack){
+ return 0;
+ }
+
+ @Override
+ public GT_Recipe.GT_Recipe_Map getRecipeMap() {
+ return GT_Recipe.GT_Recipe_Map.sPlasmaForgeRecipes;
+ }
+
+ @Override
+ public boolean isCorrectMachinePart(ItemStack aStack) {
+ return true;
+ }
+
+ @Override
+ public IStructureDefinition<GT_MetaTileEntity_PlasmaForge> getStructureDefinition() {
+ return STRUCTURE_DEFINITION;
+ }
+
+ @Override
+ public boolean checkRecipe(ItemStack aStack) {
+ return processRecipe(getCompactedInputs(), getCompactedFluids());
+ }
+
+ protected boolean processRecipe(ItemStack[] tItems, FluidStack[] tFluids) {
+
+ // Get information about multi configuration.
+ long tVoltage = getMaxInputVoltage();
+ byte tTier = (byte) Math.max(1, GT_Utility.getTier(tVoltage));
+
+ // Look up recipe.
+ GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sPlasmaForgeRecipes.findRecipe(
+ getBaseMetaTileEntity(),
+ false,
+ V[tTier],
+ tFluids,
+ tItems
+ );
+
+ // Sanity checks.
+ if (tRecipe == null)
+ return false;
+
+ if (!tRecipe.isRecipeInputEqual(true, tFluids, tItems)) {
+ return false;
+ }
+
+ // Vital recipe info.
+ mEUt = -tRecipe.mEUt;
+ mMaxProgresstime = tRecipe.mDuration;
+
+ // Outputs.
+ mOutputItems = tRecipe.mOutputs.clone();
+ mOutputFluids = tRecipe.mFluidOutputs.clone();
+ updateSlots();
+
+ return true;
+ }
+
+ @Override
+ public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) {
+ this.mHeatingCapacity = 0;
+
+ setCoilLevel(HeatingCoilLevel.None);
+
+ if (!checkPiece(STRUCTURE_PIECE_MAIN, 16, 21, 16))
+ return false;
+
+ if (getCoilLevel() == HeatingCoilLevel.None)
+ return false;
+
+ // Hatch limits.
+ if (mInputBusses.size() > 3)
+ return false;
+
+ if (mOutputBusses.size() > 3)
+ return false;
+
+ if (mInputHatches.size() > 3)
+ return false;
+
+ if (mOutputHatches.size() > 3)
+ return false;
+
+ if (!((mEnergyHatches.size() == 1) || (mEnergyHatches.size() == 2)))
+ return false;
+
+ if (mMaintenanceHatches.size() != 1)
+ return false;
+
+ // Heat capacity of coils used on multi.
+ this.mHeatingCapacity = (int) getCoilLevel().getHeat() + 100 * (GT_Utility.getTier(getMaxInputVoltage()) - 2);
+ return true;
+ }
+
+ @Override
+ public boolean addOutput(FluidStack aLiquid) {
+ if (aLiquid == null)
+ return false;
+ FluidStack tLiquid = aLiquid.copy();
+
+ return dumpFluid(this.mOutputHatches, tLiquid, true) ||
+ dumpFluid(this.mOutputHatches, tLiquid, false);
+ }
+
+ @Override
+ public String[] getInfoData() {
+ long storedEnergy = 0;
+ long maxEnergy = 0;
+ for (GT_MetaTileEntity_Hatch_Energy tHatch : mEnergyHatches) {
+ if (!isValidMetaTileEntity(tHatch))
+ continue;
+ storedEnergy += tHatch.getBaseMetaTileEntity().getStoredEU();
+ maxEnergy += tHatch.getBaseMetaTileEntity().getEUCapacity();
+ }
+
+ return new String[]{
+ "------------ Critical Information ------------",
+ StatCollector.translateToLocal("GT5U.multiblock.Progress") + ": " +
+ EnumChatFormatting.GREEN + GT_Utility.formatNumbers(mProgresstime) + EnumChatFormatting.RESET + "t / " +
+ EnumChatFormatting.YELLOW + GT_Utility.formatNumbers(mMaxProgresstime) + EnumChatFormatting.RESET + "t",
+ StatCollector.translateToLocal("GT5U.multiblock.energy") + ": " +
+ EnumChatFormatting.GREEN + GT_Utility.formatNumbers(storedEnergy) + EnumChatFormatting.RESET + " EU / " +
+ EnumChatFormatting.YELLOW + GT_Utility.formatNumbers(maxEnergy) + EnumChatFormatting.RESET + " EU",
+ StatCollector.translateToLocal("GT5U.multiblock.usage") + ": " +
+ EnumChatFormatting.RED + GT_Utility.formatNumbers(-mEUt) + EnumChatFormatting.RESET + " EU/t",
+ StatCollector.translateToLocal("GT5U.multiblock.mei") + ": " +
+ EnumChatFormatting.YELLOW + GT_Utility.formatNumbers(getMaxInputVoltage()) + EnumChatFormatting.RESET + " EU/t(*2A) " +
+ StatCollector.translateToLocal("GT5U.machines.tier") + ": " +
+ EnumChatFormatting.YELLOW + VN[GT_Utility.getTier(getMaxInputVoltage())] + EnumChatFormatting.RESET,
+ StatCollector.translateToLocal("GT5U.EBF.heat") + ": " +
+ EnumChatFormatting.GREEN + GT_Utility.formatNumbers(mHeatingCapacity) + EnumChatFormatting.RESET + " K",
+ "----------------------------------------------"
+
+ };
+ }
+
+ public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {
+ if (aBaseMetaTileEntity.isServerSide() && !aBaseMetaTileEntity.isAllowedToWork()) {
+ // If machine has stopped, stop chunkloading.
+ GT_ChunkManager.releaseTicket((TileEntity) aBaseMetaTileEntity);
+ isMultiChunkloaded = false;
+ } else if (aBaseMetaTileEntity.isServerSide() && aBaseMetaTileEntity.isAllowedToWork() && !isMultiChunkloaded) {
+ // Load a 3x3 area centered on controller when machine is running.
+ GT_ChunkManager.releaseTicket((TileEntity) aBaseMetaTileEntity);
+
+ int ControllerXCoordinate = ((TileEntity) aBaseMetaTileEntity).xCoord;
+ int ControllerZCoordinate = ((TileEntity) aBaseMetaTileEntity).zCoord;
+
+ GT_ChunkManager.requestChunkLoad((TileEntity) aBaseMetaTileEntity, new ChunkCoordIntPair(ControllerXCoordinate, ControllerZCoordinate));
+ GT_ChunkManager.requestChunkLoad((TileEntity) aBaseMetaTileEntity, new ChunkCoordIntPair(ControllerXCoordinate + 16, ControllerZCoordinate));
+ GT_ChunkManager.requestChunkLoad((TileEntity) aBaseMetaTileEntity, new ChunkCoordIntPair(ControllerXCoordinate - 16, ControllerZCoordinate));
+ GT_ChunkManager.requestChunkLoad((TileEntity) aBaseMetaTileEntity, new ChunkCoordIntPair(ControllerXCoordinate, ControllerZCoordinate + 16));
+ GT_ChunkManager.requestChunkLoad((TileEntity) aBaseMetaTileEntity, new ChunkCoordIntPair(ControllerXCoordinate, ControllerZCoordinate - 16));
+ GT_ChunkManager.requestChunkLoad((TileEntity) aBaseMetaTileEntity, new ChunkCoordIntPair(ControllerXCoordinate + 16, ControllerZCoordinate + 16));
+ GT_ChunkManager.requestChunkLoad((TileEntity) aBaseMetaTileEntity, new ChunkCoordIntPair(ControllerXCoordinate + 16, ControllerZCoordinate - 16));
+ GT_ChunkManager.requestChunkLoad((TileEntity) aBaseMetaTileEntity, new ChunkCoordIntPair(ControllerXCoordinate - 16, ControllerZCoordinate + 16));
+ GT_ChunkManager.requestChunkLoad((TileEntity) aBaseMetaTileEntity, new ChunkCoordIntPair(ControllerXCoordinate - 16, ControllerZCoordinate - 16));
+
+ isMultiChunkloaded = true;
+ }
+ super.onPostTick(aBaseMetaTileEntity, aTick);
+ }
+
+ @Override
+ public void construct(ItemStack stackSize, boolean hintsOnly) {
+ buildPiece(STRUCTURE_PIECE_MAIN, stackSize, hintsOnly, 16,21,16);
+ }
+
+ @Override
+ public void saveNBTData(NBTTagCompound aNBT) {
+ super.saveNBTData(aNBT);
+ }
+
+ @Override
+ public void loadNBTData(final NBTTagCompound aNBT) {
+ super.loadNBTData(aNBT);
+ }
+}