OgUi
Origocraft's view layer — every zui screen, as **pure builders**: each returns a widget tree from the current game state and never mutates it.
OgUi
Origocraft's view layer — every zui screen, as pure builders: each returns a widget tree from the current game state and never mutates it.
Screens it builds:
- Menus — main / class-select / settings / credits.
- HUD — player, target, and pet frames; the ability hotbar; the Dawnvale minimap; the quest tracker; the combat log; the XP bar.
- World overlay — floating combat text, enemy nameplates, the cast bar, boss slam warnings, audio-cue subtitles, the victory banner.
- Panels — inventory/character, NPC dialogue, vendor, bank, pause, and death.
How the controller drives it
The screens read live game state through six refs the controller binds once per refresh, then calls the builders:
local Ui = require("@root::og.OgUi")
Ui.bind({ S = state, U = uiState, actors = actors,
saved = saved, w2s = worldToScreen, readPos = readPos })
ui.updateScreen("og_frames", Ui.scrFrames())
ui.updateScreen("og_menu", Ui.buildMenu())
Exposed builders: scrDim, buildMenu, buildPanel, scrFrames,
scrMap, scrQuest, scrLog, scrBar, buildOverlay.
Requires OgData and OgSim for
content and queries, and @builtin::modules.zui for widgets. Reskinning
the game is a matter of editing this module — the palette C and every
layout live here, and nothing here touches entities or the simulation.
Scoped to this part · feeds back into the world's score.