From 3033ac1f6f071dbb8d2a5227957ccc6800616baa Mon Sep 17 00:00:00 2001 From: Alkalus <3060479+draknyte1@users.noreply.github.com> Date: Wed, 26 Dec 2018 20:16:10 +0000 Subject: % Overhauled Multiblock Tooltips. % Overhauled Multiblock structural checks, they are now able to utilise my Blueprint system for much faster, cleaner checks. --- .../base/GregtechMeta_MultiBlockBase.java | 37 +++ .../gregtech/api/objects/MultiblockBlueprint.java | 165 ++++++++++ .../xmod/gregtech/api/objects/MultiblockLayer.java | 356 +++++++++++++++++++++ .../api/objects/MultiblockRequirements.java | 56 ++++ .../common/blueprint/Blueprint_Generic_3x3.java | 84 +++++ .../machines/multi/misc/GMTE_AmazonPackager.java | 7 +- .../multi/misc/GregtechMTE_TeslaTower.java | 7 +- ...regtechMetaTileEntity_IndustrialArcFurnace.java | 17 +- ...regtechMetaTileEntity_IndustrialCentrifuge.java | 11 +- .../GregtechMetaTileEntity_IndustrialCokeOven.java | 17 +- ...echMetaTileEntity_IndustrialCuttingMachine.java | 7 +- ...gtechMetaTileEntity_IndustrialElectrolyzer.java | 48 ++- .../GregtechMetaTileEntity_IndustrialExtruder.java | 17 +- ...GregtechMetaTileEntity_IndustrialMacerator.java | 15 +- .../GregtechMetaTileEntity_IndustrialMixer.java | 7 +- ...gtechMetaTileEntity_IndustrialMultiMachine.java | 20 +- ...regtechMetaTileEntity_IndustrialPlatePress.java | 20 +- .../GregtechMetaTileEntity_IndustrialSifter.java | 9 +- ...MetaTileEntity_IndustrialThermalCentrifuge.java | 11 +- ...techMetaTileEntity_IndustrialVacuumFreezer.java | 6 +- ...GregtechMetaTileEntity_IndustrialWashPlant.java | 7 +- .../GregtechMetaTileEntity_IndustrialWireMill.java | 7 +- .../advanced/GregtechMetaTileEntity_Adv_EBF.java | 6 +- .../GregtechMetaTileEntity_Adv_Implosion.java | 12 +- .../multi/production/GT4Entity_AutoCrafter.java | 6 +- .../multi/production/GT4Entity_ThermalBoiler.java | 24 +- .../production/GregtechMTE_FastNeutronReactor.java | 16 +- .../production/GregtechMTE_LargeNaqReactor.java | 16 +- .../production/GregtechMTE_NuclearReactor.java | 19 +- .../GregtechMetaTileEntityGeneratorArray.java | 19 +- .../production/GregtechMetaTileEntityTreeFarm.java | 18 +- .../GregtechMetaTileEntity_AlloyBlastSmelter.java | 13 +- .../GregtechMetaTileEntity_Cyclotron.java | 23 +- ...egtechMetaTileEntity_IndustrialFishingPond.java | 25 +- .../GregtechMetaTileEntity_MassFabricator.java | 29 +- .../GregtechMetaTileEntity_Refinery.java | 10 +- .../GregtechMetaTileEntity_SolarTower.java | 21 +- .../turbines/GT_MTE_LargeTurbine_SHSteam.java | 2 +- .../turbines/GT_MTE_LargeTurbine_Steam.java | 2 +- .../storage/GregtechMetaTileEntity_MultiTank.java | 17 +- ...chMetaTileEntity_PowerSubStationController.java | 21 +- 41 files changed, 930 insertions(+), 300 deletions(-) create mode 100644 src/Java/gtPlusPlus/xmod/gregtech/api/objects/MultiblockBlueprint.java create mode 100644 src/Java/gtPlusPlus/xmod/gregtech/api/objects/MultiblockLayer.java create mode 100644 src/Java/gtPlusPlus/xmod/gregtech/api/objects/MultiblockRequirements.java create mode 100644 src/Java/gtPlusPlus/xmod/gregtech/common/blueprint/Blueprint_Generic_3x3.java (limited to 'src/Java/gtPlusPlus/xmod') diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java index 38e5681bdc..8bcaf0b2ec 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java @@ -199,6 +199,40 @@ GT_MetaTileEntity_MultiBlockBase { return true; } + private String[] aCachedToolTip; + + @Override + public final String[] getDescription() { + if (aCachedToolTip != null) { + return aCachedToolTip; + } + String[] x = getTooltip(); + //Add Stock Tooltip to bottom of list + String[] z; + if (getPollutionPerTick(null) > 0) { + z = new String[] { + getPollutionTooltip(), + getMachineTooltip(), + CORE.GT_Tooltip}; + } + else { + z = new String[] { + getMachineTooltip(), + CORE.GT_Tooltip}; + } + + int a2, a3; + a2 = x != null ? x.length : 0; + a3 = z != null ? z.length : 0; + String[] aToolTip = new String[(a2 + a3)]; + aToolTip = ArrayUtils.addAll(aToolTip, x); + aToolTip = ArrayUtils.addAll(aToolTip, z); + aCachedToolTip = aToolTip; + return aToolTip; + } + + public abstract String[] getTooltip(); + public int getAmountOfOutputs() { return 1; } @@ -935,6 +969,9 @@ GT_MetaTileEntity_MultiBlockBase { resetRecipeMapForAllInputHatches(); } + + + /** * Enable Texture Casing Support if found in GT 5.09 diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/objects/MultiblockBlueprint.java b/src/Java/gtPlusPlus/xmod/gregtech/api/objects/MultiblockBlueprint.java new file mode 100644 index 0000000000..09ab8b1c14 --- /dev/null +++ b/src/Java/gtPlusPlus/xmod/gregtech/api/objects/MultiblockBlueprint.java @@ -0,0 +1,165 @@ +package gtPlusPlus.xmod.gregtech.api.objects; + +import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; +import gtPlusPlus.api.objects.Logger; +import net.minecraft.block.Block; +import net.minecraftforge.common.util.ForgeDirection; + +public abstract class MultiblockBlueprint { + + private final MultiblockLayer[] mBlueprintData; + + public final int height; + public final int width; + public final int depth; + public final int mMinimumCasingCount; + public final int mTextureID; + + /** + * A detailed class which will contain blueprints for a Multiblock. + * Values are not relative to the controller, but in total. + * @param x - Overall width + * @param y - Overall height + * @param z - Overall depth + * @param aMinimumCasings - The lowest amount of casings required + * @param aTextureID - The texture ID used by hatches. + */ + public MultiblockBlueprint(final int x, final int y, final int z, final int aMinimumCasings, final int aTextureID) { + mBlueprintData = new MultiblockLayer[y]; + height = y; + width = x; + depth = z; + mMinimumCasingCount = aMinimumCasings; + mTextureID = aTextureID; + Logger.INFO("Created new Blueprint."); + } + + /** + * + * @param aY - The Y level of the layer to return, where 0 is the bottom and N is the top. + * @return - A {@link MultiblockLayer} object. + */ + public MultiblockLayer getLayer(int aY) { + return mBlueprintData[aY]; + } + + /** + * + * @param aLayer - A {@link MultiblockLayer} object. + * @param aY - The Y level of the layer, where 0 is the bottom and N is the top. + * + */ + public void setLayer(MultiblockLayer aLayer, int aY) { + mBlueprintData[aY] = aLayer; + } + + public MultiblockLayer getControllerLayer() { + for (MultiblockLayer u : mBlueprintData) { + if (u.hasController()) { + return u; + } + } + return null; + } + + public int getControllerY() { + int i = 0; + for (MultiblockLayer u : mBlueprintData) { + if (u.hasController()) { + return i; + } + i++; + } + return 0; + } + + public boolean checkMachine(final IGregTechTileEntity aBaseMetaTileEntity) { + if (aBaseMetaTileEntity == null) { + return false; + } + final IMetaTileEntity aMetaTileEntity = aBaseMetaTileEntity.getMetaTileEntity(); + if (aMetaTileEntity == null) { + return false; + } + GT_MetaTileEntity_MultiBlockBase aControllerObject = null; + if (aMetaTileEntity instanceof GT_MetaTileEntity_MultiBlockBase) { + aControllerObject = (GT_MetaTileEntity_MultiBlockBase) aMetaTileEntity; + } + if (aControllerObject == null) { + return false; + } + + int xOffSetMulti = ((this.getControllerLayer().width-1)/2); + int zOffSetMulti = ((this.getControllerLayer().depth-1)/2); + final int xDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetX * xOffSetMulti; + final int zDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetZ * zOffSetMulti; + + int a1, a2; + a1 = this.getControllerY(); + a2 = this.height; + int tAmount = 0; + + @SuppressWarnings("unused") + int xRelativeCounter = 0, yRelativeCounter = 0, zRelativeCounter = 0; + for (int Y = -a1; Y < ((a2-1)-a1); Y++) { + + MultiblockLayer aCurrentLayerToCheck = this.getLayer(Y); + int aWidth = aCurrentLayerToCheck.width; + int aDepth = aCurrentLayerToCheck.depth; + + int aDepthMin, aDepthMax; + int aWidthMin, aWidthMax; + + aWidthMin = -((aWidth-1)/2); + aWidthMax = ((aWidth-1)/2); + aDepthMin = -((aDepth-1)/2); + aDepthMax = ((aDepth-1)/2); + + for (int Z = aDepthMin; Z < aDepthMax; Z++) { + for (int X = aWidthMin; X < aWidthMax; X++) { + int b1 = xDir + X; + int b2 = zDir + Z; + final IGregTechTileEntity tTileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(b1, Y, b2); + final Block tBlock = aBaseMetaTileEntity.getBlockOffset(b1, Y, b2); + final int tMeta = aBaseMetaTileEntity.getMetaIDOffset(b1, Y, b2); + if (!aCurrentLayerToCheck.getBlockForPos(tBlock, tMeta, xRelativeCounter, zRelativeCounter, ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()))) { + return false; + } + else { + if (!aControllerObject.addToMachineList(tTileEntity, mTextureID)) { + tAmount++; + } + } + xRelativeCounter++; + } + xRelativeCounter = 0; + zRelativeCounter++; + } + yRelativeCounter++; + } + + boolean hasCorrectHatches = (aControllerObject.mInputBusses.size() >= this.getMinimumInputBus() && + aControllerObject.mOutputBusses.size() >= this.getMinimumOutputBus() && + aControllerObject.mInputHatches.size() >= this.getMinimumInputHatch() && + aControllerObject.mOutputHatches.size() >= this.getMinimumOutputHatch() && + aControllerObject.mDynamoHatches.size() >= this.getMinimumOutputEnergy() && + aControllerObject.mEnergyHatches.size() >= this.getMinimumInputEnergy() && + aControllerObject.mMaintenanceHatches.size() >= this.getMinimumMaintHatch() && + aControllerObject.mMufflerHatches.size() >= this.getMinimumMufflers()); + + + return hasCorrectHatches && tAmount >= mMinimumCasingCount; + } + + public abstract int getMinimumInputBus(); + public abstract int getMinimumInputHatch(); + public abstract int getMinimumOutputBus(); + public abstract int getMinimumOutputHatch(); + public abstract int getMinimumInputEnergy(); + public abstract int getMinimumOutputEnergy(); + public abstract int getMinimumMaintHatch(); + public abstract int getMinimumMufflers(); + +} diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/objects/MultiblockLayer.java b/src/Java/gtPlusPlus/xmod/gregtech/api/objects/MultiblockLayer.java new file mode 100644 index 0000000000..2d3d8a505a --- /dev/null +++ b/src/Java/gtPlusPlus/xmod/gregtech/api/objects/MultiblockLayer.java @@ -0,0 +1,356 @@ +package gtPlusPlus.xmod.gregtech.api.objects; + +import java.util.HashMap; + +import gregtech.api.GregTech_API; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; +import gtPlusPlus.api.objects.Logger; +import gtPlusPlus.api.objects.data.AutoMap; +import gtPlusPlus.api.objects.data.Pair; +import gtPlusPlus.core.util.data.ArrayUtils; +import net.minecraft.block.Block; +import net.minecraft.block.BlockAir; +import net.minecraftforge.common.util.ForgeDirection; + +public class MultiblockLayer { + + public final int width; + public final int depth; + + private boolean mFinalised; + + /** + * WARNING!! May be {@link null}. + */ + private Pair mControllerLocation; + + /** + * Holds the North facing Orientation data. + */ + public final LayerBlockData[][] mLayerData; + public final AutoMap mVariantOrientations = new AutoMap(); + + /** + * A detailed class which will contain a single x/z Layer for a {@link MultiblockBlueprint}. + * Values are not relative, but in total. + * @param x - Overall width + * @param z - Overall depth + */ + public MultiblockLayer(final int x, final int z) { + width = x; + depth = z; + mLayerData = new LayerBlockData[x][z]; + Logger.INFO("Created new Blueprint Layer."); + } + + /** + * A detailed class which will contain a single x/z Layer for a {@link MultiblockBlueprint}. + * Values are not relative, but in total. + */ + public MultiblockLayer(final LayerBlockData[][] aData) { + width = aData.length; + depth = aData[0].length; + mLayerData = aData; + } + + /** + * + * @param aBlock - The block expected as this location. + * @param aMeta - The meta for the block above. + * @param x - The X location, where 0 is the top left corner & counts upwards, moving right. + * @param z - The Z location, where 0 is the top left corner & counts upwards, moving down. + * @param canBeHatch - is this location able to be substituted for any hatch? + * @return - Is this data added to the layer data map? + */ + public boolean addBlockForPos(Block aBlock, int aMeta, int x, int z, boolean canBeHatch) { + return addBlockForPos(aBlock, aMeta, x, z, canBeHatch, null); + } + + /** + * + * @param aBlock - The block expected as this location. + * @param aMeta - The meta for the block above. + * @param x - The X location, where 0 is the top left corner & counts upwards, moving right. + * @param z - The Z location, where 0 is the top left corner & counts upwards, moving down. + * @param canBeHatch - is this location able to be substituted for a hatch? + * @param aHatchTypeClass - Specify the class for the hatch if you want it explicit. Use base classes to allow custom hatches which extend. + * @return - Is this data added to the layer data map? + */ + public boolean addBlockForPos(Block aBlock, int aMeta, int x, int z, boolean canBeHatch, Class aHatchTypeClass) { + if (x > width -1) { + return false; + } + if (z > depth - 1) { + return false; + } + mLayerData[x][z] = new LayerBlockData(aBlock, aMeta, canBeHatch, aHatchTypeClass); + return true; + } + + /** + * Adds a controller to the layer at the designated location, Details about the controller do not need to be specified. + * @param x - The X location, where 0 is the top left corner & counts upwards, moving right. + * @param z - The Z location, where 0 is the top left corner & counts upwards, moving down. + * @return - Is this controller added to the layer data map? + */ + public boolean addController(int x, int z) { + setControllerLocation(new Pair(x, z)); + return addBlockForPos(GregTech_API.sBlockMachines, 0, x, z, true, GT_MetaTileEntity_MultiBlockBase.class); + } + + /** + * + * @param aBlock - The block you expect. + * @param aMeta - The meta you expect. + * @param x - the non-relative x location you expect it. + * @param z - the non-relative z location you expect it. + * @param aDir - The direction the controller is facing. + * @return - True if the correct Block was found. May also return true if a hatch is found when allowed or it's the controller. + */ + public boolean getBlockForPos(Block aBlock, int aMeta, int x, int z, ForgeDirection aDir) { + LayerBlockData g; + if (aDir == ForgeDirection.NORTH) { + g = mVariantOrientations.get(0)[x][z]; + } + else if (aDir == ForgeDirection.EAST) { + g = mVariantOrientations.get(1)[x][z]; + } + else if (aDir == ForgeDirection.SOUTH) { + g = mVariantOrientations.get(2)[x][z]; + } + else if (aDir == ForgeDirection.WEST) { + g = mVariantOrientations.get(3)[x][z]; + } + else { + g = mLayerData[x][z]; + } + if (g == null) { + return false; + } + + return g.match(aBlock, aMeta); + } + + + + /** + * Is this layer final? + * @return - If true, layer data cannot be edited. + */ + public final boolean isLocked() { + return mFinalised; + } + + /** + * Used to finalize the layer, after which all four Orientations are then generated. + * Cannot be set to false, useful for not locking the layer if an error occurs. + * @param lockData + */ + public final void lock(boolean lockData) { + if (!lockData) { + return; + } + this.mFinalised = true; + generateOrientations(); + } + + private void generateOrientations() { + //North + mVariantOrientations.put(mLayerData); + LayerBlockData[][] val; + //East + val = ArrayUtils.rotateArrayClockwise(mLayerData); + mVariantOrientations.put(val); + //South + val = ArrayUtils.rotateArrayClockwise(mLayerData); + mVariantOrientations.put(val); + //West + val = ArrayUtils.rotateArrayClockwise(mLayerData); + mVariantOrientations.put(val); + } + + public boolean hasController() { + if (getControllerLocation() == null) { + return false; + } + return true; + } + + public Pair getControllerLocation() { + return mControllerLocation; + } + + public void setControllerLocation(Pair mControllerLocation) { + if (hasController()) { + return; + } + this.mControllerLocation = mControllerLocation; + } + + + + + + + + + + + + + + + + + + /** + * Generates a complete {@link MultiblockLayer} from String data. + * @param aDataMap - A {@link HashMap} containing single character {@link String}s, which map to {@link Pair}<{@link Block}, {@link Integer}>s contains pairs of Blocks & Meta. + * @param aHorizontalStringRows - The horizontal rows used to map blocks to a grid. Each array slot is one vertical row going downwards as the index increases. + * @return + */ + public static MultiblockLayer generateLayerFromData(HashMap> aDataMap, String[] aHorizontalStringRows) { + AutoMap>> x = new AutoMap>>(); + + for (String u : aDataMap.keySet()) { + Pair r = aDataMap.get(u); + if (r != null) { + x.put(new Pair>(u, r)); + } + } + + //String aFreeLetters = "abdefgijklmnopqrstuvwxyz"; + /*for (Pair h : aDataMap.values()) { + String y = aFreeLetters.substring(0, 0); + aFreeLetters = aFreeLetters.replace(y.toLowerCase(), ""); + Pair> t = new Pair>(y, h); + x.put(t); + }*/ + return generateLayerFromData(x, aHorizontalStringRows); + } + + + /** + * Generates a complete {@link MultiblockLayer} from String data. + * @param aDataMap - An {@link AutoMap} which contains {@link Pair}s. These Pairs hold a single character {@link String} and another Pair. This inner pair holds a {@link Block} and an {@link Integer}. + * @param aHorizontalStringRows - An array which holds the horizontal (X/Width) string data for the layer. + * @return A complete Multiblock Layer. + */ + public static MultiblockLayer generateLayerFromData(AutoMap>> aDataMap, String[] aHorizontalStringRows) { + int width = aHorizontalStringRows[0].length(); + int depth = aHorizontalStringRows.length; + MultiblockLayer L = new MultiblockLayer(width, depth); + HashMap> K = new HashMap>(); + + //24 Free Letters + //C = Controller + //H = Hatch + String aFreeLetters = "abdefgijklmnopqrstuvwxyz"; + AutoMap>> j = new AutoMap>>(); + + //Map the keys to a Hashmap + for (Pair> t : aDataMap) { + String aKeyTemp = t.getKey(); + if (aKeyTemp.toUpperCase().equals("C")){ + j.put(t); + } + else if (aKeyTemp.toUpperCase().equals("H")){ + j.put(t); + } + else { + K.put(aKeyTemp.toLowerCase(), t.getValue()); + aFreeLetters.replace(aKeyTemp.toLowerCase(), ""); + } + } + + //Map any Invalid Characters to new ones, in case someone uses C/H. + if (j.size() > 0) { + for (Pair> h : j) { + String newKey = aFreeLetters.substring(0, 0); + K.put(newKey.toLowerCase(), h.getValue()); + aFreeLetters.replace(newKey.toLowerCase(), ""); + } + } + + int xPos = 0; + int zPos = 0; + + //Vertical Iterator + for (String s : aHorizontalStringRows) { + //Horizontal Iterator + for (int q = 0; q < s.length(); q++) { + //Get char as a String at index q. + String c = s.substring(q, q); + //if the character at c matches the character in this row, we add it to the map. + if (c.toLowerCase().equals(s.toLowerCase())) { + Pair p = K.get(c); + if (c.toLowerCase().equals("c")) { + L.addController(xPos, zPos); + } + else if (c.toLowerCase().equals("h")) { + L.addBlockForPos(p.getKey(), p.getValue(), xPos, zPos, true); + } + else { + L.addBlockForPos(p.getKey(), p.getValue(), xPos, zPos, false); + } + } + xPos++; + } + xPos = 0; + zPos++; + } + L.lock(true); + return L; + } + + + + + public class LayerBlockData{ + + public final Block mBlock; + public final int mMeta; + public final boolean canBeHatch; + public final Class mHatchClass; + + private final boolean isController; + + + public LayerBlockData(Block aBlock, int aMeta, boolean aHatch) { + this(aBlock, aMeta, aHatch, null); + } + + public LayerBlockData(Block aBlock, int aMeta, boolean aHatch, Class clazz) { + mBlock = aBlock; + mMeta = aMeta; + canBeHatch = aHatch; + mHatchClass = clazz; + if (clazz.equals(GT_MetaTileEntity_MultiBlockBase.class)) { + isController = true; + } + else { + isController = false; + } + } + + public boolean match(Block blockToTest, int metaToTest) { + + //If Both are some kind of Air Block, good enough. + if (blockToTest instanceof BlockAir && mBlock instanceof BlockAir) { + return true; + } + + //If Block does't match at all and it cannot be hatch + if (blockToTest != mBlock && !canBeHatch) { + return false; + } + + //If Block does Match, is not controller, is not hatch and Meta does not match + if (!isController && !canBeHatch && metaToTest != mMeta) { + return false; + } + return true; + } + } + +} diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/objects/MultiblockRequirements.java b/src/Java/gtPlusPlus/xmod/gregtech/api/objects/MultiblockRequirements.java new file mode 100644 index 0000000000..afdf36f930 --- /dev/null +++ b/src/Java/gtPlusPlus/xmod/gregtech/api/objects/MultiblockRequirements.java @@ -0,0 +1,56 @@ +package gtPlusPlus.xmod.gregtech.api.objects; + +public class MultiblockRequirements { + + public final int mInputBusMinimum; + public final int mInputHatchMinimum; + + public final int mOutputBusMinimum; + public final int mOutputHatchMinimum; + + public final int mMaintMinimum; + + public final int mEnergyHatchMinimum; + public final int mDynamoHatchMinimum; + + public final MultiblockBlueprint mBlueprint; + + public static final int mControlCoreMinimum = 1; + + /** + * + * @param aInputBusses + * @param aOutputBusses + * @param aInputHatches + * @param aOutputHatches + * @param aEnergyHatches + * @param aDynamoHatches + * @param aBlueprint - A data object containing the structural data for this Multiblock + */ + public MultiblockRequirements(final int aInputBusses, final int aOutputBusses, final int aInputHatches, final int aOutputHatches, final int aEnergyHatches, final int aDynamoHatches, final MultiblockBlueprint aBlueprint) { + this(aInputBusses, aOutputBusses, aInputHatches, aOutputHatches, aEnergyHatches, aDynamoHatches, 1, aBlueprint); + } + + /** + * + * @param aInputBusses + * @param aOutputBusses + * @param aInputHatches + * @param aOutputHatches + * @param aEnergyHatches + * @param aDynamoHatches + * @param aMaintHatches + * @param aBlueprint - A data object containing the structural data for this Multiblock + */ + public MultiblockRequirements(final int aInputBusses, final int aOutputBusses, final int aInputHatches, final int aOutputHatches, final int aEnergyHatches, final int aDynamoHatches, final int aMaintHatches, final MultiblockBlueprint aBlueprint) { + mInputBusMinimum = aInputBusses; + mOutputBusMinimum = aOutputBusses; + mInputHatchMinimum = aInputHatches; + mOutputHatchMinimum = aOutputHatches; + mEnergyHatchMinimum = aEnergyHatches; + mDynamoHatchMinimum = aDynamoHatches; + mMaintMinimum = aMaintHatches; + mBlueprint = aBlueprint; + } + +} diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/blueprint/Blueprint_Generic_3x3.java b/src/Java/gtPlusPlus/xmod/gregtech/common/blueprint/Blueprint_Generic_3x3.java new file mode 100644 index 0000000000..af7a1ad97d --- /dev/null +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/blueprint/Blueprint_Generic_3x3.java @@ -0,0 +1,84 @@ +package gtPlusPlus.xmod.gregtech.common.blueprint; + +import gregtech.api.GregTech_API; +import gtPlusPlus.xmod.gregtech.api.objects.MultiblockBlueprint; +import gtPlusPlus.xmod.gregtech.api.objects.MultiblockLayer; +import net.minecraft.init.Blocks; + +public class Blueprint_Generic_3x3 extends MultiblockBlueprint { + + public Blueprint_Generic_3x3(int aTextureID) { + super(3, 3, 3, 10, aTextureID); + + // Top/Bottom + MultiblockLayer a0 = new MultiblockLayer(3, 3); + a0.addBlockForPos(GregTech_API.sBlockCasings2, 4, 0, 0, true); + a0.addBlockForPos(GregTech_API.sBlockCasings2, 4, 0, 1, true); + a0.addBlockForPos(GregTech_API.sBlockCasings2, 4, 0, 2, true); + a0.addBlockForPos(GregTech_API.sBlockCasings2, 4, 1, 0, true); + a0.addBlockForPos(GregTech_API.sBlockCasings2, 4, 1, 1, true); + a0.addBlockForPos(GregTech_API.sBlockCasings2, 4, 1, 2, true); + a0.addBlockForPos(GregTech_API.sBlockCasings2, 4, 2, 0, true); + a0.addBlockForPos(GregTech_API.sBlockCasings2, 4, 2, 1, true); + a0.addBlockForPos(GregTech_API.sBlockCasings2, 4, 2, 1, true); + a0.lock(true); + + //Layer one + MultiblockLayer a1 = new MultiblockLayer(3, 3); + a1.addBlockForPos(GregTech_API.sBlockCasings2, 4, 0, 0, true); + a1.addBlockForPos(GregTech_API.sBlockCasings2, 4, 0, 1, true); + a1.addBlockForPos(GregTech_API.sBlockCasings2, 4, 0, 2, true); + a1.addBlockForPos(GregTech_API.sBlockCasings2, 4, 1, 0, true); + a1.addBlockForPos(Blocks.air, 0, 1, 1, true); + a1.addController(1, 2); + a1.addBlockForPos(GregTech_API.sBlockCasings2, 4, 2, 0, true); + a1.addBlockForPos(GregTech_API.sBlockCasings2, 4, 2, 1, true); + a1.addBlockForPos(GregTech_API.sBlockCasings2, 4, 2, 1, true); + a1.lock(true); + + this.setLayer(a0, 0); + this.setLayer(a1, 1); + this.setLayer(a0, 2); + } + + @Override + public int getMinimumInputBus() { + return 0; + } + + @Override + public int getMinimumInputHatch() { + return 0; + } + + @Override + public int getMinimumOutputBus() { + return 0; + } + + @Override + public int getMinimumOutputHatch() { + return 0; + } + + @Override + public int getMinimumInputEnergy() { + return 1; + } + + @Override + public int getMinimumOutputEnergy() { + return 0; + } + + @Override + public int getMinimumMaintHatch() { + return 1; + } + + @Override + public int getMinimumMufflers() { + return 1; + } + +} diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/GMTE_AmazonPackager.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/GMTE_AmazonPackager.java index 2bda87a25e..9f23145b23 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/GMTE_AmazonPackager.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/GMTE_AmazonPackager.java @@ -59,7 +59,7 @@ public class GMTE_AmazonPackager extends GregtechMeta_MultiBlockBase { } @Override - public String[] getDescription() { + public String[] getTooltip() { return new String[]{ "Controller Block for the Amazon Warehouse", "This Multiblock is used for EXTREME packaging requirements", @@ -76,10 +76,7 @@ public class GMTE_AmazonPackager extends GregtechMeta_MultiBlockBase { "1x Energy Hatch (anywhere)", "1x Maintenance Hatch (anywhere)", "1x Muffler (anywhere)", - "Supply Depot. Casings for the rest (10 at least!)", - getPollutionTooltip(), - getMachineTooltip(), - CORE.GT_Tooltip + "Supply Depot. Casings for the rest (10 at least!)" }; } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/GregtechMTE_TeslaTower.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/GregtechMTE_TeslaTower.java index 43f317d25c..983a8204ec 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/GregtechMTE_TeslaTower.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/GregtechMTE_TeslaTower.java @@ -86,7 +86,7 @@ public class GregtechMTE_TeslaTower extends GregtechMeta_MultiBlockBase { } @Override - public String[] getDescription() { + public String[] getTooltip() { String casings = getCasingBlockItem().get(0).getDisplayName(); return new String[]{ "Controller Block for the Tesla Defence Tower Mk3200", @@ -98,10 +98,7 @@ public class GregtechMTE_TeslaTower extends GregtechMeta_MultiBlockBase { "1x3x1 " + casings + " pillar (Center of base)", "1x3x1 " + MaterialUtils.getMaterialName(getFrameMaterial()) + " Frame Boxes (Each pillar side and on top)", "1x Maintenance Hatch (One of base casings)", - "1x " + VN[getMinTier()] + "+ Energy Hatch (Any bottom layer casing)", - getPollutionTooltip(), - getMachineTooltip(), - CORE.GT_Tooltip}; + "1x " + VN[getMinTier()] + "+ Energy Hatch (Any bottom layer casing)"}; } private final void initFields() { diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialArcFurnace.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialArcFurnace.java index b2b4cdfda5..8b1a829061 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialArcFurnace.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialArcFurnace.java @@ -1,10 +1,5 @@ package gtPlusPlus.xmod.gregtech.common.tileentities.machines.multi.processing; -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.EnumChatFormatting; import gregtech.api.GregTech_API; import gregtech.api.enums.TAE; import gregtech.api.enums.Textures; @@ -16,12 +11,16 @@ import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.minecraft.ItemUtils; import gtPlusPlus.core.util.minecraft.PlayerUtils; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; public class GregtechMetaTileEntity_IndustrialArcFurnace extends GregtechMeta_MultiBlockBase { @@ -53,7 +52,7 @@ extends GregtechMeta_MultiBlockBase { } @Override - public String[] getDescription() { + public String[] getTooltip() { if (mCasingName.toLowerCase().contains(".name")) { mCasingName = ItemUtils.getLocalizedNameOfBlock(ModBlocks.blockCasings4Misc, 3); @@ -75,9 +74,7 @@ extends GregtechMeta_MultiBlockBase { "1x Muffler Hatch (anywhere)", "1x Maintenance Hatch (Back Center)", mCasingName+"s for the rest", - getPollutionTooltip(), - getMachineTooltip(), - CORE.GT_Tooltip}; + }; } @Override diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCentrifuge.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCentrifuge.java index 9a23567022..e59b7f57e9 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCentrifuge.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCentrifuge.java @@ -8,10 +8,11 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Maintenance; import gregtech.api.objects.GT_RenderedTexture; -import gregtech.api.util.*; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_Utility; +import gregtech.api.util.Recipe_GT; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.minecraft.PlayerUtils; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase; @@ -53,7 +54,7 @@ extends GregtechMeta_MultiBlockBase { } @Override - public String[] getDescription() { + public String[] getTooltip() { return new String[]{ "Controller Block for the Industrial Centrifuge", "125% faster than using single block machines of the same voltage", @@ -70,9 +71,7 @@ extends GregtechMeta_MultiBlockBase { "1x Muffler Hatch", "1x Energy Hatch [Blue]", "Centrifuge Casings for the rest (10 at least)", - getPollutionTooltip(), - getMachineTooltip(), - CORE.GT_Tooltip}; + }; } @Override diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCokeOven.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCokeOven.java index 9d3b3bbe18..00a576f8c7 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCokeOven.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCokeOven.java @@ -1,26 +1,19 @@ package gtPlusPlus.xmod.gregtech.common.tileentities.machines.multi.processing; -import gregtech.api.util.GT_Utility; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.item.ItemStack; - import gregtech.api.GregTech_API; import gregtech.api.enums.TAE; import gregtech.api.enums.Textures; -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.objects.GT_RenderedTexture; import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_Utility; import gregtech.api.util.Recipe_GT; - import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.lib.CORE; -import gtPlusPlus.core.util.Utils; -import gtPlusPlus.xmod.gregtech.api.gui.GUI_MultiMachine; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; +import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.ForgeDirection; public class GregtechMetaTileEntity_IndustrialCokeOven @@ -46,7 +39,7 @@ extends GregtechMeta_MultiBlockBase { } @Override - public String[] getDescription() { + public String[] getTooltip() { return new String[]{"Processes Logs and Coal into Charcoal and Coal Coke.", "Controller Block for the Industrial Coke Oven", "Gain 4% speed bonus per voltage tier increased", @@ -63,9 +56,7 @@ extends GregtechMeta_MultiBlockBase { "1x Maintenance Hatch (one of bottom)", "1x Muffler Hatch (top middle)", "Structural Coke Oven Casings for the rest", - getPollutionTooltip(), - getMachineTooltip(), - CORE.GT_Tooltip}; + }; } @Override diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCuttingMachine.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCuttingMachine.java index 3d12a1d7c7..dc7cc659f9 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCuttingMachine.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCuttingMachine.java @@ -40,7 +40,7 @@ extends GregtechMeta_MultiBlockBase { } @Override - public String[] getDescription() { + public String[] getTooltip() { return new String[]{ "Controller Block for the Industrial Cutting Factory", "200% faster than using single block machines of the same voltage", @@ -53,10 +53,7 @@ extends GregtechMeta_MultiBlockBase { "1x Input Hatch (top or bottom centered)", "1x Muffler Hatch (top)", "1x Maintenance Hatch (back centered)", - "Cutting Factory Frames for the rest (26 at least!)", - getPollutionTooltip(), - getMachineTooltip(), - CORE.GT_Tooltip + "Cutting Factory Frames for the rest (26 at least!)" }; } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialElectrolyzer.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialElectrolyzer.java index 0d676a3bfe..dd403207b7 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialElectrolyzer.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialElectrolyzer.java @@ -9,9 +9,9 @@ import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.lib.CORE; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; +import gtPlusPlus.xmod.gregtech.common.blueprint.Blueprint_Generic_3x3; import net.minecraft.block.Block; import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.ForgeDirection; @@ -37,7 +37,7 @@ extends GregtechMeta_MultiBlockBase { } @Override - public String[] getDescription() { + public String[] getTooltip() { return new String[]{"Controller Block for the Industrial Electrolyzer", "180% faster than using single block machines of the same voltage", "Only uses 90% of the eu/t normally required", @@ -51,10 +51,8 @@ extends GregtechMeta_MultiBlockBase { "1x Energy Hatch (anywhere)", "1x Maintenance Hatch (anywhere)", "1x Muffler (anywhere)", - "Electrolyzer Casings for the rest (10 at least!)", - getPollutionTooltip(), - getMachineTooltip(), - CORE.GT_Tooltip}; + "Electrolyzer Casings for the rest (10 at least!)" + }; } @Override @@ -90,8 +88,38 @@ extends GregtechMeta_MultiBlockBase { return checkRecipeGeneric(2* GT_Utility.getTier(this.getMaxInputVoltage()), 90, 180); } + private class Blueprint_Electrolyzer extends Blueprint_Generic_3x3 { + + public Blueprint_Electrolyzer() { + super(TAE.GTPP_INDEX(5)); + } + + @Override + public int getMinimumInputBus() { + return 0; + } + + @Override + public int getMinimumInputHatch() { + return 0; + } + + @Override + public int getMinimumOutputBus() { + return 0; + } + + @Override + public int getMinimumOutputHatch() { + return 0; + } + + } + + public Blueprint_Electrolyzer mBluePrint; + @Override - public boolean checkMachine(final IGregTechTileEntity aBaseMetaTileEntity, final ItemStack aStack) { + public boolean checkMachine(final IGregTechTileEntity aBaseMetaTileEntity, final ItemStack aStack) {/* final int xDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetX; final int zDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetZ; if (!aBaseMetaTileEntity.getAirOffset(xDir, 0, zDir)) { @@ -116,6 +144,12 @@ extends GregtechMeta_MultiBlockBase { } } return tAmount >= 10; + */ + + if (mBluePrint == null) { + mBluePrint = new Blueprint_Electrolyzer(); + } + return mBluePrint.checkMachine(aBaseMetaTileEntity); } @Override diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialExtruder.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialExtruder.java index ffbcfd36db..8fc7d369bd 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialExtruder.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialExtruder.java @@ -2,10 +2,6 @@ package gtPlusPlus.xmod.gregtech.common.tileentities.machines.multi.processing; import java.util.ArrayList; -import gregtech.api.util.GT_Utility; -import net.minecraft.block.Block; -import net.minecraft.item.ItemStack; - import gregtech.api.GregTech_API; import gregtech.api.enums.TAE; import gregtech.api.enums.Textures; @@ -17,12 +13,13 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Maintenance; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_Recipe; - +import gregtech.api.util.GT_Utility; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.lib.CORE; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; +import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidStack; public class GregtechMetaTileEntity_IndustrialExtruder @@ -47,7 +44,7 @@ extends GregtechMeta_MultiBlockBase { } @Override - public String[] getDescription() { + public String[] getTooltip() { return new String[]{"Controller Block for the Material Extruder", "250% faster than using single block machines of the same voltage", "Processes four items per voltage tier", @@ -62,10 +59,8 @@ extends GregtechMeta_MultiBlockBase { "1x Energy Hatch (anywhere)", "1x Muffler Hatch (anywhere)", "1x Maintenance Hatch (Back Center)", - "Inconel Reinforced Casings for the rest (28 at least!)", - getPollutionTooltip(), - getMachineTooltip(), - CORE.GT_Tooltip}; + "Inconel Reinforced Casings for the rest (28 at least!)" + }; } @Override diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMacerator.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMacerator.java index cab062b7e0..e2a336f3d4 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMacerator.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMacerator.java @@ -2,9 +2,6 @@ package gtPlusPlus.xmod.gregtech.common.tileentities.machines.multi.processing; import java.util.Random; -import net.minecraft.block.Block; -import net.minecraft.item.ItemStack; - import gregtech.api.GregTech_API; import gregtech.api.enums.TAE; import gregtech.api.enums.Textures; @@ -15,12 +12,12 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Outpu import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; - import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.lib.CORE; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; +import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.ForgeDirection; public class GregtechMetaTileEntity_IndustrialMacerator @@ -46,7 +43,7 @@ extends GregtechMeta_MultiBlockBase { } @Override - public String[] getDescription() { + public String[] getTooltip() { return new String[]{ "Controller Block for the Industrial Maceration Stack", "60% faster than using single block machines of the same voltage", @@ -61,10 +58,8 @@ extends GregtechMeta_MultiBlockBase { "1x Maintenance Hatch (Any casing)", "1x Energy Hatch (Any casing)", "1x Muffler Hatch (Any casing)", - "Maceration Stack Casings for the rest (26 at least!)", - getPollutionTooltip(), - getMachineTooltip(), - CORE.GT_Tooltip}; + "Maceration Stack Casings for the rest (26 at least!)" + }; } @Override diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMixer.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMixer.java index 1492175ffc..1891da25a4 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMixer.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMixer.java @@ -13,7 +13,6 @@ import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.util.minecraft.ItemUtils; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; @@ -54,7 +53,7 @@ extends GregtechMeta_MultiBlockBase { } @Override - public String[] getDescription() { + public String[] getTooltip() { if (mCasingName.toLowerCase().contains(".name")) { mCasingName = ItemUtils.getLocalizedNameOfBlock(ModBlocks.blockCasings3Misc, 2); @@ -76,9 +75,7 @@ extends GregtechMeta_MultiBlockBase { "1x Muffler Hatch (anywhere)", mCasingName+"s for the rest (16 at least!)", mCasingName2+"s for the internal blocks (2)", - getPollutionTooltip(), - getMachineTooltip(), - CORE.GT_Tooltip}; + }; } @Override diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMultiMachine.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMultiMachine.java index cf780cbedf..c63b742718 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMultiMachine.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMultiMachine.java @@ -7,19 +7,27 @@ import java.util.List; import org.apache.commons.lang3.ArrayUtils; -import gregtech.api.enums.*; +import gregtech.api.enums.Element; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TAE; +import gregtech.api.enums.Textures; 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_InputBus; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_OutputBus; import gregtech.api.objects.GT_RenderedTexture; -import gregtech.api.util.*; +import gregtech.api.util.GT_LanguageManager; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_Utility; import gregtech.common.items.behaviors.Behaviour_DataOrb; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.api.objects.data.AutoMap; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.recipe.common.CI; import gtPlusPlus.core.util.minecraft.ItemUtils; import gtPlusPlus.core.util.minecraft.PlayerUtils; @@ -79,7 +87,7 @@ extends GregtechMeta_MultiBlockBase { @Override - public String[] getDescription() { + public String[] getTooltip() { String[] aBuiltStrings = new String[3]; aBuiltStrings[0] = aToolTipNames[0] + ", " + aToolTipNames[1] + ", " + aToolTipNames[2]; aBuiltStrings[1] = aToolTipNames[3] + ", " + aToolTipNames[4] + ", " + aToolTipNames[5]; @@ -92,11 +100,9 @@ extends GregtechMeta_MultiBlockBase { "Controller (front centered)", "6 Multi-Use casings required (Minimum)", "Read Multi-Machine Manual for extra information", - getPollutionTooltip(), "Machine Type: [A] - " + EnumChatFormatting.YELLOW + aBuiltStrings[0] + EnumChatFormatting.RESET, "Machine Type: [B] - " + EnumChatFormatting.YELLOW + aBuiltStrings[1] + EnumChatFormatting.RESET, - "Machine Type: [C] - " + EnumChatFormatting.YELLOW + aBuiltStrings[2] + EnumChatFormatting.RESET, - CORE.GT_Tooltip}; + "Machine Type: [C] - " + EnumChatFormatting.YELLOW + aBuiltStrings[2] + EnumChatFormatting.RESET}; } @Override diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialPlatePress.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialPlatePress.java index 36a880633f..751b74376b 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialPlatePress.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialPlatePress.java @@ -2,11 +2,6 @@ package gtPlusPlus.xmod.gregtech.common.tileentities.machines.multi.processing; import java.util.ArrayList; -import gregtech.api.util.GT_Utility; -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import gregtech.api.GregTech_API; import gregtech.api.enums.TAE; import gregtech.api.enums.Textures; @@ -16,13 +11,16 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_InputBus; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_Recipe; - +import gregtech.api.util.GT_Utility; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.minecraft.PlayerUtils; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; @@ -49,7 +47,7 @@ public class GregtechMetaTileEntity_IndustrialPlatePress extends GregtechMeta_Mu } @Override - public String[] getDescription() { + public String[] getTooltip() { return new String[]{"Controller Block for Advanced Bending & Forming", "Can be configured with a screwdriver to activate Forming Press Mode", "500% faster than using single block machines of the same voltage", @@ -63,10 +61,8 @@ public class GregtechMetaTileEntity_IndustrialPlatePress extends GregtechMeta_Mu "1x Energy Hatch (anywhere)", "1x Maintenance Hatch (anywhere)", "1x Muffler Hatch (anywhere)", - "Material Press Machine Casings for the rest (12 at least!)", - getPollutionTooltip(), - getMachineTooltip(), - CORE.GT_Tooltip}; + "Material Press Machine Casings for the rest (12 at least!)" + }; } @Override diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialSifter.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialSifter.java index f476ad520a..fec12c79e2 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialSifter.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialSifter.java @@ -14,7 +14,6 @@ import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.lib.CORE; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; import net.minecraft.block.Block; @@ -44,7 +43,7 @@ extends GregtechMeta_MultiBlockBase { } @Override - public String[] getDescription() { + public String[] getTooltip() { return new String[]{ "Controller Block for the Industrial Sifter", "400% faster than single-block machines of the same voltage", @@ -59,10 +58,8 @@ extends GregtechMeta_MultiBlockBase { "1x Muffler Hatch (Any top or bottom edge casing)", "1x Energy Hatch (Any top or bottom edge casing)", "18x Sieve Grate (Top and Middle 3x3)", - "Sieve Casings for the rest (35 min)", - getPollutionTooltip(), - getMachineTooltip(), - CORE.GT_Tooltip}; + "Sieve Casings for the rest (35 min)" + }; } @Override diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialThermalCentrifuge.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialThermalCentrifuge.java index 685efe5c7a..52a6ad0172 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialThermalCentrifuge.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialThermalCentrifuge.java @@ -1,8 +1,5 @@ package gtPlusPlus.xmod.gregtech.common.tileentities.machines.multi.processing; -import net.minecraft.block.Block; -import net.minecraft.item.ItemStack; - import gregtech.api.GregTech_API; import gregtech.api.enums.TAE; import gregtech.api.enums.Textures; @@ -14,9 +11,10 @@ import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.lib.CORE; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; +import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.ForgeDirection; public class GregtechMetaTileEntity_IndustrialThermalCentrifuge @@ -40,7 +38,7 @@ extends GregtechMeta_MultiBlockBase { } @Override - public String[] getDescription() { + public String[] getTooltip() { return new String[]{ "Controller Block for the Industrial Thermal Centrifuge", "150% faster than using single block machines of the same voltage", @@ -54,9 +52,6 @@ extends GregtechMeta_MultiBlockBase { "1x Energy Hatch (Any bottom layer casing)", "Thermal processing Casings for the rest (8 at least!)", "Noise Hazard Sign Blocks also count as valid casings", - getPollutionTooltip(), - getMachineTooltip(), - CORE.GT_Tooltip }; } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialVacuumFreezer.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialVacuumFreezer.java index 0bf9ce5a5d..189c9a62aa 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialVacuumFreezer.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialVacuumFreezer.java @@ -54,7 +54,7 @@ public class GregtechMetaTileEntity_IndustrialVacuumFreezer extends GregtechMeta return "Vacuum Freezer"; } - public String[] getDescription() { + public String[] getTooltip() { if (mCasingName.toLowerCase().contains(".name")) { mCasingName = ItemUtils.getLocalizedNameOfBlock(ModBlocks.blockCasings3Misc, 10); @@ -76,9 +76,7 @@ public class GregtechMetaTileEntity_IndustrialVacuumFreezer extends GregtechMeta "1x Maintenance Hatch (Any casing)", "1x Energy Hatch (Any casing)", mCasingName+"s for the rest (10 at least!)", - getPollutionTooltip(), - getMachineTooltip(), - CORE.GT_Tooltip}; + }; } public ITexture[] getTexture(final IGregTechTileEntity aBaseMetaTileEntity, final byte aSide, final byte aFacing, diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialWashPlant.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialWashPlant.java index c6ba185e77..9218334b8a 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialWashPlant.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialWashPlant.java @@ -50,7 +50,7 @@ extends GregtechMeta_MultiBlockBase { } @Override - public String[] getDescription() { + public String[] getTooltip() { return new String[]{ "Controller Block for the Industrial Ore Washing Plant", "Can be configured with a screwdriver to also process Chemical Bathing", @@ -67,10 +67,7 @@ extends GregtechMeta_MultiBlockBase { "1x Muffler Hatch (Any casing)", "1x Maintenance Hatch (Any casing)", "1x Energy Hatch (Any casing)", - "Wash Plant Casings for the rest", - getPollutionTooltip(), - getMachineTooltip(), - CORE.GT_Tooltip + "Wash Plant Casings for the rest" }; } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialWireMill.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialWireMill.java index a380bf0a26..bca5eebf0a 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialWireMill.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialWireMill.java @@ -41,7 +41,7 @@ extends GregtechMeta_MultiBlockBase { } @Override - public String[] getDescription() { + public String[] getTooltip() { return new String[]{ "Controller Block for the Industrial Wire Factory", "200% faster than using single block machines of the same voltage", @@ -53,10 +53,7 @@ extends GregtechMeta_MultiBlockBase { "1x Energy Hatch (top or bottom centered)", "1x Muffler Hatch (top or bottom centered)", "1x Maintenance Hatch (back centered)", - "Wire Factory Casings for the rest (32 at least!)", - getPollutionTooltip(), - getMachineTooltip(), - CORE.GT_Tooltip + "Wire Factory Casings for the rest (32 at least!)" }; } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_EBF.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_EBF.java index 9b099744a5..1c6d149c0e 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_EBF.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_EBF.java @@ -90,7 +90,7 @@ public class GregtechMetaTileEntity_Adv_EBF extends GregtechMeta_MultiBlockBase return new GregtechMetaTileEntity_Adv_EBF(this.mName); } - public String[] getDescription() { + public String[] getTooltip() { if (mCasingName.toLowerCase().contains(".name")) { mCasingName = ItemUtils.getLocalizedNameOfBlock(ModBlocks.blockCasings3Misc, 11); @@ -114,8 +114,8 @@ public class GregtechMetaTileEntity_Adv_EBF extends GregtechMeta_MultiBlockBase " Recovery scales with Muffler Hatch tier", mCasingName + "s for the rest", "Each 900K over the min. Heat Capacity grants 5% speedup (multiplicatively)", "Each 1800K over the min. Heat Capacity allows for one upgraded overclock", - "Upgraded overclocks reduce recipe time to 25% and increase EU/t to 400%", getPollutionTooltip(), - getMachineTooltip(), CORE.GT_Tooltip }; + "Upgraded overclocks reduce recipe time to 25% and increase EU/t to 400%" + }; } public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_Implosion.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_Implosion.java index be0747803c..9c37c9384c 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_Implosion.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_Implosion.java @@ -41,7 +41,7 @@ extends GregtechMeta_MultiBlockBase { return "Implosion Compressor"; } - public String[] getDescription() { + public String[] getTooltip() { if (mCasingName.contains("gt.blockcasings")) { mCasingName = ItemList.Casing_RobustTungstenSteel.get(1).getDisplayName(); } @@ -54,10 +54,8 @@ extends GregtechMeta_MultiBlockBase { "1x Maintenance Hatch (Any casing)", "1x Muffler Hatch (Any casing)", "1x Energy Hatch (Any casing)", - mCasingName+"s for the rest (16 at least!)", - getPollutionTooltip(), - getMachineTooltip(), - CORE.GT_Tooltip}; + mCasingName+"s for the rest (16 at least!)" + }; } public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { @@ -66,7 +64,7 @@ extends GregtechMeta_MultiBlockBase { } return new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[48]}; } - + @Override public boolean hasSlotInGUI() { return true; @@ -76,7 +74,7 @@ extends GregtechMeta_MultiBlockBase { public String getCustomGUIResourceName() { return "ImplosionCompressor"; } - + @Override public boolean requiresVanillaGtGUI() { return true; diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GT4Entity_AutoCrafter.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GT4Entity_AutoCrafter.java index bb6a3c9631..c0cf169f04 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GT4Entity_AutoCrafter.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GT4Entity_AutoCrafter.java @@ -125,7 +125,7 @@ public class GT4Entity_AutoCrafter extends GregtechMeta_MultiBlockBase { } @Override - public String[] getDescription() { + public String[] getTooltip() { return new String[] { "Highly Advanced Autocrafter", "Right Click with a Screwdriver to change