diff options
Diffstat (limited to 'src/main/java/gtPlusPlus/xmod')
13 files changed, 2094 insertions, 17 deletions
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java b/src/main/java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java index f3b9552800..e08cae7c00 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java @@ -267,6 +267,19 @@ public enum GregtechItemList implements GregtechItemContainer { Casing_BlastSmelter, Mega_AlloyBlastSmelter, + // Quantum Force Transformer + QuantumForceTransformer, + Casing_Coil_QuantumForceTransformer, + NeutronPulseManipulator, + CosmicFabricManipulator, + InfinityInfusedManipulator, + SpaceTimeContinuumRipper, + NeutronShieldingCore, + CosmicFabricShieldingCore, + InfinityInfusedShieldingCore, + SpaceTimeBendingCore, + ForceFieldGlass, + // Industrial Electrolyzer Industrial_Electrolyzer, Casing_Electrolyzer, diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/api/gui/GTPP_UITextures.java b/src/main/java/gtPlusPlus/xmod/gregtech/api/gui/GTPP_UITextures.java index 06a59cc52e..bd649fea76 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/api/gui/GTPP_UITextures.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/api/gui/GTPP_UITextures.java @@ -9,6 +9,10 @@ import java.util.stream.IntStream; public class GTPP_UITextures { + public static final UITexture OVERLAY_SLOT_COAL = UITexture.fullImage(MODID, "gui/overlay_slot/coal"); + public static final UITexture OVERLAY_SLOT_CANISTER_DARK = + UITexture.fullImage(MODID, "gui/overlay_slot/canister_dark"); + public static final AdaptableUITexture BACKGROUND_YELLOW = AdaptableUITexture.of(MODID, "gui/background/yellow", 176, 166, 4); @@ -26,9 +30,6 @@ public class GTPP_UITextures { public static final UITexture BUTTON_STANDARD_BRONZE = UITexture.fullImage(MODID, "gui/button/standard_bronze"); public static final UITexture BUTTON_STANDARD_16x16 = UITexture.fullImage(MODID, "gui/button/standard_16x16"); - public static final UITexture OVERLAY_SLOT_COAL = UITexture.fullImage(MODID, "gui/overlay_slot/coal"); - public static final UITexture OVERLAY_SLOT_CANISTER_DARK = - UITexture.fullImage(MODID, "gui/overlay_slot/canister_dark"); public static final UITexture OVERLAY_SLOT_WEED_EX = UITexture.fullImage(MODID, "gui/overlay_slot/weed_ex"); public static final UITexture OVERLAY_SLOT_FERTILIZER = UITexture.fullImage(MODID, "gui/overlay_slot/fertilizer"); public static final UITexture OVERLAY_SLOT_ELECTRIC_TOOL = diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java b/src/main/java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java index a788b15a95..8d1e9d597e 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java @@ -257,7 +257,21 @@ public interface IGregtech_RecipeAdder { int aSpecialValue); /** - * Adds a Recipe for the LFTRr. (up to 9 Inputs, More than 1 fluids) + * Adds a Recipe for the Quantum Force Smelter (up to 9 Inputs) + * + * + **/ + public boolean addQuantumTransformerRecipe( + ItemStack[] aInput, + FluidStack[] aFluidInput, + FluidStack[] aFluidOutput, + ItemStack[] aOutputStack, + int[] aChances, + int aDuration, + int aEUt, + int aSpecialValue); + + /** Adds a Recipe for the LFTRr. (up to 9 Inputs, More than 1 fluids) * * @param aInput = ItemStack[] (not null, and respects StackSize) * @param aFluidInput = FluidStack[] (can be null, and respects StackSize) 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 ", + " |
