- the justify verbs had been written three times and drifted three ways; one implementation now serves the region, font-object and message-frame tables, and a cleared axis paints centre, as the client's draw path really does - MessageFrame and ScrollingMessageFrame gain the ten-verb font block they were missing entirely, so font calls on message frames stop raising - EnableKeyboard and IsKeyboardEnabled land as real Frame methods — eight addons were dying on their absence - the harness's METHODS ranking states its own limits instead of reading as a build queue Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
35 lines
2.1 KiB
Rust
35 lines
2.1 KiB
Rust
//! The engine-free core of benilla's UI engine (decision 0068): the WoW interface is data + a
|
|
//! runtime — TOC manifests, FrameXML documents, and Lua — and this crate owns everything about
|
|
//! that runtime which needs neither Bevy nor a GPU: parsing, template expansion, the anchor/layout
|
|
//! resolver, and the draw-order key. The Bevy side (rendering, input, the game-state API bindings)
|
|
//! lives in the app; the Lua VM is embedded by the app and calls back into this crate's model.
|
|
//!
|
|
//! Built currently: [`toc`] — the addon/FrameXML manifest parser; [`framexml`] — the FrameXML
|
|
//! document parser (order-preserving tree, template expansion, `$parent` substitution);
|
|
//! [`bindings_xml`] — the per-addon `Bindings.xml` parser (the third file format, feeding
|
|
//! [`script::keybind`]'s table); [`layout`]
|
|
//! — the anchor/layout resolver (anchor graph → resolved rects), transcribed bit-faithfully from
|
|
//! wow-5875-re's binary-verified spec; [`widget`] — the frame arena and its show/hide/strata/level/
|
|
//! scale/alpha propagation mutations; [`order`] — the strata/draw-layer vocabulary, the packed
|
|
//! total-order key, and the visible-tree traversal that realizes the client's painter order;
|
|
//! [`script`] — the engine-free Lua host (mlua 5.1) binding the arena/layout/order model to the
|
|
//! FrameScript object model + WoW stdlib so FrameXML/addon Lua runs against it (decision 0068);
|
|
//! [`loader`] — the FrameXML loader that joins the two, walking a parsed document to materialize live
|
|
//! frames in a running [`script::UiScript`] by driving the object model exactly as an addon does;
|
|
//! [`markup`] — the single owner of WoW's inline-markup grammar (`|cAARRGGBB`, `|H…|h…|h`, `|n`,
|
|
//! `||`): the client's token decoder and the per-byte class map its cursor law is built on;
|
|
//! [`source`] — what a UI source file *is* before any parser sees it: bytes, BOM-stripped, decoded
|
|
//! to text only where a Rust parser forces it (decision 1193).
|
|
|
|
pub mod bindings_xml;
|
|
pub mod framexml;
|
|
pub mod justify;
|
|
pub mod layout;
|
|
pub mod loader;
|
|
pub mod markup;
|
|
pub mod order;
|
|
pub mod script;
|
|
pub mod source;
|
|
pub mod toc;
|
|
pub mod widget;
|