完成焦点等开发

This commit is contained in:
rucky
2026-03-31 18:03:23 +08:00
parent c7dd0f4848
commit 6e18269bfd
34 changed files with 6803 additions and 542 deletions

View File

@@ -10,6 +10,23 @@ SFrames.Media = {
fontOutline = "OUTLINE",
}
-- Built-in font choices (includes Nanami-Plates bundled fonts)
SFrames.FontChoices = {
{ key = "default", label = "默认 (ARIALN)", path = "Fonts\\ARIALN.TTF" },
{ key = "frizqt", label = "FRIZQT", path = "Fonts\\FRIZQT__.TTF" },
{ key = "morpheus", label = "Morpheus", path = "Fonts\\MORPHEUS.TTF" },
{ key = "skurri", label = "Skurri", path = "Fonts\\SKURRI.TTF" },
{ key = "np_handwrite", label = "手写DF+DB", path = "Interface\\AddOns\\Nanami-Plates\\fonts\\手写DF+DB.ttf" },
{ key = "np_pangwa", label = "胖娃方正英文数字", path = "Interface\\AddOns\\Nanami-Plates\\fonts\\胖娃方正英文数字.ttf" },
{ key = "np_yahei_star", label = "雅黑+一星球", path = "Interface\\AddOns\\Nanami-Plates\\fonts\\雅黑+一星球.ttf" },
{ key = "np_yahei_hand", label = "雅黑手写英文", path = "Interface\\AddOns\\Nanami-Plates\\fonts\\雅黑手写英文.ttf" },
}
SFrames._fontLookup = {}
for _, entry in ipairs(SFrames.FontChoices) do
SFrames._fontLookup[entry.key] = entry.path
end
function SFrames:GetSharedMedia()
if LibStub then
local ok, LSM = pcall(function() return LibStub("LibSharedMedia-3.0", true) end)
@@ -18,8 +35,24 @@ function SFrames:GetSharedMedia()
return nil
end
SFrames.BarTextures = {
{ key = "default", label = "默认", path = "Interface\\TargetingFrame\\UI-StatusBar" },
{ key = "bar_elvui", label = "ElvUI", path = "Interface\\AddOns\\Nanami-UI\\img\\bar\\bar_elvui.tga" },
{ key = "bar_gradient", label = "渐变", path = "Interface\\AddOns\\Nanami-UI\\img\\bar\\bar_gradient.tga" },
{ key = "bar_tukui", label = "TukUI", path = "Interface\\AddOns\\Nanami-UI\\img\\bar\\bar_tukui.tga" },
{ key = "flat", label = "纯色", path = "Interface\\Buttons\\WHITE8X8" },
}
SFrames._barTextureLookup = {}
for _, entry in ipairs(SFrames.BarTextures) do
SFrames._barTextureLookup[entry.key] = entry.path
end
function SFrames:GetTexture()
if SFramesDB and SFramesDB.barTexture then
local builtin = self._barTextureLookup[SFramesDB.barTexture]
if builtin then return builtin end
local LSM = self:GetSharedMedia()
if LSM then
local path = LSM:Fetch("statusbar", SFramesDB.barTexture, true)
@@ -30,6 +63,12 @@ function SFrames:GetTexture()
end
function SFrames:GetFont()
-- 1. Check built-in font key
if SFramesDB and SFramesDB.fontKey then
local builtin = self._fontLookup[SFramesDB.fontKey]
if builtin then return builtin end
end
-- 2. Fallback: LibSharedMedia font name
if SFramesDB and SFramesDB.fontName then
local LSM = self:GetSharedMedia()
if LSM then