Skip to content
This repository has been archived by the owner on Jan 21, 2024. It is now read-only.

Unicode font toggle #263

Merged
merged 3 commits into from Oct 18, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Expand Up @@ -7,6 +7,8 @@
import com.wynntils.core.framework.rendering.colors.CustomColor;
import com.wynntils.core.framework.rendering.textures.Texture;
import com.wynntils.core.utils.StringUtils;
import com.wynntils.modules.core.config.CoreDBConfig;

import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.ScaledResolution;
import net.minecraft.client.renderer.GlStateManager;
Expand Down Expand Up @@ -64,7 +66,7 @@ public static void refresh() {
} finally {
fontRenderer.onResourceManagerReload(mc.getResourceManager());
}
fontRenderer.setUnicodeFlag(Minecraft.getMinecraft().fontRenderer.getUnicodeFlag());
fontRenderer.setUnicodeFlag(CoreDBConfig.INSTANCE.useUnicode);
if (itemRenderer == null)
itemRenderer = Minecraft.getMinecraft().getRenderItem();
}
Expand Down
Expand Up @@ -82,28 +82,29 @@ else if (alignment == TextAlignment.RIGHT_LEFT)

// rendering shadows
float originPosX = posX; float originPosY = posY;
float offset = (this.getUnicodeFlag() ? 0.5f : 1f);
switch (shadow) {
case OUTLINE:
GlStateManager.color(red * (1 - 0.8f), green * (1 - 0.8f), blue * (1 - 0.8f), 1);
posX = originPosX-1;
posX = originPosX - offset;
posY = originPosY;
renderChar(c);
posX = originPosX+1;
posX = originPosX + offset;
posY = originPosY;
renderChar(c);
posX = originPosX;
posY = originPosY-1;
posY = originPosY - offset;
renderChar(c);
posX = originPosX;
posY = originPosY+1;
posY = originPosY + offset;
renderChar(c);
posX = originPosX;
posY = originPosY;
break;
case NORMAL:
GlStateManager.color(red * (1 - 0.8f), green * (1 - 0.8f), blue * (1 - 0.8f), 1);
posX = originPosX+1;
posY = originPosY+1;
posX = originPosX + offset;
posY = originPosY + offset;
renderChar(c);
posX = originPosX;
posY = originPosY;
Expand All @@ -126,7 +127,6 @@ private float drawChars(String text, int color, TextShadow shadow) {
boolean obfuscated = false;
boolean italic = false;
boolean bold = false;
if (shadow == TextShadow.OUTLINE && this.getUnicodeFlag()) shadow = TextShadow.NORMAL; // disable outline for unicode font

for (int index = 0; index < text.length(); index++) {

Expand Down Expand Up @@ -189,26 +189,27 @@ private float drawChars(String text, int color, TextShadow shadow) {

float x = posX;
float y = posY;
float offset = (this.getUnicodeFlag() ? 0.5f : 1f);
float alpha = ((color >> 24) & 0xFF) / 255F;
this.setColor(0F, 0F, 0F, alpha);

// rendering shadows
switch (shadow) {
case OUTLINE:
posX -= 1;
posX -= offset;
renderChar(character);
posX += bold ? 3 : 2;
posX += bold ? offset*3 : offset*2;
renderChar(character);
posX -= bold ? 2 : 1;
posY -= 1;
posX -= bold ? offset*2 : offset;
posY -= offset;
renderChar(character);
posY += 2;
posY += offset*2;
renderChar(character);
posY -= 1;
posY -= offset;
break;
case NORMAL:
posX = x + 1;
posY = y + 1;
posX = x + offset;
posY = y + offset;
renderChar(character);
break;
default:
Expand All @@ -226,11 +227,11 @@ private float drawChars(String text, int color, TextShadow shadow) {
float charLength = renderChar(character, italic);

if (bold) {
posX += 1;
posX += offset;
renderChar(character);
posX -= 1;
posX -= offset;

charLength += 1;
charLength += offset;
}

posX += charLength + CHAR_SPACING;
Expand Down
Expand Up @@ -196,7 +196,7 @@ public void onRenderPreUIE(ScreenRenderer render) {
if (setting.isSearched) {
int y = (int) (setting.position.getDrawingY() + 4.5f + fontRenderer.FONT_HEIGHT * 0.8f);
int x = setting.position.getDrawingX() + 43;
render.drawRect(CommonColors.BLACK, x, y, x + (int) (fontRenderer.getStringWidth(name) * 0.8f) + 1, y + 1);
render.drawRect(CommonColors.BLACK, x, y, x + (int) (ScreenRenderer.fontRenderer.getStringWidth(name) * 0.8f) + 1, y + 1);
}
}
setting.position.offsetX -= settings.position.offsetX;
Expand Down
Expand Up @@ -47,6 +47,9 @@ public class CoreDBConfig extends SettingsClass {

@Setting(displayName = "Main Menu Wynncraft Button", description = "Should a button be added to the main menu that allows you to connect to Wynncraft directly?")
public boolean addMainMenuButton = true;

@Setting(displayName = "Use Unicode Font", description = "Should Wynntils use the unicode font?")
public boolean useUnicode = false;

@Override
public void onSettingChanged(String name) {
Expand Down
Expand Up @@ -17,15 +17,14 @@
import com.wynntils.modules.core.enums.OverlayRotation;
import com.wynntils.modules.utilities.overlays.hud.ObjectivesOverlay;
import com.wynntils.modules.utilities.overlays.hud.TerritoryFeedOverlay;
import com.wynntils.webapi.WebManager;
import net.minecraft.client.Minecraft;
import net.minecraft.util.text.TextFormatting;

@SettingsInfo(name = "overlays", displayPath = "Utilities/Overlays")
public class OverlayConfig extends SettingsClass {
public static OverlayConfig INSTANCE;


@Setting(displayName = "Text Shadow", description = "What should the text shadow look like?")
public SmartFontRenderer.TextShadow textShadow = SmartFontRenderer.TextShadow.OUTLINE;

Expand Down
Expand Up @@ -56,9 +56,9 @@ public void render(RenderGameOverlayEvent.Pre event) {
// Order:
// Powder % | RLR | Sprint | and if there is nothing more coordinates
if (OverlayConfig.INSTANCE.splitCoordinates && OverlayConfig.INSTANCE.actionBarCoordinates) {
drawString(lCoord, (-ScreenRenderer.mc.fontRenderer.getStringWidth(lCoord) - ScreenRenderer.mc.fontRenderer.getStringWidth(middleCoord) / 2.0f - padding), y, CommonColors.BLACK, SmartFontRenderer.TextAlignment.LEFT_RIGHT, OverlayConfig.INSTANCE.textShadow);
drawString(lCoord, (-ScreenRenderer.fontRenderer.getStringWidth(lCoord) - ScreenRenderer.fontRenderer.getStringWidth(middleCoord) / 2.0f - padding), y, CommonColors.BLACK, SmartFontRenderer.TextAlignment.LEFT_RIGHT, OverlayConfig.INSTANCE.textShadow);
drawString(middleCoord, 0, y, CommonColors.BLACK, SmartFontRenderer.TextAlignment.MIDDLE, OverlayConfig.INSTANCE.textShadow);
drawString(rCoord, (ScreenRenderer.mc.fontRenderer.getStringWidth(middleCoord) / 2.0f + padding), y, CommonColors.BLACK, SmartFontRenderer.TextAlignment.LEFT_RIGHT, OverlayConfig.INSTANCE.textShadow);
drawString(rCoord, (ScreenRenderer.fontRenderer.getStringWidth(middleCoord) / 2.0f + padding), y, CommonColors.BLACK, SmartFontRenderer.TextAlignment.LEFT_RIGHT, OverlayConfig.INSTANCE.textShadow);
y -= 11;
staticSize.y = 21;
growth = OverlayGrowFrom.MIDDLE_CENTRE;
Expand Down Expand Up @@ -87,9 +87,9 @@ public void render(RenderGameOverlayEvent.Pre event) {
// breaks if it's rendering an item name or if doesn't have preference
if (!preference && renderItemName()) return;

drawString(l, (-ScreenRenderer.mc.fontRenderer.getStringWidth(l) - ScreenRenderer.mc.fontRenderer.getStringWidth(middle) / 2.0f - padding), y, CommonColors.BLACK, SmartFontRenderer.TextAlignment.LEFT_RIGHT, OverlayConfig.INSTANCE.textShadow);
drawString(l, (-ScreenRenderer.fontRenderer.getStringWidth(l) - ScreenRenderer.fontRenderer.getStringWidth(middle) / 2.0f - padding), y, CommonColors.BLACK, SmartFontRenderer.TextAlignment.LEFT_RIGHT, OverlayConfig.INSTANCE.textShadow);
drawString(middle, 0, y, CommonColors.BLACK, SmartFontRenderer.TextAlignment.MIDDLE, OverlayConfig.INSTANCE.textShadow);
drawString(r, (ScreenRenderer.mc.fontRenderer.getStringWidth(middle) / 2.0f + padding), y, CommonColors.BLACK, SmartFontRenderer.TextAlignment.LEFT_RIGHT, OverlayConfig.INSTANCE.textShadow);
drawString(r, (ScreenRenderer.fontRenderer.getStringWidth(middle) / 2.0f + padding), y, CommonColors.BLACK, SmartFontRenderer.TextAlignment.LEFT_RIGHT, OverlayConfig.INSTANCE.textShadow);
}

private boolean renderItemName() {
Expand Down
Expand Up @@ -6,6 +6,7 @@

import com.wynntils.Reference;
import com.wynntils.core.framework.overlays.Overlay;
import com.wynntils.core.framework.rendering.ScreenRenderer;
import com.wynntils.core.framework.rendering.SmartFontRenderer.TextAlignment;
import com.wynntils.core.framework.rendering.colors.CommonColors;
import com.wynntils.modules.utilities.UtilitiesModule;
Expand Down Expand Up @@ -40,8 +41,8 @@ public void render(RenderGameOverlayEvent.Pre e) {
// Determine width of largest string
int width = 0;
for (String line : lines) {
if (mc.fontRenderer.getStringWidth(line) > width) {
width = mc.fontRenderer.getStringWidth(line);
if (ScreenRenderer.fontRenderer.getStringWidth(line) > width) {
width = ScreenRenderer.fontRenderer.getStringWidth(line);
}
}

Expand Down