From deb860c73432cfa0796645c3893b0128f77d0217 Mon Sep 17 00:00:00 2001 From: Maxim Date: Mon, 10 Apr 2023 15:23:27 +0200 Subject: Added tooltip line which displays the machine color, if any (#1868) * Added tooltip line which displays the machine color, if any * Added chat formatting color to dyes enum * Minor cleanup --- src/main/java/gregtech/api/enums/Dyes.java | 39 +++++++++++++--------- .../gregtech/common/blocks/GT_Item_Machines.java | 12 +++++++ 2 files changed, 35 insertions(+), 16 deletions(-) (limited to 'src/main/java/gregtech') diff --git a/src/main/java/gregtech/api/enums/Dyes.java b/src/main/java/gregtech/api/enums/Dyes.java index 165545b26c..3b87e9ff67 100644 --- a/src/main/java/gregtech/api/enums/Dyes.java +++ b/src/main/java/gregtech/api/enums/Dyes.java @@ -2,6 +2,7 @@ package gregtech.api.enums; import java.util.ArrayList; +import net.minecraft.util.EnumChatFormatting; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; @@ -14,22 +15,22 @@ public enum Dyes implements IColorModulationContainer { /** * The valid Colors, see VALUES Array below */ - dyeBlack(0, 32, 32, 32, "Black"), - dyeRed(1, 255, 0, 0, "Red"), - dyeGreen(2, 0, 255, 0, "Green"), - dyeBrown(3, 96, 64, 0, "Brown"), - dyeBlue(4, 0, 32, 255, "Blue"), - dyePurple(5, 128, 0, 128, "Purple"), - dyeCyan(6, 0, 255, 255, "Cyan"), - dyeLightGray(7, 192, 192, 192, "Light Gray"), - dyeGray(8, 128, 128, 128, "Gray"), - dyePink(9, 255, 192, 192, "Pink"), - dyeLime(10, 128, 255, 128, "Lime"), - dyeYellow(11, 255, 255, 0, "Yellow"), - dyeLightBlue(12, 96, 128, 255, "Light Blue"), - dyeMagenta(13, 255, 0, 255, "Magenta"), - dyeOrange(14, 255, 128, 0, "Orange"), - dyeWhite(15, 255, 255, 255, "White"), + dyeBlack(0, 32, 32, 32, "Black", EnumChatFormatting.BLACK), + dyeRed(1, 255, 0, 0, "Red", EnumChatFormatting.RED), + dyeGreen(2, 0, 255, 0, "Green", EnumChatFormatting.DARK_GREEN), + dyeBrown(3, 96, 64, 0, "Brown", EnumChatFormatting.GOLD), + dyeBlue(4, 0, 32, 255, "Blue", EnumChatFormatting.DARK_BLUE), + dyePurple(5, 128, 0, 128, "Purple", EnumChatFormatting.DARK_PURPLE), + dyeCyan(6, 0, 255, 255, "Cyan", EnumChatFormatting.DARK_AQUA), + dyeLightGray(7, 192, 192, 192, "Light Gray", EnumChatFormatting.GRAY), + dyeGray(8, 128, 128, 128, "Gray", EnumChatFormatting.DARK_GRAY), + dyePink(9, 255, 192, 192, "Pink", EnumChatFormatting.LIGHT_PURPLE), + dyeLime(10, 128, 255, 128, "Lime", EnumChatFormatting.GREEN), + dyeYellow(11, 255, 255, 0, "Yellow", EnumChatFormatting.YELLOW), + dyeLightBlue(12, 96, 128, 255, "Light Blue", EnumChatFormatting.AQUA), + dyeMagenta(13, 255, 0, 255, "Magenta", EnumChatFormatting.LIGHT_PURPLE), + dyeOrange(14, 255, 128, 0, "Orange", EnumChatFormatting.GOLD), + dyeWhite(15, 255, 255, 255, "White", EnumChatFormatting.WHITE), /** * The NULL Color */ @@ -48,13 +49,19 @@ public enum Dyes implements IColorModulationContainer { public final String mName; public final short[] mRGBa; public final short[] mOriginalRGBa; + public final EnumChatFormatting formatting; private final ArrayList mFluidDyes = new GT_ArrayList<>(false, 1); Dyes(int aIndex, int aR, int aG, int aB, String aName) { + this(aIndex, aR, aR, aB, aName, EnumChatFormatting.GRAY); + } + + Dyes(int aIndex, int aR, int aG, int aB, String aName, EnumChatFormatting formatting) { mIndex = (byte) aIndex; mName = aName; mRGBa = new short[] { (short) aR, (short) aG, (short) aB, 0 }; mOriginalRGBa = mRGBa.clone(); + this.formatting = formatting; } public static Dyes get(int aColor) { diff --git a/src/main/java/gregtech/common/blocks/GT_Item_Machines.java b/src/main/java/gregtech/common/blocks/GT_Item_Machines.java index c947c50091..3e946633b3 100644 --- a/src/main/java/gregtech/common/blocks/GT_Item_Machines.java +++ b/src/main/java/gregtech/common/blocks/GT_Item_Machines.java @@ -23,6 +23,7 @@ import net.minecraftforge.fluids.IFluidContainerItem; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.GregTech_API; +import gregtech.api.enums.Dyes; import gregtech.api.enums.Materials; import gregtech.api.interfaces.ISecondaryDescribable; import gregtech.api.interfaces.metatileentity.IConnectable; @@ -158,6 +159,17 @@ public class GT_Item_Machines extends ItemBlock implements IFluidContainerItem { } CoverableTileEntity.addInstalledCoversInformation(aNBT, aList); + if (aNBT.hasKey("mColor") && aNBT.getByte("mColor") != -1) { + aList.add( + GT_LanguageManager.addStringLocalization( + "GT_TileEntity_COLORED", + "Colored", + !GregTech_API.sPostloadFinished) + " (" + + Dyes.get(aNBT.getByte("mColor") - 1).formatting + + Dyes.get(aNBT.getByte("mColor") - 1).mName + + EnumChatFormatting.GRAY + + ")"); + } } } catch (Throwable e) { GT_FML_LOGGER.error("addInformation", e); -- cgit