1.3.0
What's new
XephUI
1.3.0 (2026-10-15)
Full Changelog Previous Releases
- updates
- Merge pull request #4 from ljosberinn/feature/action-tracker
add action tracker - Merge pull request #3 from ljosberinn/feature/break-timer
Feature/break timer - add action tracker
- Document the break timer module
- Drop the scope block around the parked icon's layout
- Inline the break timer's single-use functions
Eleven of them had exactly one caller. The geometry helpers fold into the
callers that used them, the two icon acquisitions and the positioning fold
into the phase that enters them, and the two per-addon message handlers
collapse into the event script, which drops the duplicated rank check and
StartBreak tail they each carried.
The timeline hooks were guarded by a flag on a path that only ever ran once,
so they now install at load instead.
Kept as functions: EnterParkedPhase, ValidateParkedLayout and OnUpdateTick,
each of which would push its single caller past a readable length. - Inline the break timer's single-use constants
The layout inputs, the clamp bounds, the throttle and the tick interval each
had exactly one reader, so the numbers now sit at the point of use with the
comments that justified them.
Also declares BigWigs and DBM-Core as optional dependencies. The boss mod
check runs at our own ADDON_LOADED, where neither is otherwise guaranteed to
have loaded; OptionalDeps forces both ahead of us when installed and is inert
when they are not. - Do nothing when BigWigs or DBM is installed
Both render their own break display, and competing with that means double
bars. Checked at login rather than at our own ADDON_LOADED, since neither is
guaranteed to have loaded by then.
The BigWigs callback registration goes with it. It existed to catch a solo
/break, which dispatches locally and never reaches the wire, but without a
boss mod installed there is no /break to issue. CHAT_MSG_ADDON on both
prefixes is now the only ingest path.
The start throttle stays: a single /break puts both wire formats on the air
so that BigWigs and DBM users alike see it, so every break still arrives
twice. - Drop the break timer's saved variables
A break no longer survives a reload. BigWigs already persists its own break
and re-fires BigWigs_StartBreak on login, which the callback registration
picks up, so the saved break only ever covered a client running neither
BigWigs nor DBM that reloaded mid-break.
The fallback display loses its remembered position with it and is now fixed
rather than draggable. TearDown absorbs EndBreak, which existed only to clear
the saved break. - Drop icon setting compat from the parked break icon
The parked icon no longer mirrors IconSize, ShowSpellName, ShowTimer or
FlipHorizontally, and the name text it needed is gone with them. At a
non-default IconSize it is now the wrong size against the event it hands off
to, but still correctly positioned, since track offsets are independent of
icon size.
The countdown is unconditional rather than gated on ShowTimer, and the four
setting-updater hooks that existed only to re-derive all of this go with it. - Render BigWigs and DBM break timers on the encounter timeline
Ingest/breakfrom either addon and display it ourselves. Above the long
track's maximum event duration the break is a replica icon parked at that
track's entry offset; at and below it, a realC_EncounterTimelinescript
event takes over and runs the last minute natively.
Ingest is dependency-free: aCHAT_MSG_ADDONlistener on theBigWigsand
D5prefixes covers both wire formats, and rank is validated against the
event's own sender rather than the name in the DBM body, which strips realm
spaces and hyphens and so does not round-trip cross-realm. BigWigs' callback
registry is used additionally when it is loaded, because a solo/break
dispatches locally and never reaches the wire.
The parked icon replicatesEncounterTimelineTrackLayoutrather than reading
Blizzard's offsets, which do not exist until the timeline has been shown and
laid out. Wherever the live values are valid they are compared against the
computed ones, and a mismatch disqualifies the timeline for the session in
favour of a plain movable display. That display also covers a disabled
timeline feature and a non-track active view.
Parking requiresSetExplicitlyShown, since a break above the long track's
maximum has neither visible events nor event frames forEvaluateVisibility
to react to.
This mod has no additional files

