Files
moon-well-ui/data/addon/ForeverUI/UIAtlas.lua
T
Adrestie 115de7ed41 Add mod-forever-ui: the modern interface rebuilt for a 3.3.5a client
The addon and the art it needs, read from a modern client and served to
3.3.5 through texture coordinates, since that client has no atlas.

What is in place: player frame with its states, death knight runes, target
frame and its classification rings, cast bar, action bar with its page block
and end caps, micro menu, bags bar, experience and reputation bars. Every
piece registers itself as a movable system.

This folder is the workspace. The addon in a client and the art in patch-Z
are copies tools/deployer.py makes, and what sits under Interface\ForeverUI
in the patch is exactly what data/art holds -- the deployer removes from the
archive anything this folder no longer carries. Each .blp comes with the .png
that shows what it holds.

docs/AMELIORATIONS.md lists what is known to be improvable: where the
reproduction departs from the reference and why, what the 2010 client cannot
do, and the debts left in the tooling.

The repository README also gains the row for mod-limit-break, which was
written earlier and had not been committed.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-21 20:12:09 +02:00

33 lines
877 B
Lua

-- UIAtlas : equivalent de SetAtlas pour un client 3.3.5
-- Une seule texture par feuille, adressage par SetTexCoord : aucun decoupage de fichier.
UIAtlas = UIAtlas or { sheets = {}, data = {} }
-- texture : objet Texture ; name : nom d'atlas (ex. "ui-hud-unitframe-player-portraiton-bar-health")
-- useAtlasSize : si vrai, applique aussi la taille d'origine de l'element
function UIAtlas.Apply(texture, name, useAtlasSize)
local e = UIAtlas.data[name]
if not e then
return false
end
texture:SetTexture(e[1])
texture:SetTexCoord(e[2], e[3], e[4], e[5])
if useAtlasSize then
texture:SetWidth(e[6])
texture:SetHeight(e[7])
end
return true
end
-- Renvoie les donnees brutes : chemin, u1, u2, v1, v2, largeur, hauteur
function UIAtlas.Get(name)
local e = UIAtlas.data[name]
if not e then
return nil
end
return e[1], e[2], e[3], e[4], e[5], e[6], e[7]
end