From 157d85aa0fc3aebbb3d2e34b16223b22d3a5f80e Mon Sep 17 00:00:00 2001 From: Shirona1337 Date: Thu, 21 May 2026 15:16:31 +0800 Subject: [PATCH] fix: fonts --- src/main/java/shit/zen/ZenClient.java | 20 ++- src/main/java/shit/zen/gui/PanelClickGui.java | 2 +- .../shit/zen/gui/panel/KeybindOverlay.java | 7 +- .../shit/zen/gui/panel/ModuleListPanel.java | 6 +- .../shit/zen/gui/panel/SettingsPanel.java | 6 +- .../panel/setting/BooleanSettingRenderer.java | 2 +- .../panel/setting/ModeSettingRenderer.java | 2 +- .../setting/MultiSelectSettingRenderer.java | 2 +- .../panel/setting/NumberSettingRenderer.java | 8 +- src/main/java/shit/zen/hud/DynamicIsland.java | 23 ++- .../modules/impl/render/ClickGuiModule.java | 3 +- .../zen/modules/impl/render/Watermark.java | 2 +- .../impl/render/nametag/OpalNameTag.java | 5 +- src/main/java/shit/zen/render/CustomFont.java | 168 +++++++++--------- .../java/shit/zen/render/FontRenderer.java | 110 ++++++------ .../zen/fonts}/AstaSans-Medium.ttf | Bin .../zen/fonts}/MaterialIcons-Regular.ttf | Bin .../zen/fonts}/MuseoSansCyrl-900.ttf | Bin .../{ => assets/zen/fonts}/Poppins-Bold.ttf | Bin .../{ => assets/zen/fonts}/Poppins-Medium.ttf | Bin .../zen/fonts}/Poppins-Regular.ttf | Bin .../{ => assets/zen/fonts}/axiforma_bold.ttf | Bin .../zen/fonts}/axiforma_extrabold.ttf | Bin .../zen/fonts}/axiforma_regular.ttf | Bin .../resources/{ => assets/zen/fonts}/icon.ttf | Bin .../{ => assets/zen/fonts}/material.ttf | Bin .../{ => assets/zen/fonts}/opensans.ttf | Bin .../zen/fonts}/pingfang_sc_regular.ttf | Bin .../zen/fonts}/product_sans_regular.ttf | Bin .../{ => assets/zen/fonts}/quicksand.ttf | Bin .../zen/fonts}/zenicon-Regular.ttf | Bin 31 files changed, 178 insertions(+), 188 deletions(-) rename src/main/resources/{ => assets/zen/fonts}/AstaSans-Medium.ttf (100%) mode change 100755 => 100644 rename src/main/resources/{ => assets/zen/fonts}/MaterialIcons-Regular.ttf (100%) mode change 100755 => 100644 rename src/main/resources/{ => assets/zen/fonts}/MuseoSansCyrl-900.ttf (100%) mode change 100755 => 100644 rename src/main/resources/{ => assets/zen/fonts}/Poppins-Bold.ttf (100%) mode change 100755 => 100644 rename src/main/resources/{ => assets/zen/fonts}/Poppins-Medium.ttf (100%) mode change 100755 => 100644 rename src/main/resources/{ => assets/zen/fonts}/Poppins-Regular.ttf (100%) mode change 100755 => 100644 rename src/main/resources/{ => assets/zen/fonts}/axiforma_bold.ttf (100%) mode change 100755 => 100644 rename src/main/resources/{ => assets/zen/fonts}/axiforma_extrabold.ttf (100%) mode change 100755 => 100644 rename src/main/resources/{ => assets/zen/fonts}/axiforma_regular.ttf (100%) mode change 100755 => 100644 rename src/main/resources/{ => assets/zen/fonts}/icon.ttf (100%) mode change 100755 => 100644 rename src/main/resources/{ => assets/zen/fonts}/material.ttf (100%) mode change 100755 => 100644 rename src/main/resources/{ => assets/zen/fonts}/opensans.ttf (100%) mode change 100755 => 100644 rename src/main/resources/{ => assets/zen/fonts}/pingfang_sc_regular.ttf (100%) mode change 100755 => 100644 rename src/main/resources/{ => assets/zen/fonts}/product_sans_regular.ttf (100%) mode change 100755 => 100644 rename src/main/resources/{ => assets/zen/fonts}/quicksand.ttf (100%) mode change 100755 => 100644 rename src/main/resources/{ => assets/zen/fonts}/zenicon-Regular.ttf (100%) mode change 100755 => 100644 diff --git a/src/main/java/shit/zen/ZenClient.java b/src/main/java/shit/zen/ZenClient.java index 3eb999f..d171211 100644 --- a/src/main/java/shit/zen/ZenClient.java +++ b/src/main/java/shit/zen/ZenClient.java @@ -9,6 +9,8 @@ import lombok.Setter; import net.minecraft.client.Minecraft; import net.minecraftforge.fml.common.Mod; import shit.zen.event.EventBus; +import shit.zen.event.EventTarget; +import shit.zen.event.impl.TickEvent; import shit.zen.manager.CommandManager; import shit.zen.manager.ConfigManager; import shit.zen.manager.HudManager; @@ -84,7 +86,6 @@ public class ZenClient extends ClientBase { this.rotationHandler = new RotationHandler(); this.eventBus.register(this.rotationHandler); this.moduleManager = new ModuleManager(); - this.moduleManager.initModules(); this.hudManager = new HudManager(); this.commandManager = new CommandManager(); this.commandManager.initCommands(); @@ -94,6 +95,7 @@ public class ZenClient extends ClientBase { this.eventBus.register(this.lagManager); this.targetManager = new TargetManager(); this.eventBus.register(this.targetManager); + this.eventBus.register(this); this.encryption = new Encryption(Encryption.Algorithm.AES); registerPatches(); if (PatchAgent.getInstrumentation() != null) { @@ -108,6 +110,16 @@ public class ZenClient extends ClientBase { } } + private boolean moduleInit = false; + + @EventTarget + public void onTick(TickEvent e) { + if (isReady() && !moduleInit) { + moduleInit = true; + this.moduleManager.initModules(); + } + } + public static boolean isReady() { return instance != null && ZenClient.instance.eventBus != null @@ -118,14 +130,10 @@ public class ZenClient extends ClientBase { && mc.player.tickCount > 5; } - public static boolean isOwner(String string) { + public static boolean isOwner(String username) { return false; } - public static String decodeString(String s) { - return s; - } - public void disconnectFromServer() { isReady = false; if (this.configManager != null) { diff --git a/src/main/java/shit/zen/gui/PanelClickGui.java b/src/main/java/shit/zen/gui/PanelClickGui.java index 74e9133..233b1ae 100644 --- a/src/main/java/shit/zen/gui/PanelClickGui.java +++ b/src/main/java/shit/zen/gui/PanelClickGui.java @@ -52,7 +52,7 @@ extends Screen { } } - public static PanelClickGui Đ; + public static PanelClickGui panelClickGui = new PanelClickGui(); private boolean searchActive = false; private boolean searchFocused = false; diff --git a/src/main/java/shit/zen/gui/panel/KeybindOverlay.java b/src/main/java/shit/zen/gui/panel/KeybindOverlay.java index c592c27..f4fbc8a 100644 --- a/src/main/java/shit/zen/gui/panel/KeybindOverlay.java +++ b/src/main/java/shit/zen/gui/panel/KeybindOverlay.java @@ -1,14 +1,13 @@ package shit.zen.gui.panel; import java.awt.Color; -import java.util.function.Consumer; + import net.minecraft.client.gui.GuiGraphics; import shit.zen.ClientBase; import shit.zen.ZenClient; import shit.zen.gui.PanelClickGui; import shit.zen.modules.KeyBind; import shit.zen.modules.Module; -import shit.zen.render.DrawContext; import shit.zen.render.FontPresets; import shit.zen.render.FontRenderer; import shit.zen.render.GlHelper; @@ -71,7 +70,7 @@ extends ClientBase { if (ZenClient.isReady()) { ZenClient.instance.getConfigManager().saveAll(); } - PanelClickGui.Đ.addToast(this.targetModule.getName() + " keybind cleared"); + PanelClickGui.panelClickGui.addToast(this.targetModule.getName() + " keybind cleared"); } this.cancel(); return true; @@ -83,7 +82,7 @@ extends ClientBase { } KeyBind keyBind = new KeyBind(n); String string = keyBind.getName(); - PanelClickGui.Đ.addToast(this.targetModule.getName() + " bound to " + string.toUpperCase()); + PanelClickGui.panelClickGui.addToast(this.targetModule.getName() + " bound to " + string.toUpperCase()); this.cancel(); return true; } diff --git a/src/main/java/shit/zen/gui/panel/ModuleListPanel.java b/src/main/java/shit/zen/gui/panel/ModuleListPanel.java index 0025e45..4400e5a 100644 --- a/src/main/java/shit/zen/gui/panel/ModuleListPanel.java +++ b/src/main/java/shit/zen/gui/panel/ModuleListPanel.java @@ -5,13 +5,11 @@ import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.function.Consumer; import java.util.stream.Collectors; import net.minecraft.client.gui.GuiGraphics; import shit.zen.ClientBase; import shit.zen.ZenClient; import shit.zen.gui.PanelClickGui; -import shit.zen.gui.panel.ModuleListPanel.AnimationState; import shit.zen.modules.Category; import shit.zen.modules.Module; import shit.zen.render.DrawContext; @@ -338,11 +336,11 @@ extends ClientBase { if (n5 == 0) { module.toggle(); String string = module.isEnabled() ? "On" : "Off"; - PanelClickGui.Đ.addToast(module.getName() + " Module " + string); + PanelClickGui.panelClickGui.addToast(module.getName() + " Module " + string); } else if (n5 == 1) { this.hoveredModule = module; } else if (n5 == 2) { - PanelClickGui.Đ.selectModule(module); + PanelClickGui.panelClickGui.selectModule(module); } return true; } diff --git a/src/main/java/shit/zen/gui/panel/SettingsPanel.java b/src/main/java/shit/zen/gui/panel/SettingsPanel.java index 7d237f3..6defea7 100644 --- a/src/main/java/shit/zen/gui/panel/SettingsPanel.java +++ b/src/main/java/shit/zen/gui/panel/SettingsPanel.java @@ -2,15 +2,13 @@ package shit.zen.gui.panel; import java.awt.Color; import java.util.List; -import java.util.function.Consumer; + import net.minecraft.client.gui.GuiGraphics; import shit.zen.ClientBase; import shit.zen.gui.PanelClickGui; -import shit.zen.gui.panel.SettingsPanel.AnimationState; import shit.zen.gui.panel.setting.SettingRenderer; import shit.zen.gui.panel.setting.SettingRendererRegistry; import shit.zen.modules.Module; -import shit.zen.render.DrawContext; import shit.zen.render.FontPresets; import shit.zen.render.FontRenderer; import shit.zen.render.GlHelper; @@ -393,7 +391,7 @@ extends ClientBase { if (n5 == 0 && n3 >= n18 && n3 <= n18 + n16 * 2 && n4 >= n19 && n4 <= n19 + n16) { this.currentModule.toggle(); String string = this.currentModule.isEnabled() ? "On" : "Off"; - PanelClickGui.Đ.addToast(this.currentModule.getName() + " Module " + string); + PanelClickGui.panelClickGui.addToast(this.currentModule.getName() + " Module " + string); return true; } List> list = this.currentModule.getSettings(); diff --git a/src/main/java/shit/zen/gui/panel/setting/BooleanSettingRenderer.java b/src/main/java/shit/zen/gui/panel/setting/BooleanSettingRenderer.java index 83c06d9..3cc9495 100644 --- a/src/main/java/shit/zen/gui/panel/setting/BooleanSettingRenderer.java +++ b/src/main/java/shit/zen/gui/panel/setting/BooleanSettingRenderer.java @@ -132,7 +132,7 @@ implements SettingRenderer { boolean bl = booleanSetting.getValue() == false; booleanSetting.setValue(bl); String string = bl ? "On" : "Off"; - PanelClickGui.Đ.addToast(booleanSetting.getName() + " is " + string); + PanelClickGui.panelClickGui.addToast(booleanSetting.getName() + " is " + string); return true; } return false; diff --git a/src/main/java/shit/zen/gui/panel/setting/ModeSettingRenderer.java b/src/main/java/shit/zen/gui/panel/setting/ModeSettingRenderer.java index 6406b53..7bd6a15 100644 --- a/src/main/java/shit/zen/gui/panel/setting/ModeSettingRenderer.java +++ b/src/main/java/shit/zen/gui/panel/setting/ModeSettingRenderer.java @@ -147,7 +147,7 @@ implements SettingRenderer { String string2 = stringArray[i]; modeSetting.setValue(string2); this.openStates.put(modeSetting, false); - PanelClickGui.Đ.addToast(modeSetting.getName() + " set to " + string2); + PanelClickGui.panelClickGui.addToast(modeSetting.getName() + " set to " + string2); return true; } if (!bl2) { diff --git a/src/main/java/shit/zen/gui/panel/setting/MultiSelectSettingRenderer.java b/src/main/java/shit/zen/gui/panel/setting/MultiSelectSettingRenderer.java index a41d7b8..1e776d0 100644 --- a/src/main/java/shit/zen/gui/panel/setting/MultiSelectSettingRenderer.java +++ b/src/main/java/shit/zen/gui/panel/setting/MultiSelectSettingRenderer.java @@ -91,7 +91,7 @@ implements SettingRenderer { multiSelectSetting.getValue().add(string); } boolean bl = multiSelectSetting.isSelected(string); - PanelClickGui.Đ.addToast(string + (bl ? " enabled" : " disabled")); + PanelClickGui.panelClickGui.addToast(string + (bl ? " enabled" : " disabled")); return true; } n7 += n8; diff --git a/src/main/java/shit/zen/gui/panel/setting/NumberSettingRenderer.java b/src/main/java/shit/zen/gui/panel/setting/NumberSettingRenderer.java index 318d2f6..5a436b0 100644 --- a/src/main/java/shit/zen/gui/panel/setting/NumberSettingRenderer.java +++ b/src/main/java/shit/zen/gui/panel/setting/NumberSettingRenderer.java @@ -152,9 +152,9 @@ implements SettingRenderer { double d3 = editingNumberSetting.getMax().doubleValue(); d = Math.max(d2, Math.min(d3, d)); NumberSettingRenderer.applyValueStatic(editingNumberSetting, d); - PanelClickGui.Đ.addToast(editingNumberSetting.getName() + " set to " + String.format(Locale.US, "%.1f", new Object[]{d})); + PanelClickGui.panelClickGui.addToast(editingNumberSetting.getName() + " set to " + String.format(Locale.US, "%.1f", new Object[]{d})); } catch (NumberFormatException numberFormatException) { - PanelClickGui.Đ.addToast("Invalid input, edit cancelled"); + PanelClickGui.panelClickGui.addToast("Invalid input, edit cancelled"); } NumberSettingRenderer.cancelEdit(); } @@ -247,7 +247,7 @@ implements SettingRenderer { double d3 = numberSetting.getMax().doubleValue(); double d4 = Math.min(d3, d + d2); this.applyValue(numberSetting, d4); - PanelClickGui.Đ.addToast(numberSetting.getName() + " set to " + this.formatValue(d4)); + PanelClickGui.panelClickGui.addToast(numberSetting.getName() + " set to " + this.formatValue(d4)); } private void decrementValue(NumberSetting numberSetting) { @@ -256,7 +256,7 @@ implements SettingRenderer { double d3 = numberSetting.getMin().doubleValue(); double d4 = Math.max(d3, d - d2); this.applyValue(numberSetting, d4); - PanelClickGui.Đ.addToast(numberSetting.getName() + " set to " + this.formatValue(d4)); + PanelClickGui.panelClickGui.addToast(numberSetting.getName() + " set to " + this.formatValue(d4)); } private void applyValue(NumberSetting numberSetting, double d) { diff --git a/src/main/java/shit/zen/hud/DynamicIsland.java b/src/main/java/shit/zen/hud/DynamicIsland.java index 254f042..ba87f63 100644 --- a/src/main/java/shit/zen/hud/DynamicIsland.java +++ b/src/main/java/shit/zen/hud/DynamicIsland.java @@ -7,7 +7,6 @@ import java.util.List; import net.minecraft.util.Mth; import shit.zen.ClientBase; import shit.zen.event.impl.Render2DEvent; -import shit.zen.render.DrawContext; import shit.zen.render.Paint; import shit.zen.render.Renderer; import shit.zen.render.RoundedRectangle; @@ -22,7 +21,7 @@ public class DynamicIsland { this.owner = owner; } - public IHudElement Đ() { + public IHudElement visible() { for (IHudElement element : this.owner.elements) { if (element.isVisible()) return element; } @@ -43,7 +42,7 @@ public class DynamicIsland { public void onRender2D(Render2DEvent render2DEvent) { float f; float f2; - IHudElement.Size iHudElement$Size; + IHudElement.Size size; if (ClientBase.mc.player == null) { return; } @@ -54,27 +53,27 @@ public class DynamicIsland { float f3 = (float)(l - this.lastFrameTimestamp) / 1000.0f; this.lastFrameTimestamp = l; f3 = Math.min(f3, 0.033333335f); - IHudElement iHudElement = this.activeElementSelector.Đ(); + IHudElement iHudElement = this.activeElementSelector.visible(); if (this.activeElement != iHudElement) { this.outgoingElement = this.activeElement; this.activeElement = iHudElement; this.transitionAnim.reset(0.0f); this.transitionAnim.setTargetValue(1.0f); if (this.outgoingElement == null) { - iHudElement$Size = this.activeElement.getHudAlignment(); - this.widthAnim.reset(iHudElement$Size.width()); - this.heightAnim.reset(iHudElement$Size.height()); + size = this.activeElement.getHudAlignment(); + this.widthAnim.reset(size.width()); + this.heightAnim.reset(size.height()); this.transitionAnim.reset(1.0f); } } - iHudElement$Size = this.activeElement.getHudAlignment(); - float f4 = iHudElement$Size.width(); - float f5 = iHudElement$Size.height(); + size = this.activeElement.getHudAlignment(); + float f4 = size.width(); + float f5 = size.height(); float f6 = this.transitionAnim.getValue(); if (this.outgoingElement != null && f6 < 1.0f) { IHudElement.Size iHudElement$Size2 = this.outgoingElement.getHudAlignment(); - f4 = Mth.lerp(f6, iHudElement$Size2.width(), iHudElement$Size.width()); - f5 = Mth.lerp(f6, iHudElement$Size2.height(), iHudElement$Size.height()); + f4 = Mth.lerp(f6, iHudElement$Size2.width(), size.width()); + f5 = Mth.lerp(f6, iHudElement$Size2.height(), size.height()); } this.widthAnim.setTargetValue(f4); this.heightAnim.setTargetValue(f5); diff --git a/src/main/java/shit/zen/modules/impl/render/ClickGuiModule.java b/src/main/java/shit/zen/modules/impl/render/ClickGuiModule.java index 77b33b2..60b2825 100644 --- a/src/main/java/shit/zen/modules/impl/render/ClickGuiModule.java +++ b/src/main/java/shit/zen/modules/impl/render/ClickGuiModule.java @@ -1,6 +1,5 @@ package shit.zen.modules.impl.render; -import net.minecraft.client.gui.screens.Screen; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import shit.zen.gui.NewClickGui; @@ -25,7 +24,7 @@ extends Module { if (this.styleSetting.is("Old")) { mc.setScreen(new OldClickGui()); } else if (this.styleSetting.is("Panel")) { - mc.setScreen(PanelClickGui.Đ); + mc.setScreen(PanelClickGui.panelClickGui); } else { mc.setScreen(new NewClickGui()); } diff --git a/src/main/java/shit/zen/modules/impl/render/Watermark.java b/src/main/java/shit/zen/modules/impl/render/Watermark.java index db691d4..ddfa75d 100644 --- a/src/main/java/shit/zen/modules/impl/render/Watermark.java +++ b/src/main/java/shit/zen/modules/impl/render/Watermark.java @@ -23,7 +23,7 @@ public class Watermark extends Module { if (!this.isEnabled()) { return; } - switch ((String) this.styleSetting.getValue()) { + switch (this.styleSetting.getValue()) { case "Neverlose": this.neverloseWatermark.onRender2D(render2DEvent); break; diff --git a/src/main/java/shit/zen/modules/impl/render/nametag/OpalNameTag.java b/src/main/java/shit/zen/modules/impl/render/nametag/OpalNameTag.java index c0847cd..b3a3f12 100644 --- a/src/main/java/shit/zen/modules/impl/render/nametag/OpalNameTag.java +++ b/src/main/java/shit/zen/modules/impl/render/nametag/OpalNameTag.java @@ -295,10 +295,9 @@ public class OpalNameTag extends NameTagStyle { if (last != null && now - last < 1000L) { return this.decodedNameCache.get(name); } - String decoded = ZenClient.decodeString(name); - this.decodedNameCache.put(name, decoded); + this.decodedNameCache.put(name, name); this.nameDecodeTimestamps.put(name, now); - return decoded; + return name; } private record ItemRenderData(ItemStack itemStack, Vector2f position) { diff --git a/src/main/java/shit/zen/render/CustomFont.java b/src/main/java/shit/zen/render/CustomFont.java index 5daa773..c064dee 100644 --- a/src/main/java/shit/zen/render/CustomFont.java +++ b/src/main/java/shit/zen/render/CustomFont.java @@ -8,13 +8,12 @@ import com.mojang.blaze3d.vertex.Tesselator; import com.mojang.blaze3d.vertex.VertexFormat; import it.unimi.dsi.fastutil.chars.Char2IntArrayMap; import it.unimi.dsi.fastutil.chars.Char2ObjectArrayMap; -import it.unimi.dsi.fastutil.objects.Object2ObjectMap; -import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; -import it.unimi.dsi.fastutil.objects.ObjectArrayList; -import it.unimi.dsi.fastutil.objects.ObjectList; +import it.unimi.dsi.fastutil.objects.*; + import java.awt.Color; import java.awt.Font; import java.io.Closeable; +import java.util.List; import java.util.Objects; import java.util.Random; import java.util.concurrent.ExecutionException; @@ -191,105 +190,102 @@ implements Closeable { public void drawStringRGB(PoseStack poseStack, String string, float f, float f2, float f3, float f4, float f5, float f6) { this.drawStringRGBFull(poseStack, string, f, f2, f3, f4, f5, f6, false, 0); } - - /* - * WARNING - Removed try catching itself - possible behaviour change. - */ - public void drawStringRGBFull(PoseStack poseStack, String string, float f, float f2, float f3, float f4, float f5, float f6, boolean bl, int n) { + public void drawStringRGBFull(PoseStack var1, String var2, float var3, float var4, float var5, float var6, float var7, float var8, boolean var9, int var10) { if (this.preloadFuture != null && !this.preloadFuture.isDone()) { try { this.preloadFuture.get(); - } catch (InterruptedException | ExecutionException throwable) { - // empty catch block + } catch (ExecutionException | InterruptedException var44) { } } + this.checkGuiScaleChanged(); - float f7 = f3; - float f8 = f4; - float f9 = f5; - poseStack.pushPose(); - poseStack.translate(MathUtil.round(f, 1), MathUtil.round(f2 -= 1.0f, 1), 0.0); - poseStack.scale(1.0f / (float)this.scale, 1.0f / (float)this.scale, 1.0f); + float var13 = var5; + float var14 = var6; + float var15 = var7; + var1.pushPose(); + var1.translate(MathUtil.round(var3, 1), MathUtil.round(--var4, 1), 0.0); + var1.scale(1.0F / this.scale, 1.0F / this.scale, 1.0F); RenderSystem.enableBlend(); RenderSystem.defaultBlendFunc(); RenderSystem.disableCull(); RenderSystem.setShader(GameRenderer::getPositionTexColorShader); - Matrix4f matrix4f = poseStack.last().pose(); - char[] cArray = string.toCharArray(); - float f10 = 0.0f; - float f11 = 0.0f; - boolean bl2 = false; - int n2 = 0; - Object2ObjectMap> object2ObjectMap = this.glyphPageMap; - synchronized (object2ObjectMap) { - for (int i = 0; i < cArray.length; ++i) { - char c = cArray[i]; - if (bl2) { - bl2 = false; - char c2 = Character.toUpperCase(c); - if (MC_COLOR_CODES.containsKey(c2)) { - int n3 = MC_COLOR_CODES.get(c2); - int[] rgb = CustomFont.colorToRGB(n3); - f7 = rgb[0] / 255.0f; - f8 = rgb[1] / 255.0f; - f9 = rgb[2] / 255.0f; - continue; + Matrix4f var16 = var1.last().pose(); + char[] var17 = var2.toCharArray(); + float var18 = 0.0F; + float var19 = 0.0F; + boolean var20 = false; + int var21 = 0; + synchronized (this.glyphPageMap) { + for (int var23 = 0; var23 < var17.length; var23++) { + char var24 = var17[var23]; + if (var20) { + var20 = false; + char var25 = Character.toUpperCase(var24); + if (MC_COLOR_CODES.containsKey(var25)) { + int var26 = MC_COLOR_CODES.get(var25); + int[] var27 = colorToRGB(var26); + var13 = var27[0] / 255.0F; + var14 = var27[1] / 255.0F; + var15 = var27[2] / 255.0F; + } else if (var25 == 'R') { + var13 = var5; + var14 = var6; + var15 = var7; + } + } else if (var24 == 167) { + var20 = true; + } else if (var24 == '\n') { + var19 += this.getStringHeight(var2.substring(var21, var23)) * this.scale; + var18 = 0.0F; + var21 = var23 + 1; + } else { + Glyph var49 = this.getOrLoadGlyph(var24); + if (var49 != null) { + if (var49.value() != ' ') { + ResourceLocation var51 = var49.owner().textureLocation; + GlyphEntry var53 = new GlyphEntry(var18, var19, var13, var14, var15, var49); + this.glyphPageMap.computeIfAbsent(var51, var0 -> new ObjectArrayList<>()).add(var53); + } + + var18 += var49.width() + this.letterSpacing; } - if (c2 != 'R') continue; - f7 = f3; - f8 = f4; - f9 = f5; - continue; } - if (c == '§') { - bl2 = true; - continue; - } - if (c == '\n') { - f11 += this.getStringHeight(string.substring(n2, i)) * (float)this.scale; - f10 = 0.0f; - n2 = i + 1; - continue; - } - Glyph glyph = this.getOrLoadGlyph(c); - if (glyph == null) continue; - if (glyph.value() != ' ') { - ResourceLocation resourceLocation = glyph.owner().textureLocation; - CustomFont.GlyphEntry entry = new CustomFont.GlyphEntry(f10, f11, f7, f8, f9, glyph); - this.glyphPageMap.computeIfAbsent(resourceLocation, k -> new ObjectArrayList<>()).add(entry); - } - f10 += (float)glyph.width() + this.letterSpacing; } - for (ResourceLocation resourceLocation : this.glyphPageMap.keySet()) { - RenderSystem.setShaderTexture(0, resourceLocation); - ObjectList list = this.glyphPageMap.get(resourceLocation); - Tesselator tesselator = Tesselator.getInstance(); - BufferBuilder bufferBuilder = tesselator.getBuilder(); - bufferBuilder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX_COLOR); - for (CustomFont.GlyphEntry customFont$GlyphEntry : list) { - float f12 = customFont$GlyphEntry.atX; - float f13 = customFont$GlyphEntry.atY; - float f14 = customFont$GlyphEntry.r; - float f15 = customFont$GlyphEntry.g; - float f16 = customFont$GlyphEntry.b; - Glyph glyph = customFont$GlyphEntry.toDraw; - GlyphPage glyphPage = glyph.owner(); - float f17 = glyph.width(); - float f18 = glyph.height(); - float f19 = (float)glyph.u() / (float)glyphPage.imageWidth; - float f20 = (float)glyph.v() / (float)glyphPage.imageHeight; - float f21 = (float)(glyph.u() + glyph.width()) / (float)glyphPage.imageWidth; - float f22 = (float)(glyph.v() + glyph.height()) / (float)glyphPage.imageHeight; - bufferBuilder.vertex(matrix4f, f12 + 0.0f, f13 + f18, 0.0f).uv(f19, f22).color(f14, f15, f16, f6).endVertex(); - bufferBuilder.vertex(matrix4f, f12 + f17, f13 + f18, 0.0f).uv(f21, f22).color(f14, f15, f16, f6).endVertex(); - bufferBuilder.vertex(matrix4f, f12 + f17, f13 + 0.0f, 0.0f).uv(f21, f20).color(f14, f15, f16, f6).endVertex(); - bufferBuilder.vertex(matrix4f, f12 + 0.0f, f13 + 0.0f, 0.0f).uv(f19, f20).color(f14, f15, f16, f6).endVertex(); + + for (ResourceLocation var48 : this.glyphPageMap.keySet()) { + RenderSystem.setShaderTexture(0, var48); + List var50 = this.glyphPageMap.get(var48); + Tesselator var52 = Tesselator.getInstance(); + BufferBuilder var28 = var52.getBuilder(); + var28.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX_COLOR); + + for (GlyphEntry var29 : var50) { + float var30 = var29.atX; + float var31 = var29.atY; + float var32 = var29.r; + float var33 = var29.g; + float var34 = var29.b; + Glyph var35 = var29.toDraw; + GlyphPage var36 = var35.owner(); + float var37 = var35.width(); + float var38 = var35.height(); + float var39 = (float) var35.u() / var36.imageWidth; + float var40 = (float) var35.v() / var36.imageHeight; + float var41 = (float) (var35.u() + var35.width()) / var36.imageWidth; + float var42 = (float) (var35.v() + var35.height()) / var36.imageHeight; + var28.vertex(var16, var30 + 0.0F, var31 + var38, 0.0F).uv(var39, var42).color(var32, var33, var34, var8).endVertex(); + var28.vertex(var16, var30 + var37, var31 + var38, 0.0F).uv(var41, var42).color(var32, var33, var34, var8).endVertex(); + var28.vertex(var16, var30 + var37, var31 + 0.0F, 0.0F).uv(var41, var40).color(var32, var33, var34, var8).endVertex(); + var28.vertex(var16, var30 + 0.0F, var31 + 0.0F, 0.0F).uv(var39, var40).color(var32, var33, var34, var8).endVertex(); } - tesselator.end(); + + var52.end(); } + this.glyphPageMap.clear(); } - poseStack.popPose(); + + var1.popPose(); RenderSystem.disableBlend(); } diff --git a/src/main/java/shit/zen/render/FontRenderer.java b/src/main/java/shit/zen/render/FontRenderer.java index 880c3a0..db399d7 100644 --- a/src/main/java/shit/zen/render/FontRenderer.java +++ b/src/main/java/shit/zen/render/FontRenderer.java @@ -1,109 +1,103 @@ package shit.zen.render; -import shit.zen.render.CustomFont; -import shit.zen.render.FontMetricsImpl; -import shit.zen.render.Fonts; -import shit.zen.render.GlyphMetrics; -import shit.zen.render.Path; -import shit.zen.render.Rectangle; +import lombok.Getter; public final class FontRenderer { + @Getter private final String fontName; + @Getter private final float size; private CustomFont customFont; - public FontRenderer(String string, float f) { - this.fontName = string; - this.size = f; + public FontRenderer(String var1, float var2) { + this.fontName = var1; + this.size = var2; } - public FontRenderer(CustomFont customFont, float f) { + public FontRenderer(CustomFont var1, float var2) { this.fontName = null; - this.size = f; - this.customFont = customFont; - } - - public String getFontName() { - return this.fontName; - } - - public float getSize() { - return this.size; + this.size = var2; + this.customFont = var1; } public CustomFont getFont() { if (this.customFont == null && this.fontName != null) { this.customFont = Fonts.getCustomFont(this.fontName, this.size); } + return this.customFont; } public int getId() { - CustomFont customFont = this.getFont(); - return customFont == null ? 0 : System.identityHashCode(customFont); + CustomFont var3 = this.getFont(); + return var3 == null ? 0 : System.identityHashCode(var3); } public int getHeight() { return this.getId(); } - public FontRenderer withBold(boolean bl) { + public FontRenderer withBold(boolean var1) { return this; } - public FontRenderer withItalic(boolean bl) { + public FontRenderer withItalic(boolean var1) { return this; } - public FontRenderer withColor(Object object) { + public FontRenderer withColor(Object var1) { return this; } - public Rectangle getBounds(String string) { - if (string == null || string.isEmpty()) { - return Rectangle.ofXYWH(0.0f, 0.0f, 0.0f, 0.0f); + public Rectangle getBounds(String var1) { + if (var1 != null && !var1.isEmpty()) { + CustomFont var4 = this.getFont(); + if (var4 == null) { + return Rectangle.ofXYWH(0.0F, 0.0F, 0.0F, 0.0F); + } else { + float var5 = var4.getStringWidth(var1); + float var6 = var4.getStringHeight(var1); + return Rectangle.ofXYWH(0.0F, 0.0F, var5, var6); + } + } else { + return Rectangle.ofXYWH(0.0F, 0.0F, 0.0F, 0.0F); } - CustomFont customFont = this.getFont(); - if (customFont == null) { - return Rectangle.ofXYWH(0.0f, 0.0f, 0.0f, 0.0f); - } - float f = customFont.getStringWidth(string); - float f2 = customFont.getStringHeight(string); - return Rectangle.ofXYWH(0.0f, 0.0f, f, f2); } - public float getWidth(String string) { - if (string == null || string.isEmpty()) { - return 0.0f; + public float getWidth(String var1) { + if (var1 != null && !var1.isEmpty()) { + CustomFont var4 = this.getFont(); + return var4 == null ? 0.0F : var4.getStringWidth(var1); + } else { + return 0.0F; } - CustomFont customFont = this.getFont(); - return customFont == null ? 0.0f : customFont.getStringWidth(string); } - public short[] getGlyphCodes(String string) { + public short[] getGlyphCodes(String var1) { return new short[0]; } - public Path getGlyphPath(short s) { + public Path getGlyphPath(short var1) { return null; } public GlyphMetrics getMetrics() { - CustomFont customFont = this.getFont(); - if (customFont == null) { - return new GlyphMetrics(-this.size * 0.8f, this.size * 0.2f, this.size * 1.2f, this.size * 0.7f); + CustomFont var3 = this.getFont(); + if (var3 == null) { + return new GlyphMetrics(-this.size * 0.8F, this.size * 0.2F, this.size * 1.2F, this.size * 0.7F); + } else { + FontMetricsImpl var4 = var3.getFontMetrics(); + int var5 = var3.getScale(); + if (var5 <= 0) { + var5 = 1; + } + + float var6 = -var4.getAscent() / var5; + float var7 = (float)var4.getDescent() / var5; + float var8 = (float)var4.getLeading() / var5; + float var9 = (float)var4.getHeight() / var5; + float var10 = var4.getAscent() * 0.7F / var5; + return new GlyphMetrics(var6, var7, var9, var10); } - FontMetricsImpl fontMetricsImpl = customFont.getFontMetrics(); - int n = customFont.getScale(); - if (n <= 0) { - n = 1; - } - float f = -((float)fontMetricsImpl.getAscent()) / (float)n; - float f2 = (float)fontMetricsImpl.getDescent() / (float)n; - float f3 = (float)fontMetricsImpl.getLeading() / (float)n; - float f4 = (float)fontMetricsImpl.getHeight() / (float)n; - float f5 = (float)fontMetricsImpl.getAscent() * 0.7f / (float)n; - GlyphMetrics glyphMetrics = new GlyphMetrics(f, f2, f4, f5); - return glyphMetrics; } -} \ No newline at end of file +} diff --git a/src/main/resources/AstaSans-Medium.ttf b/src/main/resources/assets/zen/fonts/AstaSans-Medium.ttf old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/AstaSans-Medium.ttf rename to src/main/resources/assets/zen/fonts/AstaSans-Medium.ttf diff --git a/src/main/resources/MaterialIcons-Regular.ttf b/src/main/resources/assets/zen/fonts/MaterialIcons-Regular.ttf old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/MaterialIcons-Regular.ttf rename to src/main/resources/assets/zen/fonts/MaterialIcons-Regular.ttf diff --git a/src/main/resources/MuseoSansCyrl-900.ttf b/src/main/resources/assets/zen/fonts/MuseoSansCyrl-900.ttf old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/MuseoSansCyrl-900.ttf rename to src/main/resources/assets/zen/fonts/MuseoSansCyrl-900.ttf diff --git a/src/main/resources/Poppins-Bold.ttf b/src/main/resources/assets/zen/fonts/Poppins-Bold.ttf old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/Poppins-Bold.ttf rename to src/main/resources/assets/zen/fonts/Poppins-Bold.ttf diff --git a/src/main/resources/Poppins-Medium.ttf b/src/main/resources/assets/zen/fonts/Poppins-Medium.ttf old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/Poppins-Medium.ttf rename to src/main/resources/assets/zen/fonts/Poppins-Medium.ttf diff --git a/src/main/resources/Poppins-Regular.ttf b/src/main/resources/assets/zen/fonts/Poppins-Regular.ttf old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/Poppins-Regular.ttf rename to src/main/resources/assets/zen/fonts/Poppins-Regular.ttf diff --git a/src/main/resources/axiforma_bold.ttf b/src/main/resources/assets/zen/fonts/axiforma_bold.ttf old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/axiforma_bold.ttf rename to src/main/resources/assets/zen/fonts/axiforma_bold.ttf diff --git a/src/main/resources/axiforma_extrabold.ttf b/src/main/resources/assets/zen/fonts/axiforma_extrabold.ttf old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/axiforma_extrabold.ttf rename to src/main/resources/assets/zen/fonts/axiforma_extrabold.ttf diff --git a/src/main/resources/axiforma_regular.ttf b/src/main/resources/assets/zen/fonts/axiforma_regular.ttf old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/axiforma_regular.ttf rename to src/main/resources/assets/zen/fonts/axiforma_regular.ttf diff --git a/src/main/resources/icon.ttf b/src/main/resources/assets/zen/fonts/icon.ttf old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/icon.ttf rename to src/main/resources/assets/zen/fonts/icon.ttf diff --git a/src/main/resources/material.ttf b/src/main/resources/assets/zen/fonts/material.ttf old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/material.ttf rename to src/main/resources/assets/zen/fonts/material.ttf diff --git a/src/main/resources/opensans.ttf b/src/main/resources/assets/zen/fonts/opensans.ttf old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/opensans.ttf rename to src/main/resources/assets/zen/fonts/opensans.ttf diff --git a/src/main/resources/pingfang_sc_regular.ttf b/src/main/resources/assets/zen/fonts/pingfang_sc_regular.ttf old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/pingfang_sc_regular.ttf rename to src/main/resources/assets/zen/fonts/pingfang_sc_regular.ttf diff --git a/src/main/resources/product_sans_regular.ttf b/src/main/resources/assets/zen/fonts/product_sans_regular.ttf old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/product_sans_regular.ttf rename to src/main/resources/assets/zen/fonts/product_sans_regular.ttf diff --git a/src/main/resources/quicksand.ttf b/src/main/resources/assets/zen/fonts/quicksand.ttf old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/quicksand.ttf rename to src/main/resources/assets/zen/fonts/quicksand.ttf diff --git a/src/main/resources/zenicon-Regular.ttf b/src/main/resources/assets/zen/fonts/zenicon-Regular.ttf old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/zenicon-Regular.ttf rename to src/main/resources/assets/zen/fonts/zenicon-Regular.ttf