aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gtPlusPlus/xmod/gregtech/common
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gtPlusPlus/xmod/gregtech/common')
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/blocks/GregtechMetaCasingBlocks2.java2
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/blocks/GregtechMetaCasingBlocks4.java6
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/blocks/GregtechMetaCasingBlocks5.java62
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesGtBlock.java20
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GT4Entity_AutoCrafter.java2
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_QuantumForceTransformer.java1245
6 files changed, 1324 insertions, 13 deletions
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/blocks/GregtechMetaCasingBlocks2.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/blocks/GregtechMetaCasingBlocks2.java
index f71805784b..3c55d2fa95 100644
--- a/src/main/java/gtPlusPlus/xmod/gregtech/common/blocks/GregtechMetaCasingBlocks2.java
+++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/blocks/GregtechMetaCasingBlocks2.java
@@ -58,7 +58,7 @@ public class GregtechMetaCasingBlocks2 extends GregtechMetaCasingBlocksAbstract
GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".9.name", "Cyclotron Coil");
GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".10.name", "Cyclotron Outer Casing");
GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".11.name", "Thermal Containment Casing");
- GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".12.name", "Autocrafter Frame");
+ GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".12.name", "Bulk Production Frame");
GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".13.name", "Cutting Factory Frame");
GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".14.name", ""); // Unused
GT_LanguageManager.addStringLocalization(
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/blocks/GregtechMetaCasingBlocks4.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/blocks/GregtechMetaCasingBlocks4.java
index 5456aa27a2..8256f1aa64 100644
--- a/src/main/java/gtPlusPlus/xmod/gregtech/common/blocks/GregtechMetaCasingBlocks4.java
+++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/blocks/GregtechMetaCasingBlocks4.java
@@ -24,7 +24,8 @@ public class GregtechMetaCasingBlocks4 extends GregtechMetaCasingBlocksAbstract
GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".1.name", "Reactor Piping");
GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".2.name", "Naquadah Containment Chamber");
GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".3.name", "Tempered Arc Furnace Casing");
- GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".4.name", ""); // Unused
+ GT_LanguageManager.addStringLocalization(
+ this.getUnlocalizedName() + ".4.name", "Quantum Force Transformer Coil Casings"); // Unused
GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".5.name", ""); // Unused
GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".6.name", ""); // Unused
GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".7.name", ""); // Unused
@@ -40,6 +41,7 @@ public class GregtechMetaCasingBlocks4 extends GregtechMetaCasingBlocksAbstract
GregtechItemList.Casing_Naq_Reactor_B.set(new ItemStack(this, 1, 1));
GregtechItemList.Casing_Naq_Reactor_C.set(new ItemStack(this, 1, 2));
GregtechItemList.Casing_Industrial_Arc_Furnace.set(new ItemStack(this, 1, 3));
+ GregtechItemList.Casing_Coil_QuantumForceTransformer.set(new ItemStack(this, 1, 4));
GregtechItemList.Casing_Vacuum_Furnace.set(new ItemStack(this, 1, 10));
GregtechItemList.Casing_RocketEngine.set(new ItemStack(this, 1, 11));
}
@@ -71,7 +73,7 @@ public class GregtechMetaCasingBlocks4 extends GregtechMetaCasingBlocksAbstract
case 3:
return TexturesGtBlock.TEXTURE_METAL_PANEL_A.getIcon();
case 4:
- return Textures.BlockIcons.RENDERING_ERROR.getIcon();
+ return TexturesGtBlock.Casing_Coil_QFT.getIcon();
case 5:
return Textures.BlockIcons.RENDERING_ERROR.getIcon();
case 6:
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/blocks/GregtechMetaCasingBlocks5.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/blocks/GregtechMetaCasingBlocks5.java
index 834fb2c186..68d8349ef3 100644
--- a/src/main/java/gtPlusPlus/xmod/gregtech/common/blocks/GregtechMetaCasingBlocks5.java
+++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/blocks/GregtechMetaCasingBlocks5.java
@@ -42,15 +42,17 @@ public class GregtechMetaCasingBlocks5 extends GregtechMetaCasingBlocksAbstract
GT_LanguageManager.addStringLocalization(
this.getUnlocalizedName() + ".6.name", "Forge Casing"); // Forge Hammer Casing
TAE.registerTexture(1, 11, new GTPP_CopiedBlockTexture(this, 6, 6));
- GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".7.name", ""); // Unused
- GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".8.name", ""); // Unused
- GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".9.name", ""); // Unused
- GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".10.name", ""); // Unused
- GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".11.name", ""); // Unused
- GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".12.name", ""); // Unused
- GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".13.name", ""); // Unused
- GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".14.name", ""); // Unused
- GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".15.name", ""); // Unused
+ GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".7.name", "Neutron Pulse Manipulator");
+ GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".8.name", "Cosmic Fabric Manipulator");
+ GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".9.name", "Infinity Infused Manipulator");
+ GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".10.name", "SpaceTime Continuum Ripper");
+ GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".11.name", "Neutron Shielding Core");
+ GT_LanguageManager.addStringLocalization(
+ this.getUnlocalizedName() + ".12.name", "Cosmic Fabric Shielding Core");
+ GT_LanguageManager.addStringLocalization(
+ this.getUnlocalizedName() + ".13.name", "Infinity Infused Shielding Core");
+ GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".14.name", "SpaceTime Bending Core");
+ GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".15.name", "Force Field Glass");
GregtechItemList.Casing_IsaMill_Casing.set(new ItemStack(this, 1, 0));
GregtechItemList.Casing_IsaMill_Pipe.set(new ItemStack(this, 1, 1));
@@ -59,6 +61,15 @@ public class GregtechMetaCasingBlocks5 extends GregtechMetaCasingBlocksAbstract
GregtechItemList.Casing_Sparge_Tower_Exterior.set(new ItemStack(this, 1, 4));
GregtechItemList.Casing_IndustrialAutoChisel.set(new ItemStack(this, 1, 5));
GregtechItemList.Casing_IndustrialForgeHammer.set(new ItemStack(this, 1, 6));
+ GregtechItemList.NeutronPulseManipulator.set(new ItemStack(this, 1, 7));
+ GregtechItemList.CosmicFabricManipulator.set(new ItemStack(this, 1, 8));
+ GregtechItemList.InfinityInfusedManipulator.set(new ItemStack(this, 1, 9));
+ GregtechItemList.SpaceTimeContinuumRipper.set(new ItemStack(this, 1, 10));
+ GregtechItemList.NeutronShieldingCore.set(new ItemStack(this, 1, 11));
+ GregtechItemList.CosmicFabricShieldingCore.set(new ItemStack(this, 1, 12));
+ GregtechItemList.InfinityInfusedShieldingCore.set(new ItemStack(this, 1, 13));
+ GregtechItemList.SpaceTimeBendingCore.set(new ItemStack(this, 1, 14));
+ GregtechItemList.ForceFieldGlass.set(new ItemStack(this, 1, 15));
}
@Override
@@ -83,6 +94,39 @@ public class GregtechMetaCasingBlocks5 extends GregtechMetaCasingBlocksAbstract
return TexturesGtBlock.Casing_Machine_Metal_Sheet_I.getIcon();
case 6:
return TexturesGtBlock.TEXTURE_TECH_PANEL_H.getIcon();
+ case 7:
+ if (aSide == 0 || aSide == 1) {
+ return TexturesGtBlock.Manipulator_Top.getIcon();
+ }
+ return TexturesGtBlock.NeutronPulseManipulator.getIcon();
+ case 8:
+ if (aSide == 0 || aSide == 1) {
+ return TexturesGtBlock.Manipulator_Top.getIcon();
+ }
+ return TexturesGtBlock.CosmicFabricManipulator.getIcon();
+ case 9:
+ if (aSide == 0 || aSide == 1) {
+ return TexturesGtBlock.Manipulator_Top.getIcon();
+ }
+ return TexturesGtBlock.InfinityInfusedManipulator.getIcon();
+ case 10:
+ if (aSide == 0 || aSide == 1) {
+ return TexturesGtBlock.Manipulator_Top.getIcon();
+ }
+ return TexturesGtBlock.SpaceTimeContinuumRipper.getIcon();
+ case 11:
+ return TexturesGtBlock.NeutronShieldingCore.getIcon();
+ case 12:
+ return TexturesGtBlock.CosmicFabricShieldingCore.getIcon();
+ case 13:
+ return TexturesGtBlock.InfinityInfusedShieldingCore.getIcon();
+ case 14:
+ return TexturesGtBlock.SpaceTimeBendingCore.getIcon();
+ case 15:
+ if (aSide == 0 || aSide == 1) {
+ return TexturesGtBlock.Blank.getIcon();
+ }
+ return TexturesGtBlock.ForceFieldGlass.getIcon();
}
}
return Textures.BlockIcons.RENDERING_ERROR.getIcon();
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesGtBlock.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesGtBlock.java
index d92c9fb7e1..9ee32bcaa6 100644
--- a/src/main/java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesGtBlock.java
+++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesGtBlock.java
@@ -13,6 +13,8 @@ import net.minecraft.util.ResourceLocation;
public class TexturesGtBlock {
+ private static boolean mAnimated = CORE.ConfigSwitches.enableAnimatedTextures;
+
private static AutoMap<Runnable> mCustomiconMap = new AutoMap<Runnable>();
static {
@@ -289,6 +291,24 @@ public class TexturesGtBlock {
new CustomIcon("TileEntities/MACHINE_CASING_CENTRIFUGE");
public static final CustomIcon Casing_Material_Centrifuge = Internal_Casing_Centrifuge;
+ // Quantum Force Transformer Casing
+ // spotless:off
+ private static final CustomIcon Internal_Casing_QFT = mAnimated ? new CustomIcon("TileEntities/MACHINE_CASING_QFT_COIL") : new CustomIcon("TileEntites/MACHINE_CASING_QFT_COIL");
+ public static final CustomIcon Casing_Coil_QFT = Internal_Casing_QFT;
+ public static final CustomIcon NeutronPulseManipulator = mAnimated ? new CustomIcon("NeutronPulseManipulator") : new CustomIcon("NeutronPulseManipulatorStatic");
+ public static final CustomIcon CosmicFabricManipulator = mAnimated ? new CustomIcon("CosmicFabricManipulator") : new CustomIcon("CosmicFabricManipulatorStatic");
+ public static final CustomIcon InfinityInfusedManipulator = mAnimated ? new CustomIcon("InfinityInfusedManipulator") : new CustomIcon("InfinityInfusedManipulatorStatic");
+ public static final CustomIcon SpaceTimeContinuumRipper = mAnimated ? new CustomIcon("SpaceTimeContinuumRipper") : new CustomIcon("SpaceTimeContinuumRipperStatic");
+ public static final CustomIcon Manipulator_Top = new CustomIcon("Manipulator_Top");
+ public static final CustomIcon NeutronShieldingCore = mAnimated ? new CustomIcon("NeutronShieldingCore") : new CustomIcon("NeutronShieldingCoreStatic");
+ public static final CustomIcon CosmicFabricShieldingCore = mAnimated ? new CustomIcon("CosmicFabricShieldingCore") : new CustomIcon("CosmicFabricShieldingCoreStatic");
+ public static final CustomIcon InfinityInfusedShieldingCore = mAnimated ? new CustomIcon("InfinityInfusedShieldingCore") : new CustomIcon("InfinityInfusedShieldingCoreStatic");
+ public static final CustomIcon SpaceTimeBendingCore = mAnimated ? new CustomIcon("SpaceTimeBendingCore") : new CustomIcon("SpaceTimeBendingCoreStatic");
+ public static final CustomIcon ForceFieldGlass = new CustomIcon("ForceFieldGlass");
+ public static final CustomIcon ForceField = new CustomIcon("rendering/ForceField");
+ public static final CustomIcon Blank = new CustomIcon("Blank");
+ //spotless:on
+
// MACHINE_CASING_FARM_MANAGER_STRUCTURAL
// Farm Manager Casings
private static final CustomIcon Internal_Casing_Machine_Farm_Manager =
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GT4Entity_AutoCrafter.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GT4Entity_AutoCrafter.java
index 82631d81bf..f701b23e92 100644
--- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GT4Entity_AutoCrafter.java
+++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GT4Entity_AutoCrafter.java
@@ -141,7 +141,7 @@ public class GT4Entity_AutoCrafter extends GregtechMeta_MultiBlockBase<GT4Entity
.addSeparator()
.beginStructureBlock(3, 3, 3, true)
.addController("Front Center")
- .addCasingInfo("Autocrafter Frame", 10)
+ .addCasingInfo("Bulk Production Frame", 10)
.addInputBus("Any Casing", 1)
.addOutputBus("Any Casing", 1)
.addInputHatch("Any Casing", 1)
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_QuantumForceTransformer.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_QuantumForceTransformer.java
new file mode 100644
index 0000000000..b5fc3b6ebb
--- /dev/null
+++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_QuantumForceTransformer.java
@@ -0,0 +1,1245 @@
+package gtPlusPlus.xmod.gregtech.common.tileentities.machines.multi.production;
+
+import static com.gtnewhorizon.structurelib.structure.StructureUtility.*;
+import static gregtech.api.enums.GT_HatchElement.*;
+import static gregtech.api.util.GT_OreDictUnificator.getAssociation;
+import static gregtech.api.util.GT_StructureUtility.buildHatchAdder;
+
+import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable;
+import com.gtnewhorizon.structurelib.structure.*;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import gregtech.api.GregTech_API;
+import gregtech.api.enums.GT_Values;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.TAE;
+import gregtech.api.enums.Textures;
+import gregtech.api.interfaces.IIconContainer;
+import gregtech.api.interfaces.ITexture;
+import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_ExtendedPowerMultiBlockBase;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_InputBus;
+import gregtech.api.objects.ItemData;
+import gregtech.api.render.TextureFactory;
+import gregtech.api.util.*;
+import gtPlusPlus.core.block.ModBlocks;
+import gtPlusPlus.core.material.ELEMENT;
+import gtPlusPlus.core.util.minecraft.ItemUtils;
+import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import net.minecraft.block.Block;
+import net.minecraft.client.renderer.RenderBlocks;
+import net.minecraft.client.renderer.Tessellator;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.util.IIcon;
+import net.minecraft.util.StatCollector;
+import net.minecraft.world.IBlockAccess;
+import net.minecraftforge.fluids.Fluid;
+import net.minecraftforge.fluids.FluidStack;
+import org.apache.commons.lang3.tuple.Pair;
+import org.lwjgl.opengl.GL11;
+
+public class GregtechMetaTileEntity_QuantumForceTransformer
+ extends GT_MetaTileEntity_ExtendedPowerMultiBlockBase<GregtechMetaTileEntity_QuantumForceTransformer>
+ implements ISurvivalConstructable {
+
+ private int mCasing;
+ protected int mCraftingTier = 0;
+ protected int mFocusingTier = 0;
+ private boolean mSeparateInputBusses = false;
+ private boolean mFluidMode = false, doFermium = false, doNeptunium = false;
+ private static final Fluid mNeptunium = ELEMENT.getInstance().NEPTUNIUM.getPlasma();
+ private static final Fluid mFermium = ELEMENT.getInstance().FERMIUM.getPlasma();
+ private static final String MAIN_PIECE = "main";
+ private GT_MetaTileEntity_Hatch_Input mNeptuniumHatch;
+ private GT_MetaTileEntity_Hatch_Input mFermiumHatch;
+ private static final IStructureDefinition<GregtechMetaTileEntity_QuantumForceTransformer> STRUCTURE_DEFINITION =
+ StructureDefinition.<GregtechMetaTileEntity_QuantumForceTransformer>builder()
+ .addShape(MAIN_PIECE, new String[][] { // A - 142, B - 234, C - 177, D - 96, E - 224, H - 36, M - 21
+ {
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " BAB ",
+ " BBBBABBBB ",
+ " BAAAAAAAB ",
+ " BABBABBAB ",
+ " BA AB ",
+ " A A ",
+ " A A ",
+ " A A "
+ },
+ {
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " BAB ",
+ " AAABBBAAA ",
+ " BAAAAAAAAAB ",
+ " B B ",
+ " A A ",
+ " A A ",
+ " ",
+ " ",
+ " "
+ },
+ {
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " BAB ",
+ " AA AA ",
+ " AA AA ",
+ " BAA AAB ",
+ " B B ",
+ " A A ",
+ " A A ",
+ " ",
+ " ",
+ " "
+ },
+ {
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " BAAAB ",
+ " AA AA ",
+ " AA AA ",
+ "BAA AAB",
+ "B B",
+ "A A",
+ "A A",
+ "A A",
+ "A A",
+ "A A"
+ },
+ {
+ " TTT ",
+ " EEE ",
+ " EEE ",
+ " EEE ",
+ " DDD ",
+ " EEE ",
+ " DDD ",
+ " EEE ",
+ " EEE ",
+ " EEE ",
+ " DDD ",
+ " BAEEEAB ",
+ " AA EEE AA ",
+ " A EEE A ",
+ "BA DDD AB",
+ "B EEE B",
+ "B DDD B",
+ " EEE ",
+ " EEE ",
+ " EEE ",
+ " Z~X "
+ },
+ {
+ " TTTTT ",
+ " ECCCE ",
+ " ECCCE ",
+ " ECCCE ",
+ " D D ",
+ " ECCCE ",
+ " D D ",
+ " ECCCE ",
+ " ECCCE ",
+ " ECCCE ",
+ " D D ",
+ " BAECCCEAB ",
+ " A ECCCE A ",
+ " A ECCCE A ",
+ "BA D D AB",
+ "B ECCCE B",
+ "B D D B",
+ "B ECCCE B",
+ " ECCCE ",
+ " ECCCE ",
+ " HHHHH "
+ },
+ {
+ " TTTTTTT ",
+ " ECCCCCE ",
+ " EC CE ",
+ " EC CE ",
+ " D D ",
+ " EC CE ",
+ " D D ",
+ " EC CE ",
+ " EC CE ",
+ " EC CE ",
+ " D D ",
+ " BAEC CEAB ",
+ " B EC CE B ",
+ "BB EC CE BB",
+ "BA D D AB",
+ "A EC CE A",
+ "A D D A",
+ "A EC CE A",
+ " EC CE ",
+ " EC CE ",
+ " HHHHHHH "
+ },
+ {
+ " TTTTTTT ",
+ " ECCCCCE ",
+ " EC CE ",
+ " EC CE ",
+ " D D ",
+ " EC CE ",
+ " D D ",
+ " EC CE ",
+ " EC CE ",
+ " EC CE ",
+ " D D ",
+ " AAEC CEAA ",
+ " A EC CE A ",
+ "AB EC CE BA",
+ "AA D D AA",
+ "A EC CE A",
+ "A D D A",
+ " EC CE ",
+ " EC CE ",
+ " EC CE ",
+ " HHHHHHH "
+ },
+ {
+ " TTTTTTT ",
+ " ECCCCCE ",
+ " EC CE ",
+ " EC CE ",
+ " D D ",
+ " EC CE ",
+ " D D ",
+ " EC CE ",
+ " EC CE ",
+ " EC CE ",
+ " D D ",
+ " BAEC CEAB ",
+ " B EC CE B ",
+ "BB EC CE BB",
+ "BA D D AB",
+ "A EC CE A",
+ "A D D A",
+ "A EC CE A",
+ " EC CE ",
+ " EC CE ",
+ " HHHHHHH "
+ },
+ {
+ " TTTTT ",
+ " ECCCE ",
+ " ECCCE ",
+ " ECCCE ",
+ " D D ",
+ " ECCCE ",
+ " D D ",
+ " ECCCE ",
+ " ECCCE ",
+ " ECCCE ",
+ " D D ",
+ " BAECCCEAB ",
+ " A ECCCE A ",
+ " A ECCCE A ",
+ "BA D D AB",
+ "B ECCCE B",
+ "B D D B",
+ "B ECCCE B",
+ " ECCCE ",
+ " ECCCE ",
+ " HHHHH "
+ },
+ {
+ " TTT ",
+ " EEE ",
+ " EEE ",
+ " EEE ",
+ " DDD ",
+ " EEE ",
+ " DDD ",
+ " EEE ",
+ " EEE ",
+ " EEE ",
+ " DDD ",
+ " BAEEEAB ",
+ " AA EEE AA ",
+ " A EEE A ",
+ "BA DDD AB",
+ "B EEE B",
+ "B DDD B",
+ " EEE ",
+ " EEE ",
+ " EEE ",
+ " HHH "
+ },
+ {
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " BAAAB ",
+ " AA AA ",
+ " AA AA ",
+ "BAA AB",
+ "B B",
+ "A A",
+ "A A",
+ "A A",
+ "A A",
+ "A A"
+ },
+ {
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " BAB ",
+ " AA AA ",
+ " AA AA ",
+ " BA AB ",
+ " B B ",
+ " A A ",
+ " A A ",
+ " ",
+ " ",
+ " "
+ },
+ {
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " BAB ",
+ " AAABBBAAA ",
+ " BAAAAAAAAAB ",
+ " B B ",
+ " A A ",
+ " A A ",
+ " ",
+ " ",
+ " "
+ },
+ {
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " BAB ",
+ " BBBBABBBB ",
+ " BBBAAABBB ",
+ " ABBAAABBA ",
+ " A BA AB A ",
+ " A A ",
+ " A A ",
+ " A A "
+ },
+ })
+ .addElement(
+ 'A',
+ StructureUtility.ofBlocksTiered(
+ craftingTierConverter(),
+ getAllCraftingTiers(),
+ 0,
+ GregtechMetaTileEntity_QuantumForceTransformer::setCraftingTier,
+ GregtechMetaTileEntity_QuantumForceTransformer::getCraftingTier))
+ .addElement(
+ 'B',
+ StructureUtility.ofBlocksTiered(
+ focusingTierConverter(),
+ getAllFocusingTiers(),
+ 0,
+ GregtechMetaTileEntity_QuantumForceTransformer::setFocusingTier,
+ GregtechMetaTileEntity_QuantumForceTransformer::getFocusingTier))
+ .addElement('C', ofBlock(ModBlocks.blockCasings4Misc, 4))
+ .addElement('D', ofBlock(ModBlocks.blockCasings2Misc, 12))
+ .addElement('E', lazy(t -> ofBlock(t.getCasingBlock1(), t.getCasingMeta1())))
+ .addElement(
+ 'H',
+ buildHatchAdder(GregtechMetaTileEntity_QuantumForceTransformer.class)
+ .atLeast(InputBus, InputHatch, Maintenance, Energy.or(ExoticEnergy))
+ .casingIndex(TAE.getIndexFromPage(0, 10))
+ .dot(4)
+ .buildAndChain(
+ onElementPass(x -> ++x.mCasing, ofBlock(ModBlocks.blockCasings2Misc, 12))))
+ .addElement(
+ 'T',
+ buildHatchAdder(GregtechMetaTileEntity_QuantumForceTransformer.class)
+ .atLeast(OutputBus, OutputHatch, Maintenance)
+ .casingIndex(TAE.getIndexFromPage(0, 10))
+ .dot(5)
+ .buildAndChain(
+ onElementPass(x -> ++x.mCasing, ofBlock(ModBlocks.blockCasings2Misc, 12))))
+ .addElement(
+ 'Z',
+ buildHatchAdder(GregtechMetaTileEntity_QuantumForceTransformer.class)
+ .hatchClass(GT_MetaTileEntity_Hatch_Input.class)
+ .adder(GregtechMetaTileEntity_QuantumForceTransformer::addNeptuniumHatch)
+ .casingIndex(TAE.getIndexFromPage(0, 10))
+ .dot(5)
+ .buildAndChain(
+ onElementPass(x -> ++x.mCasing, ofBlock(ModBlocks.blockCasings2Misc, 12))))
+ .addElement(
+ 'X',
+ buildHatchAdder(GregtechMetaTileEntity_QuantumForceTransformer.class)
+ .hatchClass(GT_MetaTileEntity_Hatch_Input.class)
+ .adder(GregtechMetaTileEntity_QuantumForceTransformer::addFermiumHatch)
+ .casingIndex(TAE.getIndexFromPage(0, 10))
+ .dot(5)
+ .buildAndChain(
+ onElementPass(x -> ++x.mCasing, ofBlock(ModBlocks.blockCasings2Misc, 12))))
+ .build();
+
+ public GregtechMetaTileEntity_QuantumForceTransformer(
+ final int aID, final String aName, final String aNameRegional) {
+ super(aID, aName, aNameRegional);
+ }
+
+ public GregtechMetaTileEntity_QuantumForceTransformer(final String aName) {
+ super(aName);
+ }
+
+ @Override
+ public IMetaTileEntity newMetaEntity(final IGregTechTileEntity aTileEntity) {
+ return new GregtechMetaTileEntity_QuantumForceTransformer(this.mName);
+ }
+
+ @Override
+ protected GT_Multiblock_Tooltip_Builder createTooltip() {
+ GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder();
+ tt.addMachineType("Quantum Force Transformer")
+ .addInfo("Controller Block for the Quantum Force Transformer")
+ .addInfo("Allows Complex chemical lines to be performed instantly in one step")
+ .addInfo("Every recipe requires a catalyst, each catalyst adds 1 parallel and lasts forever")
+ .addInfo("Accepts TecTech Energy and Laser Hatches")
+ .addInfo("All inputs go on the bottom, all outputs go on the top")
+ .addInfo("Put a circuit in the controller to specify the focused output")
+ .addInfo("Check NEI to see the order of outputs, and which circuit number you need.")
+ .addInfo("Uses FocusTier*4*sqrt(parallels) Neptunium Plasma if focusing")
+ .addInfo("Can use FocusTier*4*sqrt(parallels) Fermium Plasma for additional chance output")
+ .addInfo("This multi gets improved when all casings of some types are upgraded")
+ .addInfo("Casing functions:")
+ .addInfo("Pulse Manipulators: Recipe Tier Allowed (check NEI for the tier of each recipe)")
+ .addInfo("Shielding Cores: Focusing Tier (equal to or higher than recipe tier to allow focus)")
+ .addPollutionAmount(getPollutionPerSecond(null))
+ .addSepara