完成多出修改

修复拾取界面点击无效问题
修复宠物训练界面不显示训练点问题
新增天赋分享到聊天界面
修复飞行界面无法关闭问题
修复术士宠物的显示问题
为天赋界面添加默认数据库支持
框架现在也可自主选择是否启用
玩家框架和目标框架可取消显示3D头像以及透明度修改
背包和银行也添加透明度自定义支持
优化tooltip性能和背包物品显示方式
修复布局模式在ui缩放后不能正常定位的问题
添加硬核模式危险和死亡的工会通报
添加拾取和已拾取的框体
等等
This commit is contained in:
rucky
2026-03-23 10:25:25 +08:00
parent 63337b14d2
commit ec9e3c29d6
34 changed files with 13897 additions and 578 deletions

View File

@@ -105,27 +105,52 @@ function SFrames.Player:ApplyConfig()
local cfg = self:GetConfig()
local f = self.frame
local db = SFramesDB or {}
local showPortrait = db.playerShowPortrait ~= false
local frameAlpha = tonumber(db.playerFrameAlpha) or 1
frameAlpha = Clamp(frameAlpha, 0.1, 1.0)
f:SetScale(cfg.scale)
f:SetWidth(cfg.width)
f:SetHeight(cfg.height)
f:SetAlpha(frameAlpha)
if f.portrait then
f.portrait:SetWidth(cfg.portraitWidth)
f.portrait:SetHeight(cfg.height - 2)
end
if f.portraitBG then
f.portraitBG:ClearAllPoints()
f.portraitBG:SetPoint("TOPLEFT", f, "TOPLEFT", 0, 0)
f.portraitBG:SetPoint("BOTTOMRIGHT", f.portrait, "BOTTOMRIGHT", 1, -1)
end
if f.health then
f.health:ClearAllPoints()
f.health:SetPoint("TOPLEFT", f.portrait, "TOPRIGHT", 1, 0)
f.health:SetPoint("TOPRIGHT", f, "TOPRIGHT", -1, -1)
f.health:SetHeight(cfg.healthHeight)
if showPortrait then
if f.portrait then
f.portrait:SetWidth(cfg.portraitWidth)
f.portrait:SetHeight(cfg.height - 2)
f.portrait:Show()
end
if f.portraitBG then
f.portraitBG:ClearAllPoints()
f.portraitBG:SetPoint("TOPLEFT", f, "TOPLEFT", 0, 0)
f.portraitBG:SetPoint("BOTTOMRIGHT", f.portrait, "BOTTOMRIGHT", 1, -1)
f.portraitBG:Show()
end
if f.health then
f.health:ClearAllPoints()
f.health:SetPoint("TOPLEFT", f.portrait, "TOPRIGHT", 1, 0)
f.health:SetPoint("TOPRIGHT", f, "TOPRIGHT", -1, -1)
f.health:SetHeight(cfg.healthHeight)
end
if f.classIcon and f.classIcon.overlay then
f.classIcon.overlay:ClearAllPoints()
f.classIcon.overlay:SetPoint("CENTER", f.portrait, "TOPRIGHT", 0, 0)
end
else
if f.portrait then f.portrait:Hide() end
if f.portraitBG then f.portraitBG:Hide() end
if f.health then
f.health:ClearAllPoints()
f.health:SetPoint("TOPLEFT", f, "TOPLEFT", 1, -1)
f.health:SetPoint("TOPRIGHT", f, "TOPRIGHT", -1, -1)
f.health:SetHeight(cfg.healthHeight)
end
if f.classIcon and f.classIcon.overlay then
f.classIcon.overlay:ClearAllPoints()
f.classIcon.overlay:SetPoint("CENTER", f, "TOPLEFT", 8, 0)
end
end
if f.healthBGFrame then
@@ -147,6 +172,21 @@ function SFrames.Player:ApplyConfig()
f.powerBGFrame:SetPoint("BOTTOMRIGHT", f.power, "BOTTOMRIGHT", 1, -1)
end
if f.restOverlay then
if showPortrait then f.restOverlay:SetAlpha(1) else f.restOverlay:SetAlpha(0) end
end
if f.castbar then
f.castbar:ClearAllPoints()
if showPortrait then
f.castbar:SetPoint("BOTTOMRIGHT", f, "TOPRIGHT", 0, 6)
f.castbar:SetPoint("BOTTOMLEFT", f.portrait, "TOPLEFT", SFrames.Config.castbarHeight + 6, 6)
else
f.castbar:SetPoint("BOTTOMRIGHT", f, "TOPRIGHT", 0, 6)
f.castbar:SetPoint("BOTTOMLEFT", f, "TOPLEFT", SFrames.Config.castbarHeight + 6, 6)
end
end
local outline = (SFrames and SFrames.Media and SFrames.Media.fontOutline) or "OUTLINE"
local fontPath = SFrames:GetFont()
@@ -471,7 +511,13 @@ function SFrames.Player:Initialize()
SFrames:RegisterEvent("PARTY_MEMBERS_CHANGED", function() self:UpdateLeaderIcon() end)
SFrames:RegisterEvent("PARTY_LEADER_CHANGED", function() self:UpdateLeaderIcon() end)
SFrames:RegisterEvent("RAID_TARGET_UPDATE", function() self:UpdateRaidIcon() end)
SFrames:RegisterEvent("UNIT_PORTRAIT_UPDATE", function() if arg1 == "player" then self.frame.portrait:SetUnit("player") self.frame.portrait:SetCamera(0) self.frame.portrait:SetPosition(-1.0, 0, 0) end end)
SFrames:RegisterEvent("UNIT_PORTRAIT_UPDATE", function()
if arg1 == "player" and self.frame.portrait and not (SFramesDB and SFramesDB.playerShowPortrait == false) then
self.frame.portrait:SetUnit("player")
self.frame.portrait:SetCamera(0)
self.frame.portrait:SetPosition(-1.0, 0, 0)
end
end)
SFrames:RegisterEvent("UNIT_DISPLAYPOWER", function() if arg1 == "player" then self:UpdatePowerType(); self:UpdatePower() end end)
SFrames:RegisterEvent("UPDATE_SHAPESHIFT_FORM", function() self:UpdatePowerType(); self:UpdatePower() end)
SFrames:RegisterEvent("PLAYER_UPDATE_RESTING", function() self:UpdateRestingStatus() end)
@@ -587,6 +633,12 @@ function SFrames.Player:ScanTrainer()
return
end
if SetTrainerServiceTypeFilter then
SetTrainerServiceTypeFilter("available", 1)
SetTrainerServiceTypeFilter("unavailable", 1)
SetTrainerServiceTypeFilter("used", 1)
end
local _, classEn = UnitClass("player")
if not classEn or not SFramesDB then self.scanningTrainer = nil return end
@@ -966,9 +1018,12 @@ function SFrames.Player:UpdateAll()
formattedLevel = formattedLevel .. " "
end
self.frame.portrait:SetUnit("player")
self.frame.portrait:SetCamera(0)
self.frame.portrait:SetPosition(-1.0, 0, 0)
local showPortrait = not (SFramesDB and SFramesDB.playerShowPortrait == false)
if showPortrait and self.frame.portrait then
self.frame.portrait:SetUnit("player")
self.frame.portrait:SetCamera(0)
self.frame.portrait:SetPosition(-1.0, 0, 0)
end
-- Class Color for Health
local localizedClass, class = UnitClass("player")
@@ -1477,6 +1532,12 @@ function SFrames.Player:Initialize()
CastingBarFrame:UnregisterAllEvents()
CastingBarFrame:Hide()
end
-- Register mover
if SFrames.Movers and SFrames.Movers.RegisterMover and self.frame then
SFrames.Movers:RegisterMover("PlayerFrame", self.frame, "玩家",
"CENTER", "UIParent", "CENTER", -200, -100)
end
end
--------------------------------------------------------------------------------