diff options
Diffstat (limited to 'src/main/java/gtPlusPlus/xmod/gregtech/common')
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 |
