mirror of
https://github.com/GTNewHorizons/CodeChickenCore.git
synced 2026-11-12 00:07:33 +00:00
Added color override helper (#43)
This commit is contained in:
1 parent
f02dbc956c
commit
6e90633d31
10 files changed
+177
-21
No files matched your search
@@ -2,12 +2,16 @@ package codechicken.core;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
import net.minecraft.client.resources.IReloadableResourceManager;
|
||||
import net.minecraft.client.resources.IResourceManager;
|
||||
import net.minecraft.client.resources.IResourceManagerReloadListener;
|
||||
import net.minecraft.network.NetworkManager;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import codechicken.core.internal.CCCEventHandler;
|
||||
import codechicken.lib.colour.LocalizedColours;
|
||||
import cpw.mods.fml.common.FMLCommonHandler;
|
||||
import cpw.mods.fml.common.ModContainer;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
@@ -65,4 +69,16 @@ public class ClientUtils extends CommonUtils {
|
||||
.replace("Supporters:", EnumChatFormatting.AQUA + "Supporters:");
|
||||
GuiModListScroll.register(mod);
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public static void registerLocalizedColourReloadListener() {
|
||||
((IReloadableResourceManager) mc().getResourceManager())
|
||||
.registerReloadListener(new IResourceManagerReloadListener() {
|
||||
|
||||
@Override
|
||||
public void onResourceManagerReload(IResourceManager resourceManager) {
|
||||
LocalizedColours.reloadLocalizedColours();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -36,6 +36,7 @@ import org.lwjgl.input.Keyboard;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import codechicken.core.launch.CodeChickenCorePlugin;
|
||||
import codechicken.lib.colour.LocalizedColours;
|
||||
import codechicken.lib.gui.GuiDraw;
|
||||
import codechicken.lib.vec.Rectangle4i;
|
||||
import cpw.mods.fml.client.GuiModList;
|
||||
@@ -148,10 +149,11 @@ public class GuiModListScroll {
|
||||
double dy = scroll % (height + 20);
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(0, -dy, 0);
|
||||
GuiDraw.fontRenderer.drawSplitString(description, x1, y1draw, x2 - x1, 0xDDDDDD);
|
||||
GuiDraw.fontRenderer.drawSplitString(description, x1, y1draw, x2 - x1, LocalizedColours.MOD_DESCRIPTION_TEXT);
|
||||
if (needsScroll) {
|
||||
GL11.glTranslated(0, height + 20, 0);
|
||||
GuiDraw.fontRenderer.drawSplitString(description, x1, y1draw, x2 - x1, 0xDDDDDD);
|
||||
GuiDraw.fontRenderer
|
||||
.drawSplitString(description, x1, y1draw, x2 - x1, LocalizedColours.MOD_DESCRIPTION_TEXT);
|
||||
}
|
||||
GL11.glPopMatrix();
|
||||
|
||||
|
||||
@@ -65,6 +65,7 @@ public class CodeChickenCoreModContainer extends DummyModContainer {
|
||||
public void init(FMLInitializationEvent event) {
|
||||
if (event.getSide().isClient()) {
|
||||
ClientUtils.enhanceSupportersList("CodeChickenCore");
|
||||
ClientUtils.registerLocalizedColourReloadListener();
|
||||
|
||||
FMLCommonHandler.instance().bus().register(new CCCEventHandler());
|
||||
MinecraftForge.EVENT_BUS.register(new CCCEventHandler());
|
||||
|
||||
@@ -6,6 +6,8 @@ import net.minecraft.util.ResourceLocation;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import codechicken.lib.colour.LocalizedColours;
|
||||
|
||||
public class GuiCCButton extends GuiWidget {
|
||||
|
||||
public String text;
|
||||
@@ -73,7 +75,8 @@ public class GuiCCButton extends GuiWidget {
|
||||
}
|
||||
|
||||
public int getTextColour(int mousex, int mousey) {
|
||||
return !isEnabled ? 0xFFA0A0A0 : pointInside(mousex, mousey) ? 0xFFFFFFA0 : 0xFFE0E0E0;
|
||||
return !isEnabled ? LocalizedColours.BUTTON_TEXT_DISABLED
|
||||
: pointInside(mousex, mousey) ? LocalizedColours.BUTTON_TEXT_HOVER : LocalizedColours.BUTTON_TEXT;
|
||||
}
|
||||
|
||||
public GuiCCButton setActionCommand(String string) {
|
||||
|
||||
@@ -5,6 +5,8 @@ import net.minecraft.util.ChatAllowedCharacters;
|
||||
|
||||
import org.lwjgl.input.Keyboard;
|
||||
|
||||
import codechicken.lib.colour.LocalizedColours;
|
||||
|
||||
public class GuiCCTextField extends GuiWidget {
|
||||
|
||||
private String text;
|
||||
@@ -120,8 +122,8 @@ public class GuiCCTextField extends GuiWidget {
|
||||
}
|
||||
|
||||
public void drawBackground() {
|
||||
drawRect(x - 1, y - 1, x + width + 1, y + height + 1, 0xffa0a0a0);
|
||||
drawRect(x, y, x + width, y + height, 0xff000000);
|
||||
drawRect(x - 1, y - 1, x + width + 1, y + height + 1, LocalizedColours.TEXT_FIELD_BORDER);
|
||||
drawRect(x, y, x + width, y + height, LocalizedColours.TEXT_FIELD_BACKGROUND);
|
||||
}
|
||||
|
||||
public String getDrawText() {
|
||||
@@ -135,7 +137,7 @@ public class GuiCCTextField extends GuiWidget {
|
||||
}
|
||||
|
||||
public int getTextColour() {
|
||||
return isEnabled ? 0xe0e0e0 : 0x707070;
|
||||
return isEnabled ? LocalizedColours.TEXT_FIELD_TEXT : LocalizedColours.TEXT_FIELD_TEXT_DISABLED;
|
||||
}
|
||||
|
||||
public GuiCCTextField setMaxStringLength(int i) {
|
||||
|
||||
@@ -3,6 +3,7 @@ package codechicken.core.gui;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Rectangle;
|
||||
|
||||
import codechicken.lib.colour.LocalizedColours;
|
||||
import codechicken.lib.math.MathHelper;
|
||||
import codechicken.lib.vec.Rectangle4i;
|
||||
|
||||
@@ -184,28 +185,29 @@ public abstract class GuiScrollPane extends GuiWidget {
|
||||
}
|
||||
|
||||
public void drawBackground(float frame) {
|
||||
drawRect(x, y, x + width, y + height, 0xff000000);
|
||||
drawRect(x, y, x + width, y + height, LocalizedColours.SCROLL_PANE_BACKGROUND);
|
||||
}
|
||||
|
||||
public abstract void drawContent(int mx, int my, float frame);
|
||||
|
||||
public void drawOverlay(float frame) {
|
||||
// outlines
|
||||
drawRect(x, y - 1, x + width, y, 0xffa0a0a0); // top
|
||||
drawRect(x, y + height, x + width, y + height + 1, 0xffa0a0a0); // bottom
|
||||
drawRect(x - 1, y - 1, x, y + height + 1, 0xffa0a0a0); // left
|
||||
drawRect(x + width, y - 1, x + width + 1, y + height + 1, 0xffa0a0a0); // right
|
||||
drawRect(x, y - 1, x + width, y, LocalizedColours.SCROLL_PANE_OVERLAY_TOP);
|
||||
drawRect(x, y + height, x + width, y + height + 1, LocalizedColours.SCROLL_PANE_OVERLAY_BOTTOM);
|
||||
drawRect(x - 1, y - 1, x, y + height + 1, LocalizedColours.SCROLL_PANE_OVERLAY_LEFT);
|
||||
drawRect(x + width, y - 1, x + width + 1, y + height + 1, LocalizedColours.SCROLL_PANE_OVERLAY_RIGHT);
|
||||
}
|
||||
|
||||
public void drawScrollbar(float frame) {
|
||||
Rectangle r = scrollbarBounds();
|
||||
|
||||
drawRect(r.x, r.y, r.x + r.width, r.y + r.height, 0xFF8B8B8B); // corners
|
||||
drawRect(r.x, r.y, r.x + r.width - 1, r.y + r.height - 1, 0xFFF0F0F0); // topleft up
|
||||
drawRect(r.x + 1, r.y + 1, r.x + r.width, r.y + r.height, 0xFF555555); // bottom right down
|
||||
drawRect(r.x + 1, r.y + 1, r.x + r.width - 1, r.y + r.height - 1, 0xFFC6C6C6); // scrollbar
|
||||
drawRect(r.x, r.y, r.x + r.width, r.y + r.height, LocalizedColours.SCROLLBAR_CORNERS);
|
||||
drawRect(r.x, r.y, r.x + r.width - 1, r.y + r.height - 1, LocalizedColours.SCROLLBAR_TOP_LEFT);
|
||||
drawRect(r.x + 1, r.y + 1, r.x + r.width, r.y + r.height, LocalizedColours.SCROLLBAR_BOTTOM_RIGHT);
|
||||
drawRect(r.x + 1, r.y + 1, r.x + r.width - 1, r.y + r.height - 1, LocalizedColours.SCROLLBAR_FILL);
|
||||
|
||||
int algn = scrollbarGuideAlignment();
|
||||
if (algn != 0) drawRect(algn > 0 ? r.x + r.width : r.x - 1, y, r.x, y + height, 0xFF808080); // lineguide
|
||||
if (algn != 0)
|
||||
drawRect(algn > 0 ? r.x + r.width : r.x - 1, y, r.x, y + height, LocalizedColours.SCROLLBAR_GUIDE);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
package codechicken.lib.colour;
|
||||
|
||||
import net.minecraft.util.StatCollector;
|
||||
|
||||
public final class LocalizedColours {
|
||||
|
||||
private static final String KEY_PREFIX = "codechickencore.color.";
|
||||
|
||||
public static int BUTTON_TEXT_DISABLED = 0xFFA0A0A0;
|
||||
public static int BUTTON_TEXT_HOVER = 0xFFFFFFA0;
|
||||
public static int BUTTON_TEXT = 0xFFE0E0E0;
|
||||
public static int TEXT_FIELD_BORDER = 0xFFA0A0A0;
|
||||
public static int TEXT_FIELD_BACKGROUND = 0xFF000000;
|
||||
public static int TEXT_FIELD_TEXT = 0xE0E0E0;
|
||||
public static int TEXT_FIELD_TEXT_DISABLED = 0x707070;
|
||||
public static int SCROLL_PANE_BACKGROUND = 0xFF000000;
|
||||
public static int SCROLL_PANE_OVERLAY_TOP = 0xFFA0A0A0;
|
||||
public static int SCROLL_PANE_OVERLAY_BOTTOM = 0xFFA0A0A0;
|
||||
public static int SCROLL_PANE_OVERLAY_LEFT = 0xFFA0A0A0;
|
||||
public static int SCROLL_PANE_OVERLAY_RIGHT = 0xFFA0A0A0;
|
||||
public static int SCROLLBAR_CORNERS = 0xFF8B8B8B;
|
||||
public static int SCROLLBAR_TOP_LEFT = 0xFFF0F0F0;
|
||||
public static int SCROLLBAR_BOTTOM_RIGHT = 0xFF555555;
|
||||
public static int SCROLLBAR_FILL = 0xFFC6C6C6;
|
||||
public static int SCROLLBAR_GUIDE = 0xFF808080;
|
||||
public static int TOOLTIP_BG_START = 0xF0100010;
|
||||
public static int TOOLTIP_BG_END = 0xF0100010;
|
||||
public static int TOOLTIP_BORDER_START = 0x505000FF;
|
||||
public static int TOOLTIP_BORDER_END = 0x5028007F;
|
||||
public static int TOOLTIP_TEXT = 0xFFFFFFFF;
|
||||
public static int ITEM_QUANTITY_TEXT = 0xFFFFFF;
|
||||
public static int MOD_DESCRIPTION_TEXT = 0xDDDDDD;
|
||||
|
||||
private LocalizedColours() {}
|
||||
|
||||
public static void reloadLocalizedColours() {
|
||||
BUTTON_TEXT_DISABLED = getLocalizedColor("buttonTextDisabled", BUTTON_TEXT_DISABLED);
|
||||
BUTTON_TEXT_HOVER = getLocalizedColor("buttonTextHover", BUTTON_TEXT_HOVER);
|
||||
BUTTON_TEXT = getLocalizedColor("buttonText", BUTTON_TEXT);
|
||||
TEXT_FIELD_BORDER = getLocalizedColor("textFieldBorder", TEXT_FIELD_BORDER);
|
||||
TEXT_FIELD_BACKGROUND = getLocalizedColor("textFieldBackground", TEXT_FIELD_BACKGROUND);
|
||||
TEXT_FIELD_TEXT = getLocalizedColor("textFieldText", TEXT_FIELD_TEXT);
|
||||
TEXT_FIELD_TEXT_DISABLED = getLocalizedColor("textFieldTextDisabled", TEXT_FIELD_TEXT_DISABLED);
|
||||
SCROLL_PANE_BACKGROUND = getLocalizedColor("background", SCROLL_PANE_BACKGROUND);
|
||||
SCROLL_PANE_OVERLAY_TOP = getLocalizedColor("overlayTop", SCROLL_PANE_OVERLAY_TOP);
|
||||
SCROLL_PANE_OVERLAY_BOTTOM = getLocalizedColor("overlayBottom", SCROLL_PANE_OVERLAY_BOTTOM);
|
||||
SCROLL_PANE_OVERLAY_LEFT = getLocalizedColor("overlayLeft", SCROLL_PANE_OVERLAY_LEFT);
|
||||
SCROLL_PANE_OVERLAY_RIGHT = getLocalizedColor("overlayRight", SCROLL_PANE_OVERLAY_RIGHT);
|
||||
SCROLLBAR_CORNERS = getLocalizedColor("scrollbarCorners", SCROLLBAR_CORNERS);
|
||||
SCROLLBAR_TOP_LEFT = getLocalizedColor("scrollbarTopLeft", SCROLLBAR_TOP_LEFT);
|
||||
SCROLLBAR_BOTTOM_RIGHT = getLocalizedColor("scrollbarBottomRight", SCROLLBAR_BOTTOM_RIGHT);
|
||||
SCROLLBAR_FILL = getLocalizedColor("scrollbarFill", SCROLLBAR_FILL);
|
||||
SCROLLBAR_GUIDE = getLocalizedColor("scrollbarGuide", SCROLLBAR_GUIDE);
|
||||
TOOLTIP_BG_START = getLocalizedColor("tooltipBgStart", TOOLTIP_BG_START);
|
||||
TOOLTIP_BG_END = getLocalizedColor("tooltipBgEnd", TOOLTIP_BG_END);
|
||||
TOOLTIP_BORDER_START = getLocalizedColor("tooltipBorderStart", TOOLTIP_BORDER_START);
|
||||
TOOLTIP_BORDER_END = getLocalizedColor("tooltipBorderEnd", TOOLTIP_BORDER_END);
|
||||
TOOLTIP_TEXT = getLocalizedColor("tooltipText", TOOLTIP_TEXT);
|
||||
ITEM_QUANTITY_TEXT = getLocalizedColor("itemQuantityText", ITEM_QUANTITY_TEXT);
|
||||
MOD_DESCRIPTION_TEXT = getLocalizedColor("modDescriptionText", MOD_DESCRIPTION_TEXT);
|
||||
}
|
||||
|
||||
/**
|
||||
* Resolve a optional localized ARGB color from lang files. Expected value format: AARRGGBB (for example FF555555).
|
||||
*/
|
||||
private static int getLocalizedColor(String key, int defaultColor) {
|
||||
String fullKey = KEY_PREFIX + key;
|
||||
if (!StatCollector.canTranslate(fullKey)) {
|
||||
return defaultColor;
|
||||
}
|
||||
|
||||
String raw = StatCollector.translateToLocal(fullKey);
|
||||
String hex = raw.trim();
|
||||
if (hex.startsWith("0x") || hex.startsWith("0X")) {
|
||||
hex = hex.substring(2);
|
||||
} else if (hex.startsWith("#")) {
|
||||
hex = hex.substring(1);
|
||||
}
|
||||
|
||||
try {
|
||||
return (int) Long.parseLong(hex, 16);
|
||||
} catch (NumberFormatException ignored) {
|
||||
return defaultColor;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -18,6 +18,7 @@ import org.lwjgl.input.Mouse;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
import org.lwjgl.opengl.GL12;
|
||||
|
||||
import codechicken.lib.colour.LocalizedColours;
|
||||
import codechicken.lib.math.MathHelper;
|
||||
import codechicken.lib.render.CCRenderState;
|
||||
|
||||
@@ -162,7 +163,15 @@ public class GuiDraw {
|
||||
}
|
||||
|
||||
public static void drawMultilineTip(FontRenderer font, int x, int y, List<String> list) {
|
||||
drawMultilineTip(font, x, y, list, 0xf0100010, 0xf0100010, 0x505000ff, 0x5028007F);
|
||||
drawMultilineTip(
|
||||
font,
|
||||
x,
|
||||
y,
|
||||
list,
|
||||
LocalizedColours.TOOLTIP_BG_START,
|
||||
LocalizedColours.TOOLTIP_BG_END,
|
||||
LocalizedColours.TOOLTIP_BORDER_START,
|
||||
LocalizedColours.TOOLTIP_BORDER_END);
|
||||
}
|
||||
|
||||
public static void drawMultilineTip(FontRenderer font, int x, int y, List<String> list, int bgStart, int bgEnd,
|
||||
@@ -201,7 +210,7 @@ public class GuiDraw {
|
||||
line.draw(x, y);
|
||||
y += line.getSize().height;
|
||||
} else {
|
||||
font.drawStringWithShadow(s, x, y, -1);
|
||||
font.drawStringWithShadow(s, x, y, LocalizedColours.TOOLTIP_TEXT);
|
||||
y += s.endsWith(TOOLTIP_LINESPACE) ? 12 : 10;
|
||||
}
|
||||
}
|
||||
@@ -215,7 +224,15 @@ public class GuiDraw {
|
||||
}
|
||||
|
||||
public static void drawTooltipBox(int x, int y, int w, int h) {
|
||||
drawTooltipBox(x, y, w, h, 0xf0100010, 0xf0100010, 0x505000ff, 0x5028007F);
|
||||
drawTooltipBox(
|
||||
x,
|
||||
y,
|
||||
w,
|
||||
h,
|
||||
LocalizedColours.TOOLTIP_BG_START,
|
||||
LocalizedColours.TOOLTIP_BG_END,
|
||||
LocalizedColours.TOOLTIP_BORDER_START,
|
||||
LocalizedColours.TOOLTIP_BORDER_END);
|
||||
}
|
||||
|
||||
public static void drawTooltipBox(int x, int y, int w, int h, int bgStart, int bgEnd, int borderStart,
|
||||
|
||||
@@ -6,6 +6,8 @@ import net.minecraft.item.ItemStack;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import codechicken.lib.colour.LocalizedColours;
|
||||
|
||||
public class FontUtils {
|
||||
|
||||
public static FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer;
|
||||
@@ -53,7 +55,7 @@ public class FontUtils {
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(x + 16 - swidth, y + 16 - sheight, 0);
|
||||
GL11.glScaled(scale, scale, 1);
|
||||
fontRenderer.drawStringWithShadow(quantity, 0, 0, 0xFFFFFF);
|
||||
fontRenderer.drawStringWithShadow(quantity, 0, 0, LocalizedColours.ITEM_QUANTITY_TEXT);
|
||||
GL11.glPopMatrix();
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
GL11.glEnable(GL11.GL_DEPTH_TEST);
|
||||
|
||||
@@ -1 +1,26 @@
|
||||
codechickencore.update=Version %s of %s is available
|
||||
codechickencore.update=Version %s of %s is available
|
||||
|
||||
codechickencore.color.buttonTextDisabled=FFA0A0A0
|
||||
codechickencore.color.buttonTextHover=FFFFFFA0
|
||||
codechickencore.color.buttonText=FFE0E0E0
|
||||
codechickencore.color.textFieldBorder=FFA0A0A0
|
||||
codechickencore.color.textFieldBackground=FF000000
|
||||
codechickencore.color.textFieldText=E0E0E0
|
||||
codechickencore.color.textFieldTextDisabled=707070
|
||||
codechickencore.color.background=FF000000
|
||||
codechickencore.color.overlayTop=FFA0A0A0
|
||||
codechickencore.color.overlayBottom=FFA0A0A0
|
||||
codechickencore.color.overlayLeft=FFA0A0A0
|
||||
codechickencore.color.overlayRight=FFA0A0A0
|
||||
codechickencore.color.scrollbarCorners=FF8B8B8B
|
||||
codechickencore.color.scrollbarTopLeft=FFF0F0F0
|
||||
codechickencore.color.scrollbarBottomRight=FF555555
|
||||
codechickencore.color.scrollbarFill=FFC6C6C6
|
||||
codechickencore.color.scrollbarGuide=FF808080
|
||||
codechickencore.color.tooltipBgStart=F0100010
|
||||
codechickencore.color.tooltipBgEnd=F0100010
|
||||
codechickencore.color.tooltipBorderStart=505000FF
|
||||
codechickencore.color.tooltipBorderEnd=5028007F
|
||||
codechickencore.color.tooltipText=FFFFFFFF
|
||||
codechickencore.color.itemQuantityText=FFFFFF
|
||||
codechickencore.color.modDescriptionText=DDDDDD
|
||||
Reference in new issue
Block a user