Skip to content

v0.1.0

Choose a tag to compare

@neverforward neverforward released this 18 Sep 15:14
· 35 commits to main since this release

Added

  • Client configuration screen (Dear ImGui), opened with /insight gui or a hotkey and modal while it
    is open: every option in grouped sections with an inline editor (switch, slider, combo box,
    multi-line text, key binding), the appearance settings, a live preview of the panel, a status line
    for the last change and immediate saving.
  • Two configurable hotkeys (open the screen, show/hide the info display), registered with
    LeviLamina so the game's own key settings can remap them, and rebindable from the screen itself.
  • A language row that lists exactly the languages this mod ships (plus auto); fixed choices such as
    the anchor positions are shown as translated labels instead of their raw tokens.

Changed

  • The configuration screen takes its input from Dear ImGui's Win32 backend through a window-procedure
    hook, so clicking, dragging, scrolling and text editing behave like a normal desktop window. While
    it is open the game receives neither mouse nor keyboard messages, and raw mouse input no longer
    turns the camera.
  • Cursor handling on the client was rewritten: the pointer is handed over on the window thread while
    the screen is open and given back on close, so it is visible in the screen and hidden again - and
    still locked inside the game window - while playing.
  • client.language is a stored preference rather than something detected at runtime (default
    zh_cn); auto follows the client only when it reports a language this mod actually ships, and a
    locale code is always resolved to the real message file (zh_CN -> zh_cn) before lookup.
  • Offsets are applied relative to the anchored edge: a positive value pushes the panel towards the
    middle of the screen, so the whole 0..1 range is usable with every anchor. The panel is also
    never allowed to grow wider than the display (its text wraps instead), which is what previously
    pinned it to the left edge and made the horizontal offset look ineffective.
  • The info panel is not drawn while the configuration screen is open: the screen shows the preview
    instead of a duplicate panel behind it.
  • Slider rows keep their own value while they are open, so a drag is no longer undone by the value
    being re-read from the configuration every frame.
  • Higher Config schema version (2) for the two new hotkey options; existing files are merged
    automatically.

Removed

  • The first, engine-event based input path of the configuration screen (cursor mapping, synthetic
    clicks and the software cursor) together with the debug output used while working on it.

Fixed

  • Changing one option could make every further change do nothing (the queued edits were applied after
    the "mod or overlay switched off" shortcut that editing those very options triggers).
  • Two edits made between two ticks of the game thread could drop the earlier one; edits are queued
    now.
  • Text options could not be edited a second time because the edit buffer was refilled from the
    configuration every frame.
  • Integer options (for example the sampling interval) rejected the decimal values the sliders send.
  • Long values (block and entity formats) spilled over the neighbouring rows and out of the window;
    they are folded onto one line and truncated now.
  • The pointer stayed visible after closing the configuration screen and could leave the game window.
  • Enum options showed their raw tokens (top_left, on) instead of a readable, translated label.