mod-forever-ui: three differences the two captures gave up
Comparing my own bag with camelot's, side by side and pixel by pixel, named what was wrong. The panel let the world through. Camelot's interior is (16,14,12) and opaque: the gaps between slots went blue on mine. The colour is now the measured one, at full opacity. The title and the bag icon were missing. The metal nine-slice sat in OVERLAY, where the modern client can afford it because its portrait and title live in child frames at high level; 3.3.5 keeps them as plain regions of the frame, in BACKGROUND and ARTWORK, so the metal covered both. The nine-slice moves to BORDER. Every slot in camelot wears a frame, full or empty, dark grey: edges between 25 and 49, corners near 100, which is WhiteIconFrame at a tint of 0.39. Mine showed it white and only on full slots. It is now on every slot at that tint, and the quality colour takes over only from uncommon up -- the common items of the capture keep the grey. Both captures are kept in docs/reference/. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -225,13 +225,22 @@ end
|
||||
-- camelot/NineSliceLayoutOverrides.lua (coin haut droit x -2, coins bas
|
||||
-- y = -8).
|
||||
--
|
||||
-- PANEL_BACKGROUND_COLOR est une couleur du client, absente du code extrait :
|
||||
-- elle est MESUREE dans l'art, au point ou le fond deborde sous le coin de
|
||||
-- metal (0, 0, 0, 168/255).
|
||||
-- PANEL_BACKGROUND_COLOR est une couleur du client, absente du code extrait.
|
||||
-- Elle est MESUREE sur la capture du vrai client (docs/reference) : le fond
|
||||
-- d'un panneau y vaut (16, 14, 12) et il est OPAQUE -- le decor ne passe pas
|
||||
-- au travers. Un fond translucide fait virer au bleu les ecarts entre les
|
||||
-- cases d'un sac, ce qui a ete le premier ecart visible.
|
||||
--
|
||||
-- Les bords sont ETIRES et non paves : une texture d'atlas en pavage etale la
|
||||
-- feuille entiere.
|
||||
local PANNEAU_FOND = { 0, 0, 0, 168 / 255 }
|
||||
local PANNEAU_FOND = { 16 / 255, 14 / 255, 12 / 255, 1 }
|
||||
|
||||
-- L'art de metal se pose en BORDER et non en OVERLAY comme chez le client
|
||||
-- moderne : celui-ci range son portrait et son titre dans des cadres fils a
|
||||
-- niveau eleve, alors que 3.3.5 en fait de simples regions du cadre
|
||||
-- (portrait en BACKGROUND, titre en ARTWORK). En OVERLAY, le metal les
|
||||
-- recouvrait tous les deux.
|
||||
local PANNEAU_COUCHE = "BORDER"
|
||||
|
||||
local PANNEAU_COINS = {
|
||||
{ cle = "coinHautGauche", nom = "ui-frame-portraitmetal-cornertopleftsmall",
|
||||
@@ -278,7 +287,7 @@ function ForeverUI.SetPanelArt(frame)
|
||||
|
||||
-- 2. l'encadrement de metal
|
||||
for _, coin in ipairs(PANNEAU_COINS) do
|
||||
local texture = frame:CreateTexture(nil, "OVERLAY")
|
||||
local texture = frame:CreateTexture(nil, PANNEAU_COUCHE)
|
||||
if ForeverUI.SetAtlas(texture, coin.nom) then
|
||||
texture:SetPoint(coin.point, frame, coin.point, coin.x, coin.y)
|
||||
p[coin.cle] = texture
|
||||
@@ -288,7 +297,7 @@ function ForeverUI.SetPanelArt(frame)
|
||||
end
|
||||
|
||||
local function bord(nom, point1, cible1, relatif1, point2, cible2, relatif2)
|
||||
local texture = frame:CreateTexture(nil, "OVERLAY")
|
||||
local texture = frame:CreateTexture(nil, PANNEAU_COUCHE)
|
||||
if not ForeverUI.SetAtlas(texture, nom) then
|
||||
texture:Hide()
|
||||
return nil
|
||||
|
||||
@@ -110,6 +110,14 @@ local AIR_GRILLE_BOURSE = 1
|
||||
|
||||
local CADRE_QUALITE = "Interface" .. SEP .. "ForeverUI" .. SEP .. "common" .. SEP .. "whiteiconframe"
|
||||
|
||||
-- MESURE SUR LA CAPTURE. camelot pose un cadre sur CHAQUE case, pleine ou
|
||||
-- vide : gris sombre, bords entre 25 et 49, coins vers 100. L'image porte ces
|
||||
-- memes valeurs a 255 et 140 : la teinte vaut donc 0,39. La couleur de
|
||||
-- qualite ne prend le relais qu'a partir de peu commun -- les objets communs
|
||||
-- de la capture gardent le cadre gris.
|
||||
local CADRE_GRIS = 0.39
|
||||
local QUALITE_TEINTEE = 2
|
||||
|
||||
local RANGER = BAG_CLEANUP_BAGS or "Ranger les sacs"
|
||||
local RANGER_AIDE = BAG_CLEANUP_BAGS_DESCRIPTION
|
||||
or "Reunit les piles et remet les objets en ordre."
|
||||
@@ -156,7 +164,7 @@ local function habillerBouton(bouton)
|
||||
local contour = bouton:CreateTexture(nil, "OVERLAY")
|
||||
contour:SetTexture(CADRE_QUALITE)
|
||||
contour:SetAllPoints(bouton)
|
||||
contour:Hide()
|
||||
contour:SetVertexColor(CADRE_GRIS, CADRE_GRIS, CADRE_GRIS)
|
||||
bouton.foreverContour = contour
|
||||
|
||||
-- Le voile de recherche : la source le declare sur le bouton d'objet
|
||||
@@ -296,16 +304,19 @@ function Recherche.Appliquer(cadre)
|
||||
bouton.foreverVoile:Hide()
|
||||
end
|
||||
|
||||
-- Le cadre est toujours la ; seule sa teinte change, et seulement
|
||||
-- a partir de peu commun.
|
||||
local contour = bouton.foreverContour
|
||||
if contour then
|
||||
local qualite = select(4, GetContainerItemInfo(sac, emplacement))
|
||||
local couleur = qualite and ITEM_QUALITY_COLORS and ITEM_QUALITY_COLORS[qualite]
|
||||
if lien and couleur then
|
||||
local couleur = lien and qualite and qualite >= QUALITE_TEINTEE
|
||||
and ITEM_QUALITY_COLORS and ITEM_QUALITY_COLORS[qualite]
|
||||
if couleur then
|
||||
contour:SetVertexColor(couleur.r, couleur.g, couleur.b)
|
||||
contour:Show()
|
||||
else
|
||||
contour:Hide()
|
||||
contour:SetVertexColor(CADRE_GRIS, CADRE_GRIS, CADRE_GRIS)
|
||||
end
|
||||
contour:Show()
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 62 KiB |
+7
-5
@@ -1193,11 +1193,13 @@ def main():
|
||||
|
||||
contour = g.ContainerFrame1Item4.foreverContour
|
||||
vide = g.ContainerFrame1Item3.foreverContour
|
||||
print(" contour : case pleine visible=%s teinte=%s | case vide visible=%s" % (
|
||||
contour.shown, [round(v, 2) for v in contour.vertex.values()] if contour.vertex else None,
|
||||
vide.shown))
|
||||
assert contour.shown, "un objet n'a pas de contour"
|
||||
assert not vide.shown, "une case vide a un contour"
|
||||
gris = [round(v, 2) for v in vide.vertex.values()] if vide.vertex else None
|
||||
teinte = [round(v, 2) for v in contour.vertex.values()] if contour.vertex else None
|
||||
print(" contour : case pleine %s | case vide %s (les deux visibles : %s et %s)" % (
|
||||
teinte, gris, contour.shown, vide.shown))
|
||||
assert contour.shown and vide.shown, "camelot pose un cadre sur chaque case"
|
||||
assert gris and abs(gris[0] - 0.39) < 0.01, "la case vide n'a pas le gris de la capture"
|
||||
assert teinte and teinte != gris, "la qualite ne teinte pas le cadre"
|
||||
|
||||
# le champ et le bouton de tri ne se montrent que sur le sac principal
|
||||
g.ForeverUI.BagsLayout()
|
||||
|
||||
Reference in New Issue
Block a user