Commit Graph
28 Commits
Author SHA1 Message Date
froslanz accbc69521 drop font file loading, resolve fonts by name only
the Font setting already accepts java logical fonts and any installed
system family by typing it, so the fros/fonts folder machinery was
dead weight: file resolution, the auto-created directory, and the
2-second retry for files dropped in later are all gone. an unknown
name now just logs "Font '<name>' not found" once per change and falls
back to the vanilla font. the empty fros/fonts directory was removed
from the game dir as well
2026-10-22 14:59:41 -04:00
froslanz df5d90fb9d Merge remote main: README typo fix 2026-10-22 14:30:10 -04:00
froslanz 6e8746c9d1 show [+]/[-] badges on module toggle notifications
toggling a module now announces "[+] Name" in green for enabled and
"[-] Name" in red for disabled instead of the trailing on/off wording.
visual range notifications keep the shared "{gray} name message" format
2026-10-22 13:52:50 -04:00
froslanz f0398c7011 remove the MinecraftFont toggle and always draw text shadows
the toggle existed to switch back to the vanilla font, but disabling it
left every label without a shadow which read as a bug. the setting,
its visibility hooks and FrosFont's vanilla-mode read are gone; Font
and FontSize now always apply, and every label draws its shadow in both
the custom font and the vanilla fallback path. a stale MinecraftFont key
in old configs is ignored by the loader and disappears on next save.
chat and command output keep the untouched vanilla font without shadows
2026-10-22 13:23:25 -04:00
froslanz 7fc42b34d8 darken colored text segments when rasterizing shadows
the shadow pass only darkened the base color, so any segment with an
explicit color code (the watermark's accent from {global}, the slider
value's section-7 gray) punched through at full brightness, drawing a
colored ghost one pixel off the text. shadow rasters now pass the
original color plus a shadow flag, and every segment is darkened at
flush time with the vanilla rule ((c & 0xFCFCFC) >> 2, alpha kept), so
accent text gets a dark accent shadow and gray gets a dark gray one
2026-10-22 13:19:07 -04:00
froslanz 9b6a55d66c snap dragged hud elements to each other and to a grid
while dragging in the hud editor each axis first attracts to the closest
edge or center of any other enabled hud element within 4 gui units, and
otherwise rounds onto a 4px grid so layouts stay tidy. positions are
re-clamped to the screen after snapping and the snap is computed from the
raw pointer position each frame so there is no feedback jitter while
dragging past an alignment
2026-10-22 12:57:02 -04:00
froslanz 3568996138 center clickgui text by the font's cap band instead of vanilla offsets
button labels, panel titles and the color picker's copy/paste text used
y offsets hand-tuned for vanilla's 9px line box, so the custom font's
14px line box rendered text ~4px too low, poking out below 15px buttons
and over the header accent line. FrosFont now measures the distance from
line top to the middle of the cap band (glyph 'A' visual bounds) and all
labels center on that via FrosFont.visualCenter()/Item.textY(). the
vanilla fallback lands on the exact old offsets, so nothing moves when
fonts are disabled, and the legacy getTextOffset() hack is gone
2026-10-22 12:54:00 -04:00
froslanz ebd0a76f0c tie text shadows to the custom font being active
HUD text, clickgui buttons, panel titles and the hud editor labels all
go through FrosFont's default draw now, which renders a drop shadow
only while the custom font is loaded. disabling fonts (MinecraftFont
toggle, or a missing font file falling back) renders everything flat,
matching the vanilla look, in both the hud and the clickgui
2026-10-22 12:27:52 -04:00
froslanz 6ab84a1051 add GUIScale slider for the client's own hud and clickgui
new 0.5x-2.0x slider in the ClickGui settings scales the clickgui, the
hud editor panel and every hud module about its own anchor. mouse
coordinates are divided back into layout units on entry so dragging,
sliders and hover checks keep working, hud hit boxes and drag clamping
use the scaled extents, and the font rasterizer follows the ui scale so
text stays one texel per screen pixel at any scale factor
2026-10-22 12:26:26 -04:00
froslanz 1f69a3ecb4 render font glyphs at device resolution to fix pixelation
glyphs were rasterized at gui-space size and then magnified by the
gui scale with nearest-neighbour sampling, making every custom font
blocky. rasters are now built at font-size * gui-scale (one texel per
screen pixel) and drawn through a 1/scale pose, so text is 1:1 and
antialiased at any gui scale. measurements convert back to gui units
and a gui scale change re-rasterizes everything
2026-10-22 11:53:39 -04:00
froslanz b682961856 add MinecraftFont setting to switch back to the vanilla font
toggling it on hides Font/FontSize and routes all client ui text back
through Minecraft's font renderer
2026-10-22 11:37:15 -04:00
froslanz 7b4fc41dba default the font to java's SansSerif logical font
resolves to a native generic sans on every os (Arial/Helvetica on
windows/mac, DejaVu/Liberation on linux); other installed system font
families can also be picked by name without dropping a file, files in
fros/fonts/ still take priority
2026-10-22 11:34:30 -04:00
froslanz e453c948cc defer font texture releases by 250ms
evicted glyph textures may still be referenced by the current frame's
queued gui draws, so release them only after the frame has flushed
2026-10-22 11:30:58 -04:00
froslanz 8eaec3cc4f cleaner clickgui panels
- solid panel body instead of see-through gray, 1px dark frame around
  each panel and a drop shadow behind it
- accent color line separating header from body
- text shadows on all gui text (panel titles, buttons, hud editor labels)
2026-10-22 11:28:55 -04:00
froslanz 30ccc6ea5a add custom font support for all client ui
- new FrosFont renderer: loads ttf/otf from fros/fonts/, rasterizes
  text to cached textures, falls back to the vanilla font when unset
- Font/FontSize settings in ClickGui (fontSize only shows when a font
  is set); missing files retry automatically every 2s
- all gui buttons, panels and hud modules now render through it
- handles section codes and styled components (watermark accent color)
2026-10-22 11:22:47 -04:00
froslanz d1cb9c8d3a remove gap between arraylist name and module info
info now sits tight against the name, separated only by a single
space character
2026-10-22 10:52:59 -04:00
froslanz 0df0d9334b fix arraylist shifting when module info appears
names are anchored to name widths only so dynamic info (killaura
target) can no longer move the whole list; info now sits directly on
the opposite side of its name
2026-10-22 10:14:36 -04:00
froslanz 7c44258b9b add VisualRange enter/exit notifications to Notifications
uses the radar hud's Range setting so notifications match exactly
what the radar shows
2026-10-22 09:51:12 -04:00
froslanz 4ff4902981 fix config loading, add arraylist module info
- fullbright no longer crashes during config load (mc.options is null
  while the game is still starting, which aborted loading every module
  registered after fullbright - including killaura's keybind)
- one broken module no longer aborts loading the rest
- fix "is a directory" IOException on every startup (commandmanager
  had no file name, so it resolved to the config folder itself)
- arraylist: alignment/sort options, module info shown on the opposite
  side of the row, hides hud/disabled modules behind settings
- killaura: show target name as module info
2026-10-22 08:57:57 -04:00
froslanz 1c3e2ff39f add radar hud module 2026-10-22 07:52:26 -04:00
froslanz 2db60e4299 fullbright 2026-10-21 18:12:04 -04:00
froslanz f12abdb488 Merge branch 'dev' 2026-10-21 17:44:23 -04:00
froslanz df5b28e394 add stuff 2026-10-21 17:30:14 -04:00
froslanz d8f69a650a sons 2026-10-21 17:04:30 -04:00
froslanz 5e5594b05c update license and fabricmodjson 2026-10-21 16:52:18 -04:00
froslanz 131df5fb0a add client base 2026-10-21 16:41:54 -04:00
froslanz 7139a130f3 rm -rf oyvey 2026-10-21 16:37:51 -04:00
froslanz 29d37c6c5c First commit 2026-10-21 16:36:37 -04:00