aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/nei
diff options
context:
space:
mode:
authorAlbi <12825442+Flanisch@users.noreply.github.com>2022-08-15 21:27:24 +0200
committerGitHub <noreply@github.com>2022-08-15 21:27:24 +0200
commit43c014a8db9ad4d44c19190718835a7596dc0a2d (patch)
tree173ca882874af36bde55889ae585dc9111825184 /src/main/java/gregtech/nei
parented8fb594433346dfd37235c0604851436e0980df (diff)
downloadGT5-Unofficial-43c014a8db9ad4d44c19190718835a7596dc0a2d.tar.gz
GT5-Unofficial-43c014a8db9ad4d44c19190718835a7596dc0a2d.tar.bz2
GT5-Unofficial-43c014a8db9ad4d44c19190718835a7596dc0a2d.zip
Overriding GUI colors with .mcmeta (#1261)
* Implemented gui textcolor override with .mcmeta files * cleanup * Added shared class to reduce code duplication * Moved #drawLine back to GT_NEI_DefaultHandler
Diffstat (limited to 'src/main/java/gregtech/nei')
-rw-r--r--src/main/java/gregtech/nei/GT_NEI_AssLineHandler.java52
-rw-r--r--src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java12
-rw-r--r--src/main/java/gregtech/nei/RecipeMapHandler.java14
3 files changed, 46 insertions, 32 deletions
diff --git a/src/main/java/gregtech/nei/GT_NEI_AssLineHandler.java b/src/main/java/gregtech/nei/GT_NEI_AssLineHandler.java
index 35da96918f..3fdefd07d9 100644
--- a/src/main/java/gregtech/nei/GT_NEI_AssLineHandler.java
+++ b/src/main/java/gregtech/nei/GT_NEI_AssLineHandler.java
@@ -12,7 +12,6 @@ import codechicken.nei.recipe.GuiUsageRecipe;
import codechicken.nei.recipe.TemplateRecipeHandler;
import gregtech.GT_Mod;
import gregtech.api.enums.GT_Values;
-import gregtech.api.enums.GuiColors;
import gregtech.api.enums.OrePrefixes;
import gregtech.api.gui.GT_GUIContainer_BasicMachine;
import gregtech.api.objects.ItemData;
@@ -23,14 +22,17 @@ import gregtech.api.util.GT_Recipe.GT_Recipe_WithAlt;
import gregtech.api.util.GT_Utility;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.inventory.GuiContainer;
+import net.minecraft.client.resources.IResource;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fluids.FluidContainerRegistry;
import net.minecraftforge.fluids.FluidStack;
import org.lwjgl.opengl.GL11;
import java.awt.*;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
@@ -47,7 +49,7 @@ public class GT_NEI_AssLineHandler extends RecipeMapHandler {
* Can be referenced from cached recipes.
*/
public static int cycleTicksStatic = Math.abs((int) System.currentTimeMillis());
- private final GuiColors textColor = GuiColors.NEIText;
+ private String mRecipeName;
static {
GuiContainerManager.addInputHandler(new GT_RectHandler());
@@ -65,10 +67,6 @@ public class GT_NEI_AssLineHandler extends RecipeMapHandler {
return result;
}
- public static void drawText(int aX, int aY, String aString, int aColor) {
- Minecraft.getMinecraft().fontRenderer.drawString(aString, aX, aY, aColor);
- }
-
@Override
public TemplateRecipeHandler newInstance() {
NEI_GT_Config.ALH=new GT_NEI_AssLineHandler(this.mRecipeMap);
@@ -201,7 +199,11 @@ public class GT_NEI_AssLineHandler extends RecipeMapHandler {
@Override
public String getRecipeName() {
- return GT_LanguageManager.getTranslation(this.mRecipeMap.mUnlocalizedName);
+ if (mRecipeName == null) {
+ mRecipeName = GT_LanguageManager.getTranslation(this.mRecipeMap.mUnlocalizedName);
+ updateOverrideTextColor();
+ }
+ return mRecipeName;
}
@Override
@@ -245,66 +247,66 @@ public class GT_NEI_AssLineHandler extends RecipeMapHandler {
String[] recipeDesc = recipe.getNeiDesc();
if (recipeDesc == null) {
if (tEUt != 0) {
- drawText(10, 73, trans("152","Total: ") + GT_Utility.formatNumbers((long) tDuration * tEUt) + " EU", textColor.getColor());
- drawText(10, 83, trans("153","Usage: ") + GT_Utility.formatNumbers(tEUt) + " EU/t", textColor.getColor());
+ drawText(10, 73, trans("152","Total: ") + GT_Utility.formatNumbers((long) tDuration * tEUt) + " EU", 0xFF000000);
+ drawText(10, 83, trans("153","Usage: ") + GT_Utility.formatNumbers(tEUt) + " EU/t", 0xFF000000);
if (this.mRecipeMap.mShowVoltageAmperageInNEI) {
int voltage = tEUt / this.mRecipeMap.mAmperage;
byte tier = GT_Utility.getTier(voltage);
if (tier < 0 || tier >= 16) {
- drawText(10, 93, trans("154", "Voltage: ") + GT_Utility.formatNumbers(voltage) + " EU", textColor.getColor());
+ drawText(10, 93, trans("154", "Voltage: ") + GT_Utility.formatNumbers(voltage) + " EU", 0xFF000000);
} else {
- drawText(10, 93, trans("154","Voltage: ") + GT_Utility.formatNumbers(voltage) + " EU (" + GT_Values.VN[tier] + ")", textColor.getColor());
+ drawText(10, 93, trans("154","Voltage: ") + GT_Utility.formatNumbers(voltage) + " EU (" + GT_Values.VN[tier] + ")", 0xFF000000);
}
- drawText(10, 103, trans("155","Amperage: ") + GT_Utility.formatNumbers(this.mRecipeMap.mAmperage), textColor.getColor());
+ drawText(10, 103, trans("155","Amperage: ") + GT_Utility.formatNumbers(this.mRecipeMap.mAmperage), 0xFF000000);
} else {
- drawText(10, 93, trans("156","Voltage: unspecified"), textColor.getColor());
- drawText(10, 103, trans("157","Amperage: unspecified"), textColor.getColor());
+ drawText(10, 93, trans("156","Voltage: unspecified"), 0xFF000000);
+ drawText(10, 103, trans("157","Amperage: unspecified"), 0xFF000000);
}
}
if (tDuration > 0) {
- drawText(10, 113, trans("158","Time: ") + GT_Utility.formatNumbers(0.05d * tDuration) + trans("161"," secs"), textColor.getColor());
+ drawText(10, 113, trans("158","Time: ") + GT_Utility.formatNumbers(0.05d * tDuration) + trans("161"," secs"), 0xFF000000);
}
int tSpecial = ((CachedDefaultRecipe) this.arecipes.get(aRecipeIndex)).mRecipe.mSpecialValue;
boolean specialDrew = false;
if (tSpecial == -100 && GT_Mod.gregtechproxy.mLowGravProcessing) {
- drawText(10, 123, trans("159","Needs Low Gravity"), textColor.getColor());
+ drawText(10, 123, trans("159","Needs Low Gravity"), 0xFF000000);
specialDrew = true;
} else if (tSpecial == -200 && GT_Mod.gregtechproxy.mEnableCleanroom) {
- drawText(10, 123, trans("160","Needs Cleanroom"), textColor.getColor());
+ drawText(10, 123, trans("160","Needs Cleanroom"), 0xFF000000);
specialDrew = true;
} else if (tSpecial == -201) {
- drawText(10, 123, trans("206","Scan for Assembly Line"), textColor.getColor());
+ drawText(10, 123, trans("206","Scan for Assembly Line"), 0xFF000000);
specialDrew = true;
} else if ((GT_Utility.isStringValid(this.mRecipeMap.mNEISpecialValuePre)) || (GT_Utility.isStringValid(this.mRecipeMap.mNEISpecialValuePost))) {
- drawText(10, 123, this.mRecipeMap.mNEISpecialValuePre + GT_Utility.formatNumbers(tSpecial * this.mRecipeMap.mNEISpecialValueMultiplier) + this.mRecipeMap.mNEISpecialValuePost, textColor.getColor());
+ drawText(10, 123, this.mRecipeMap.mNEISpecialValuePre + GT_Utility.formatNumbers(tSpecial * this.mRecipeMap.mNEISpecialValueMultiplier) + this.mRecipeMap.mNEISpecialValuePost, 0xFF000000);
specialDrew = true;
}
int y = 123 + (specialDrew ? 10 : 0);
if (GT_Mod.gregtechproxy.mNEIRecipeOwner) {
if (recipe.owners.size() > 1) {
- drawText(10, y, EnumChatFormatting.ITALIC + GT_Utility.trans("226", "Original Recipe by: ") + recipe.owners.get(0).getName(), textColor.getColor());
+ drawText(10, y, EnumChatFormatting.ITALIC + GT_Utility.trans("226", "Original Recipe by: ") + recipe.owners.get(0).getName(), 0xFF000000);
y += 10;
for (int i = 1; i < recipe.owners.size(); i++) {
- drawText(10, y, EnumChatFormatting.ITALIC + GT_Utility.trans("227", "Modified by: ") + recipe.owners.get(i).getName(), textColor.getColor());
+ drawText(10, y, EnumChatFormatting.ITALIC + GT_Utility.trans("227", "Modified by: ") + recipe.owners.get(i).getName(), 0xFF000000);
y += 10;
}
} else if (recipe.owners.size() > 0) {
- drawText(10, y, EnumChatFormatting.ITALIC + GT_Utility.trans("225", "Recipe by: ") + recipe.owners.get(0).getName(), textColor.getColor());
+ drawText(10, y, EnumChatFormatting.ITALIC + GT_Utility.trans("225", "Recipe by: ") + recipe.owners.get(0).getName(), 0xFF000000);
y += 10;
}
}
if (GT_Mod.gregtechproxy.mNEIRecipeOwnerStackTrace && recipe.stackTraces != null && !recipe.stackTraces.isEmpty()) {
- drawText(10, y, "stackTrace:", textColor.getColor());
+ drawText(10, y, "stackTrace:", 0xFF000000);
y += 10;
for (StackTraceElement stackTrace : recipe.stackTraces.get(0)) {
- drawText(10, y, stackTrace.toString(), textColor.getColor());
+ drawText(10, y, stackTrace.toString(), 0xFF000000);
y += 10;
}
}
} else {
int i = 0;
for (String descLine : recipeDesc) {
- drawText(10, 73 + 10 * i, descLine, textColor.getColor());
+ drawText(10, 73 + 10 * i, descLine, 0xFF000000);
i++;
}
}
diff --git a/src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java b/src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java
index bda4ac8c31..eeea2374ba 100644
--- a/src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java
+++ b/src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java
@@ -15,7 +15,6 @@ import codechicken.nei.recipe.RecipeCatalysts;
import codechicken.nei.recipe.TemplateRecipeHandler;
import gregtech.GT_Mod;
import gregtech.api.enums.GT_Values;
-import gregtech.api.enums.GuiColors;
import gregtech.api.enums.OrePrefixes;
import gregtech.api.gui.GT_GUIContainer;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
@@ -33,9 +32,11 @@ import gregtech.common.power.UnspecifiedEUPower;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.client.gui.inventory.GuiContainer;
+import net.minecraft.client.resources.IResource;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fluids.FluidStack;
import org.apache.commons.lang3.Range;
import org.lwjgl.opengl.GL11;
@@ -43,6 +44,7 @@ import org.lwjgl.opengl.GL11;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.awt.*;
+import java.io.IOException;
import java.lang.ref.SoftReference;
import java.util.ArrayList;
import java.util.Collections;
@@ -69,7 +71,6 @@ public class GT_NEI_DefaultHandler extends RecipeMapHandler {
private String mRecipeName; // Name of the handler displayed on top
private NEIHandlerAbsoluteTooltip mRecipeNameTooltip;
private static final int RECIPE_NAME_WIDTH = 140;
- private final GuiColors textColor = GuiColors.NEIText;
/**
* Static version of {@link TemplateRecipeHandler#cycleticks}.
@@ -121,10 +122,6 @@ public class GT_NEI_DefaultHandler extends RecipeMapHandler {
return cache;
}
- public static void drawText(int aX, int aY, String aString, int aColor) {
- Minecraft.getMinecraft().fontRenderer.drawString(aString, aX, aY, aColor);
- }
-
@Override
public TemplateRecipeHandler newInstance() {
return new GT_NEI_DefaultHandler(this.mRecipeMap);
@@ -262,6 +259,7 @@ public class GT_NEI_DefaultHandler extends RecipeMapHandler {
public String getRecipeName() {
if (mRecipeName == null) {
mRecipeName = computeRecipeName();
+ updateOverrideTextColor();
}
return mRecipeName;
}
@@ -524,7 +522,7 @@ public class GT_NEI_DefaultHandler extends RecipeMapHandler {
}
protected void drawLine(int lineNumber, String line) {
- drawText(10, getDescriptionYOffset() + lineNumber * 10, line, textColor.getColor());
+ drawText(10, getDescriptionYOffset() + lineNumber * 10, line, 0xFF000000);
}
protected int getDescriptionYOffset() {
diff --git a/src/main/java/gregtech/nei/RecipeMapHandler.java b/src/main/java/gregtech/nei/RecipeMapHandler.java
index aac322d303..954f7ae7ba 100644
--- a/src/main/java/gregtech/nei/RecipeMapHandler.java
+++ b/src/main/java/gregtech/nei/RecipeMapHandler.java
@@ -1,7 +1,9 @@
package gregtech.nei;
import codechicken.nei.recipe.TemplateRecipeHandler;
+import gregtech.api.gui.GT_GUIColorOverride;
import gregtech.api.util.GT_Recipe;
+import net.minecraft.client.Minecraft;
/**
* This abstract class represents an NEI handler that is constructed from a
@@ -10,6 +12,9 @@ import gregtech.api.util.GT_Recipe;
abstract class RecipeMapHandler extends TemplateRecipeHandler {
protected final GT_Recipe.GT_Recipe_Map mRecipeMap;
+ private GT_GUIColorOverride colorOverride;
+ private int overrideTextColor = -1;
+
RecipeMapHandler(GT_Recipe.GT_Recipe_Map mRecipeMap) {
this.mRecipeMap = mRecipeMap;
}
@@ -17,4 +22,13 @@ abstract class RecipeMapHandler extends TemplateRecipeHandler {
GT_Recipe.GT_Recipe_Map getRecipeMap() {
return mRecipeMap;
}
+
+ protected void updateOverrideTextColor() {
+ colorOverride = new GT_GUIColorOverride(mRecipeMap.mNEIGUIPath);
+ overrideTextColor = colorOverride.getTextColorOrDefault("nei", -1);
+ }
+
+ protected void drawText(int aX, int aY, String aString, int aColor) {
+ Minecraft.getMinecraft().fontRenderer.drawString(aString, aX, aY, overrideTextColor != -1 ? overrideTextColor : aColor);
+ }
}