mirror of
https://github.com/brues-code/pfUI.git
synced 2026-11-03 17:36:56 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
001e09c1b7 | ||
|
|
494f176f18 | ||
|
|
8f1b3dc39b | ||
|
|
23d25c4791 | ||
|
|
ebb4b056c3 | ||
|
|
b17f5bcd3d | ||
|
|
e60f9eb410 | ||
|
|
66171d5354 | ||
|
|
8b239a5532 | ||
|
|
b6d570df97 | ||
|
|
698dedcb7a | ||
|
|
e609809fff | ||
|
|
3651341697 | ||
|
|
77be27094a | ||
|
|
3e50a0b34f | ||
|
|
3faeafdfc5 | ||
|
|
b2cffcb3c2 | ||
|
|
5476a28982 |
+110
-32
@@ -71,6 +71,7 @@ function pfUI:LoadConfig()
|
|||||||
pfUI:UpdateConfig("buffs", nil, "debuffrowsize", "16")
|
pfUI:UpdateConfig("buffs", nil, "debuffrowsize", "16")
|
||||||
pfUI:UpdateConfig("buffs", nil, "textinside", "0")
|
pfUI:UpdateConfig("buffs", nil, "textinside", "0")
|
||||||
pfUI:UpdateConfig("buffs", nil, "fontsize", "-1")
|
pfUI:UpdateConfig("buffs", nil, "fontsize", "-1")
|
||||||
|
pfUI:UpdateConfig("buffs", nil, "timers", "both")
|
||||||
|
|
||||||
pfUI:UpdateConfig("buffbar", "pbuff", "enable", "0")
|
pfUI:UpdateConfig("buffbar", "pbuff", "enable", "0")
|
||||||
pfUI:UpdateConfig("buffbar", "pbuff", "use_unitfonts", "0")
|
pfUI:UpdateConfig("buffbar", "pbuff", "use_unitfonts", "0")
|
||||||
@@ -149,38 +150,9 @@ function pfUI:LoadConfig()
|
|||||||
pfUI:UpdateConfig("cooldown", nil, "minutecolor", ".2,1,1,1")
|
pfUI:UpdateConfig("cooldown", nil, "minutecolor", ".2,1,1,1")
|
||||||
pfUI:UpdateConfig("cooldown", nil, "hourcolor", ".2,.5,1,1")
|
pfUI:UpdateConfig("cooldown", nil, "hourcolor", ".2,.5,1,1")
|
||||||
pfUI:UpdateConfig("cooldown", nil, "daycolor", ".2,.2,1,1")
|
pfUI:UpdateConfig("cooldown", nil, "daycolor", ".2,.2,1,1")
|
||||||
pfUI:UpdateConfig("cooldown", "actionbar", "text", "1")
|
pfUI:UpdateConfig("cooldown", nil, "blizzard_timers", "both")
|
||||||
pfUI:UpdateConfig("cooldown", "actionbar", "animation", "1")
|
pfUI:UpdateConfig("cooldown", nil, "lossofcontrol_timers", "both")
|
||||||
pfUI:UpdateConfig("cooldown", "actionbar", "reverse", "0")
|
pfUI:UpdateConfig("cooldown", nil, "foreign_timers", "sweep")
|
||||||
pfUI:UpdateConfig("cooldown", "bags", "text", "1")
|
|
||||||
pfUI:UpdateConfig("cooldown", "bags", "animation", "1")
|
|
||||||
pfUI:UpdateConfig("cooldown", "bags", "reverse", "0")
|
|
||||||
pfUI:UpdateConfig("cooldown", "blizzard", "text", "1")
|
|
||||||
pfUI:UpdateConfig("cooldown", "blizzard", "animation", "1")
|
|
||||||
pfUI:UpdateConfig("cooldown", "blizzard", "reverse", "0")
|
|
||||||
pfUI:UpdateConfig("cooldown", "unitframe", "text", "1")
|
|
||||||
pfUI:UpdateConfig("cooldown", "unitframe", "animation", "0")
|
|
||||||
pfUI:UpdateConfig("cooldown", "unitframe", "reverse", "1")
|
|
||||||
pfUI:UpdateConfig("cooldown", "indicator", "text", "1")
|
|
||||||
pfUI:UpdateConfig("cooldown", "indicator", "animation", "0")
|
|
||||||
pfUI:UpdateConfig("cooldown", "indicator", "reverse", "0")
|
|
||||||
pfUI:UpdateConfig("cooldown", "nameplate", "text", "1")
|
|
||||||
pfUI:UpdateConfig("cooldown", "nameplate", "animation", "0")
|
|
||||||
pfUI:UpdateConfig("cooldown", "nameplate", "reverse", "1")
|
|
||||||
pfUI:UpdateConfig("cooldown", "buff", "text", "1")
|
|
||||||
pfUI:UpdateConfig("cooldown", "buff", "animation", "1")
|
|
||||||
pfUI:UpdateConfig("cooldown", "buff", "reverse", "1")
|
|
||||||
pfUI:UpdateConfig("cooldown", "tooltip", "text", "1")
|
|
||||||
pfUI:UpdateConfig("cooldown", "tooltip", "animation", "0")
|
|
||||||
pfUI:UpdateConfig("cooldown", "tooltip", "reverse", "0")
|
|
||||||
pfUI:UpdateConfig("cooldown", "totem", "text", "1")
|
|
||||||
pfUI:UpdateConfig("cooldown", "totem", "animation", "1")
|
|
||||||
pfUI:UpdateConfig("cooldown", "totem", "reverse", "1")
|
|
||||||
pfUI:UpdateConfig("cooldown", "lossofcontrol", "text", "1")
|
|
||||||
pfUI:UpdateConfig("cooldown", "lossofcontrol", "animation", "1")
|
|
||||||
pfUI:UpdateConfig("cooldown", "lossofcontrol", "reverse", "0")
|
|
||||||
pfUI:UpdateConfig("cooldown", "foreign", "text", "0")
|
|
||||||
pfUI:UpdateConfig("cooldown", "foreign", "animation", "1")
|
|
||||||
|
|
||||||
pfUI:UpdateConfig("appearance", "castbar", "castbarcolor", ".7,.7,.9,.8")
|
pfUI:UpdateConfig("appearance", "castbar", "castbarcolor", ".7,.7,.9,.8")
|
||||||
pfUI:UpdateConfig("appearance", "castbar", "channelcolor", ".9,.9,.7,.8")
|
pfUI:UpdateConfig("appearance", "castbar", "channelcolor", ".9,.9,.7,.8")
|
||||||
@@ -207,6 +179,7 @@ function pfUI:LoadConfig()
|
|||||||
pfUI:UpdateConfig("appearance", "bags", "autoSortOnOpen", "0")
|
pfUI:UpdateConfig("appearance", "bags", "autoSortOnOpen", "0")
|
||||||
pfUI:UpdateConfig("appearance", "bags", "sortreverse", "0")
|
pfUI:UpdateConfig("appearance", "bags", "sortreverse", "0")
|
||||||
pfUI:UpdateConfig("appearance", "bags", "sortprioreverse", "0")
|
pfUI:UpdateConfig("appearance", "bags", "sortprioreverse", "0")
|
||||||
|
pfUI:UpdateConfig("appearance", "bags", "timers", "both")
|
||||||
pfUI:UpdateConfig("appearance", "minimap", "size", "140")
|
pfUI:UpdateConfig("appearance", "minimap", "size", "140")
|
||||||
pfUI:UpdateConfig("appearance", "minimap", "arrowscale", "1")
|
pfUI:UpdateConfig("appearance", "minimap", "arrowscale", "1")
|
||||||
pfUI:UpdateConfig("appearance", "minimap", "zonetext", "off")
|
pfUI:UpdateConfig("appearance", "minimap", "zonetext", "off")
|
||||||
@@ -460,6 +433,7 @@ function pfUI:LoadConfig()
|
|||||||
pfUI:UpdateConfig("unitframes", "raid", "raidlayout", "8x5")
|
pfUI:UpdateConfig("unitframes", "raid", "raidlayout", "8x5")
|
||||||
pfUI:UpdateConfig("unitframes", "raid", "raidpadding", "3")
|
pfUI:UpdateConfig("unitframes", "raid", "raidpadding", "3")
|
||||||
pfUI:UpdateConfig("unitframes", "raid", "raidfill", "VERTICAL")
|
pfUI:UpdateConfig("unitframes", "raid", "raidfill", "VERTICAL")
|
||||||
|
pfUI:UpdateConfig("unitframes", "raid", "raidgrowleft", "0")
|
||||||
pfUI:UpdateConfig("unitframes", "raid", "collapse", "0")
|
pfUI:UpdateConfig("unitframes", "raid", "collapse", "0")
|
||||||
pfUI:UpdateConfig("unitframes", "raid", "raidgrouplabel", "0")
|
pfUI:UpdateConfig("unitframes", "raid", "raidgrouplabel", "0")
|
||||||
pfUI:UpdateConfig("unitframes", "raid", "grouplabelxoff", "0")
|
pfUI:UpdateConfig("unitframes", "raid", "grouplabelxoff", "0")
|
||||||
@@ -550,6 +524,8 @@ function pfUI:LoadConfig()
|
|||||||
pfUI:UpdateConfig("unitframes", unit, "bufflimit", "32")
|
pfUI:UpdateConfig("unitframes", unit, "bufflimit", "32")
|
||||||
pfUI:UpdateConfig("unitframes", unit, "buffperrow", "8")
|
pfUI:UpdateConfig("unitframes", unit, "buffperrow", "8")
|
||||||
pfUI:UpdateConfig("unitframes", unit, "ownbuffsize", "-1")
|
pfUI:UpdateConfig("unitframes", unit, "ownbuffsize", "-1")
|
||||||
|
pfUI:UpdateConfig("unitframes", unit, "buffoffx", "0")
|
||||||
|
pfUI:UpdateConfig("unitframes", unit, "buffoffy", "0")
|
||||||
pfUI:UpdateConfig("unitframes", unit, "buffspacingx", "1")
|
pfUI:UpdateConfig("unitframes", unit, "buffspacingx", "1")
|
||||||
pfUI:UpdateConfig("unitframes", unit, "buffspacingy", "1")
|
pfUI:UpdateConfig("unitframes", unit, "buffspacingy", "1")
|
||||||
pfUI:UpdateConfig("unitframes", unit, "debuffs", "TOPLEFT")
|
pfUI:UpdateConfig("unitframes", unit, "debuffs", "TOPLEFT")
|
||||||
@@ -557,8 +533,11 @@ function pfUI:LoadConfig()
|
|||||||
pfUI:UpdateConfig("unitframes", unit, "debufflimit", "32")
|
pfUI:UpdateConfig("unitframes", unit, "debufflimit", "32")
|
||||||
pfUI:UpdateConfig("unitframes", unit, "debuffperrow", "8")
|
pfUI:UpdateConfig("unitframes", unit, "debuffperrow", "8")
|
||||||
pfUI:UpdateConfig("unitframes", unit, "owndebuffsize", "-1")
|
pfUI:UpdateConfig("unitframes", unit, "owndebuffsize", "-1")
|
||||||
|
pfUI:UpdateConfig("unitframes", unit, "debuffoffx", "0")
|
||||||
|
pfUI:UpdateConfig("unitframes", unit, "debuffoffy", "0")
|
||||||
pfUI:UpdateConfig("unitframes", unit, "debuffspacingx", "1")
|
pfUI:UpdateConfig("unitframes", unit, "debuffspacingx", "1")
|
||||||
pfUI:UpdateConfig("unitframes", unit, "debuffspacingy", "1")
|
pfUI:UpdateConfig("unitframes", unit, "debuffspacingy", "1")
|
||||||
|
pfUI:UpdateConfig("unitframes", unit, "aura_timers", "text")
|
||||||
pfUI:UpdateConfig("unitframes", unit, "invert_healthbar", "0")
|
pfUI:UpdateConfig("unitframes", unit, "invert_healthbar", "0")
|
||||||
pfUI:UpdateConfig("unitframes", unit, "verticalbar", "0")
|
pfUI:UpdateConfig("unitframes", unit, "verticalbar", "0")
|
||||||
pfUI:UpdateConfig("unitframes", unit, "buff_indicator", "0")
|
pfUI:UpdateConfig("unitframes", unit, "buff_indicator", "0")
|
||||||
@@ -579,6 +558,7 @@ function pfUI:LoadConfig()
|
|||||||
pfUI:UpdateConfig("unitframes", unit, "indicator_size", "10")
|
pfUI:UpdateConfig("unitframes", unit, "indicator_size", "10")
|
||||||
pfUI:UpdateConfig("unitframes", unit, "indicator_spacing","1")
|
pfUI:UpdateConfig("unitframes", unit, "indicator_spacing","1")
|
||||||
pfUI:UpdateConfig("unitframes", unit, "indicator_pos", "TOPLEFT")
|
pfUI:UpdateConfig("unitframes", unit, "indicator_pos", "TOPLEFT")
|
||||||
|
pfUI:UpdateConfig("unitframes", unit, "indicator_timers", "text")
|
||||||
|
|
||||||
pfUI:UpdateConfig("unitframes", unit, "clickcast", "0")
|
pfUI:UpdateConfig("unitframes", unit, "clickcast", "0")
|
||||||
pfUI:UpdateConfig("unitframes", unit, "faderange", "0")
|
pfUI:UpdateConfig("unitframes", unit, "faderange", "0")
|
||||||
@@ -709,6 +689,7 @@ function pfUI:LoadConfig()
|
|||||||
pfUI:UpdateConfig("bars", nil, "count_color", ".2,1,.8,1")
|
pfUI:UpdateConfig("bars", nil, "count_color", ".2,1,.8,1")
|
||||||
pfUI:UpdateConfig("bars", nil, "bind_size", "8")
|
pfUI:UpdateConfig("bars", nil, "bind_size", "8")
|
||||||
pfUI:UpdateConfig("bars", nil, "bind_color", "1,1,0,1")
|
pfUI:UpdateConfig("bars", nil, "bind_color", "1,1,0,1")
|
||||||
|
pfUI:UpdateConfig("bars", nil, "timers", "both")
|
||||||
|
|
||||||
pfUI:UpdateConfig("bars", "gryphons", "texture", "None")
|
pfUI:UpdateConfig("bars", "gryphons", "texture", "None")
|
||||||
pfUI:UpdateConfig("bars", "gryphons", "color", ".6,.6,.6,1")
|
pfUI:UpdateConfig("bars", "gryphons", "color", ".6,.6,.6,1")
|
||||||
@@ -722,6 +703,7 @@ function pfUI:LoadConfig()
|
|||||||
pfUI:UpdateConfig("totems", nil, "iconsize", "26")
|
pfUI:UpdateConfig("totems", nil, "iconsize", "26")
|
||||||
pfUI:UpdateConfig("totems", nil, "spacing", "3")
|
pfUI:UpdateConfig("totems", nil, "spacing", "3")
|
||||||
pfUI:UpdateConfig("totems", nil, "showbg", "0")
|
pfUI:UpdateConfig("totems", nil, "showbg", "0")
|
||||||
|
pfUI:UpdateConfig("totems", nil, "timers", "both")
|
||||||
|
|
||||||
pfUI:UpdateConfig("panel", nil, "use_unitfonts", "0")
|
pfUI:UpdateConfig("panel", nil, "use_unitfonts", "0")
|
||||||
pfUI:UpdateConfig("panel", nil, "hide_leftchat", "0")
|
pfUI:UpdateConfig("panel", nil, "hide_leftchat", "0")
|
||||||
@@ -834,6 +816,7 @@ function pfUI:LoadConfig()
|
|||||||
pfUI:UpdateConfig("tooltip", "statusbar", "texture", "Interface\\AddOns\\pfUI\\img\\bar")
|
pfUI:UpdateConfig("tooltip", "statusbar", "texture", "Interface\\AddOns\\pfUI\\img\\bar")
|
||||||
pfUI:UpdateConfig("tooltip", nil, "font_tooltip", "Interface\\AddOns\\pfUI\\fonts\\Myriad-Pro.ttf")
|
pfUI:UpdateConfig("tooltip", nil, "font_tooltip", "Interface\\AddOns\\pfUI\\fonts\\Myriad-Pro.ttf")
|
||||||
pfUI:UpdateConfig("tooltip", nil, "font_tooltip_size", "12")
|
pfUI:UpdateConfig("tooltip", nil, "font_tooltip_size", "12")
|
||||||
|
pfUI:UpdateConfig("tooltip", nil, "aura_timers", "text")
|
||||||
|
|
||||||
-- Throttle Settings
|
-- Throttle Settings
|
||||||
|
|
||||||
@@ -958,6 +941,7 @@ function pfUI:LoadConfig()
|
|||||||
pfUI:UpdateConfig("nameplates", nil, "glowcolor", "1,1,1,1")
|
pfUI:UpdateConfig("nameplates", nil, "glowcolor", "1,1,1,1")
|
||||||
pfUI:UpdateConfig("nameplates", nil, "targetzoom", "0")
|
pfUI:UpdateConfig("nameplates", nil, "targetzoom", "0")
|
||||||
pfUI:UpdateConfig("nameplates", nil, "targetzoomval", ".40")
|
pfUI:UpdateConfig("nameplates", nil, "targetzoomval", ".40")
|
||||||
|
pfUI:UpdateConfig("nameplates", nil, "debuff_timers", "text")
|
||||||
pfUI:UpdateConfig("nameplates", nil, "notargalpha", ".75")
|
pfUI:UpdateConfig("nameplates", nil, "notargalpha", ".75")
|
||||||
pfUI:UpdateConfig("nameplates", nil, "healthtexture", "Interface\\AddOns\\pfUI\\img\\bar")
|
pfUI:UpdateConfig("nameplates", nil, "healthtexture", "Interface\\AddOns\\pfUI\\img\\bar")
|
||||||
pfUI:UpdateConfig("nameplates", "name", "fontstyle", "OUTLINE")
|
pfUI:UpdateConfig("nameplates", "name", "fontstyle", "OUTLINE")
|
||||||
@@ -1431,6 +1415,100 @@ function pfUI:MigrateConfig()
|
|||||||
pfUI_config.unitframes.always2dportrait = nil
|
pfUI_config.unitframes.always2dportrait = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- migrate the old cooldown settings into each feature's timers setting;
|
||||||
|
-- keyed on the old settings rather than the version, like the portrait
|
||||||
|
-- style. Reverse options are dropped: the direction follows what a
|
||||||
|
-- cooldown times.
|
||||||
|
local cooldown = pfUI_config.cooldown
|
||||||
|
|
||||||
|
-- 'mode' with its numbers and sweep replaced by 'text' and 'sweep' ("1" or
|
||||||
|
-- "0"), each kept when nil
|
||||||
|
local function timers(mode, text, sweep)
|
||||||
|
local numbers = mode == "text" or mode == "both"
|
||||||
|
local swipe = mode == "sweep" or mode == "both"
|
||||||
|
if text then numbers = text == "1" end
|
||||||
|
if sweep then swipe = sweep == "1" end
|
||||||
|
|
||||||
|
if numbers and swipe then return "both" end
|
||||||
|
return numbers and "text" or swipe and "sweep" or "off"
|
||||||
|
end
|
||||||
|
|
||||||
|
-- every unit frame's settings
|
||||||
|
local function units(func)
|
||||||
|
for _, unit in pairs(pfUI_config.unitframes) do
|
||||||
|
if type(unit) == "table" and unit.aura_timers then func(unit) end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- the shared look and the foreign and Blizzard toggles of appearance.cd
|
||||||
|
local cd = pfUI_config.appearance.cd
|
||||||
|
if cd then
|
||||||
|
for _, entry in pairs({ "font", "font_size", "dynamicsize", "threshold", "milliseconds",
|
||||||
|
"lowcolor", "normalcolor", "minutecolor", "hourcolor", "daycolor" }) do
|
||||||
|
cooldown[entry] = cd[entry] or cooldown[entry]
|
||||||
|
end
|
||||||
|
|
||||||
|
local sweep = cd.hideanim and (cd.hideanim == "1" and "0" or "1")
|
||||||
|
cooldown.foreign_timers = timers(cooldown.foreign_timers, cd.foreign, sweep)
|
||||||
|
|
||||||
|
-- spellbook and character slots took the foreign sweep, and with the
|
||||||
|
-- Blizzard toggle off the foreign numbers too
|
||||||
|
cooldown.blizzard_timers = timers(cooldown.blizzard_timers, cd.blizzard == "0" and (cd.foreign or "0") or nil, sweep)
|
||||||
|
|
||||||
|
-- pfUI drew its own numbers before; the native countdown shows them
|
||||||
|
-- only with this cvar on, which only the first-run setup sets
|
||||||
|
SetCVar("countdownForCooldowns", "1")
|
||||||
|
|
||||||
|
pfUI_config.appearance.cd = nil
|
||||||
|
end
|
||||||
|
|
||||||
|
-- the options of each module
|
||||||
|
local buffs, nameplates = pfUI_config.buffs, pfUI_config.nameplates
|
||||||
|
buffs.timers = timers(buffs.timers, nil, buffs.cooldown_anim)
|
||||||
|
nameplates.debuff_timers = timers(nameplates.debuff_timers, nameplates.debufftext, nameplates.debuffanim)
|
||||||
|
if nameplates.debufftimers == "0" then nameplates.debuff_timers = "off" end
|
||||||
|
|
||||||
|
units(function(unit)
|
||||||
|
unit.aura_timers = timers(unit.aura_timers, unit.cooldown_text, unit.cooldown_anim)
|
||||||
|
unit.indicator_timers = timers(unit.indicator_timers, unit.indicator_time)
|
||||||
|
unit.cooldown_text, unit.cooldown_anim, unit.cooldown_reverse, unit.indicator_time = nil, nil, nil, nil
|
||||||
|
end)
|
||||||
|
|
||||||
|
pfUI_config.bars.cooldown_reverse = nil
|
||||||
|
pfUI_config.appearance.bags.cooldown_reverse = nil
|
||||||
|
pfUI_config.totems.cooldown_reverse = nil
|
||||||
|
buffs.cooldown_anim, buffs.cooldown_reverse = nil, nil
|
||||||
|
nameplates.debufftext, nameplates.debuffanim, nameplates.debreverse, nameplates.debufftimers = nil, nil, nil, nil
|
||||||
|
|
||||||
|
-- the cooldown kinds of Settings -> Cooldown, each with its numbers and
|
||||||
|
-- sweep, into the setting that replaced it
|
||||||
|
local kinds = {
|
||||||
|
actionbar = { pfUI_config.bars, "timers" },
|
||||||
|
bags = { pfUI_config.appearance.bags, "timers" },
|
||||||
|
blizzard = { cooldown, "blizzard_timers" },
|
||||||
|
nameplate = { nameplates, "debuff_timers" },
|
||||||
|
buff = { buffs, "timers" },
|
||||||
|
tooltip = { pfUI_config.tooltip, "aura_timers" },
|
||||||
|
totem = { pfUI_config.totems, "timers" },
|
||||||
|
lossofcontrol = { cooldown, "lossofcontrol_timers" },
|
||||||
|
foreign = { cooldown, "foreign_timers" },
|
||||||
|
unitframe = "aura_timers",
|
||||||
|
indicator = "indicator_timers",
|
||||||
|
}
|
||||||
|
|
||||||
|
for kind, target in pairs(kinds) do
|
||||||
|
local old = cooldown[kind]
|
||||||
|
if type(old) == "table" then
|
||||||
|
if type(target) == "string" then
|
||||||
|
units(function(unit) unit[target] = timers(unit[target], old.text, old.animation) end)
|
||||||
|
else
|
||||||
|
target[1][target[2]] = timers(target[1][target[2]], old.text, old.animation)
|
||||||
|
end
|
||||||
|
cooldown[kind] = nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
pfUI_config.bars.cd_size = nil
|
||||||
|
|
||||||
-- Remove "Show only own debuffs" from unitframes and nameplates
|
-- Remove "Show only own debuffs" from unitframes and nameplates
|
||||||
-- (feature was removed; only Target Debuff Bar in buffwatch keeps it)
|
-- (feature was removed; only Target Debuff Bar in buffwatch keeps it)
|
||||||
if pfUI_config.nameplates then
|
if pfUI_config.nameplates then
|
||||||
|
|||||||
+52
-42
@@ -1,16 +1,20 @@
|
|||||||
-- load pfUI environment
|
-- load pfUI environment
|
||||||
setfenv(1, pfUI:GetEnvironment())
|
setfenv(1, pfUI:GetEnvironment())
|
||||||
|
|
||||||
-- Every pfUI cooldown is a Cooldown frame from CreateCooldown, made for one
|
-- Every pfUI cooldown is a Cooldown frame from CreateCooldown. The settings
|
||||||
-- kind of timer. Settings -> Cooldown (C.cooldown) sets for each kind its
|
-- of the feature it belongs to pick its timers: none, numbers, sweep or both.
|
||||||
-- countdown numbers, its sweep and the sweep's direction, and shares one font
|
-- Settings -> Cooldown (C.cooldown) sets one font and one formatter for them
|
||||||
-- and one formatter between them all. The numbers are the frame's own
|
-- all. The numbers are the frame's own countdown (ClassicAPI): the engine
|
||||||
-- countdown (ClassicAPI): the engine ticks them, gated by the
|
-- ticks them, gated by the countdownForCooldowns cvar. Other addons' Cooldown
|
||||||
-- countdownForCooldowns cvar. Other addons' Cooldown frames take the
|
-- frames take the "foreign" timers as their timers start.
|
||||||
-- "foreign" settings as their timers start.
|
|
||||||
|
|
||||||
-- kinds that time spells or items: no numbers for the global cooldown
|
local function ShowNumbers(mode)
|
||||||
local spell = { actionbar = true, bags = true, blizzard = true, foreign = true }
|
return mode == "text" or mode == "both"
|
||||||
|
end
|
||||||
|
|
||||||
|
local function ShowSweep(mode)
|
||||||
|
return mode == "sweep" or mode == "both"
|
||||||
|
end
|
||||||
|
|
||||||
-- every cooldown CreateCooldown made, for UpdateCooldowns
|
-- every cooldown CreateCooldown made, for UpdateCooldowns
|
||||||
local cooldowns = {}
|
local cooldowns = {}
|
||||||
@@ -58,60 +62,60 @@ function pfUI.api.GetCooldownFontSize(height)
|
|||||||
return size
|
return size
|
||||||
end
|
end
|
||||||
|
|
||||||
-- sizes the numbers to the cooldown's parent; the size follows its height,
|
-- sizes the numbers to the height of the frame the cooldown covers
|
||||||
-- so a timer start calls this again whenever that height changed
|
local function UpdateFont(cooldown, height)
|
||||||
local function UpdateFont(cooldown)
|
|
||||||
local height = (cooldown:GetParent() or cooldown):GetHeight()
|
|
||||||
cooldown.pfCountdownHeight = height
|
|
||||||
cooldown:GetCountdownFontString():SetFont(pfUI.media[C.cooldown.font], pfUI.api.GetCooldownFontSize(height), "OUTLINE")
|
cooldown:GetCountdownFontString():SetFont(pfUI.media[C.cooldown.font], pfUI.api.GetCooldownFontSize(height), "OUTLINE")
|
||||||
end
|
end
|
||||||
|
|
||||||
-- applies the settings of its kind to one of pfUI's cooldowns
|
-- a pfUI cooldown covers its parent, so it resizes with it; a hidden one is
|
||||||
local function SetupCooldown(cooldown)
|
-- laid out, and this runs, as it shows
|
||||||
local kind = cooldown.pfCooldownKind
|
local function OnSizeChanged(cooldown, width, height)
|
||||||
local config = C.cooldown[kind]
|
UpdateFont(cooldown, height)
|
||||||
local sweep = config.animation == "1" and not cooldown.pfTimeLeftOnly
|
|
||||||
|
|
||||||
cooldown:SetHideCountdownNumbers(config.text ~= "1")
|
|
||||||
cooldown:SetDrawSwipe(sweep)
|
|
||||||
cooldown:SetDrawBling(sweep)
|
|
||||||
cooldown:SetReverse(config.reverse == "1")
|
|
||||||
cooldown:SetMinimumCountdownDuration(spell[kind] and tonumber(C.cooldown.threshold) * 1000 or 0)
|
|
||||||
cooldown:SetCountdownFormatter(GetFormatter())
|
|
||||||
UpdateFont(cooldown)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- applies the "foreign" settings to another addon's cooldown. They only take
|
-- applies its timers setting to one of pfUI's cooldowns
|
||||||
|
local function SetupCooldown(cooldown)
|
||||||
|
local kind = cooldown.pfCooldownKind
|
||||||
|
local mode = cooldown.pfCooldownConfig[cooldown.pfCooldownKey]
|
||||||
|
local sweep = ShowSweep(mode) and not cooldown.pfTimeLeftOnly
|
||||||
|
|
||||||
|
cooldown:SetHideCountdownNumbers(not ShowNumbers(mode))
|
||||||
|
cooldown:SetDrawSwipe(sweep)
|
||||||
|
cooldown:SetDrawBling(sweep)
|
||||||
|
cooldown:SetReverse(kind == "aura")
|
||||||
|
cooldown:SetMinimumCountdownDuration(kind == "spell" and tonumber(C.cooldown.threshold) * 1000 or 0)
|
||||||
|
cooldown:SetCountdownFormatter(GetFormatter())
|
||||||
|
UpdateFont(cooldown, cooldown:GetParent():GetHeight())
|
||||||
|
end
|
||||||
|
|
||||||
|
-- applies the "foreign" timers to another addon's cooldown. They only take
|
||||||
-- the numbers or the sweep away, which the addon may have set up itself, so
|
-- the numbers or the sweep away, which the addon may have set up itself, so
|
||||||
-- turning one back on needs a reload.
|
-- turning one back on needs a reload.
|
||||||
local function SetupForeign(cooldown)
|
local function SetupForeign(cooldown)
|
||||||
local config = C.cooldown.foreign
|
local mode = C.cooldown.foreign_timers
|
||||||
|
|
||||||
if config.animation ~= "1" then
|
if not ShowSweep(mode) then
|
||||||
cooldown:SetDrawSwipe(false)
|
cooldown:SetDrawSwipe(false)
|
||||||
cooldown:SetDrawBling(false)
|
cooldown:SetDrawBling(false)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- omnicc's flag for cooldowns that want no numbers
|
-- omnicc's flag for cooldowns that want no numbers
|
||||||
if config.text ~= "1" or cooldown.noCooldownCount then
|
if not ShowNumbers(mode) or cooldown.noCooldownCount then
|
||||||
cooldown:SetHideCountdownNumbers(true)
|
cooldown:SetHideCountdownNumbers(true)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
cooldown:SetMinimumCountdownDuration(tonumber(C.cooldown.threshold) * 1000)
|
cooldown:SetMinimumCountdownDuration(tonumber(C.cooldown.threshold) * 1000)
|
||||||
cooldown:SetCountdownFormatter(GetFormatter())
|
cooldown:SetCountdownFormatter(GetFormatter())
|
||||||
UpdateFont(cooldown)
|
UpdateFont(cooldown, (cooldown:GetParent() or cooldown):GetHeight())
|
||||||
end
|
end
|
||||||
|
|
||||||
-- runs as a pfUI cooldown's timer starts: a timer with a total brings back
|
-- runs as a pfUI cooldown's timer starts: a timer with a total brings back
|
||||||
-- the sweep a time-left-only one took away, and the font follows a changed
|
-- the sweep a time-left-only one took away
|
||||||
-- height
|
|
||||||
local function StartTimer(cooldown, timeleftOnly)
|
local function StartTimer(cooldown, timeleftOnly)
|
||||||
if cooldown.pfTimeLeftOnly ~= timeleftOnly then
|
if cooldown.pfTimeLeftOnly ~= timeleftOnly then
|
||||||
cooldown.pfTimeLeftOnly = timeleftOnly
|
cooldown.pfTimeLeftOnly = timeleftOnly
|
||||||
SetupCooldown(cooldown)
|
SetupCooldown(cooldown)
|
||||||
elseif cooldown:GetParent():GetHeight() ~= cooldown.pfCountdownHeight then
|
|
||||||
UpdateFont(cooldown)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -129,17 +133,23 @@ hooksecurefunc("CooldownFrame_SetTimer", function(cooldown)
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
-- [ CreateCooldown ] --
|
-- [ CreateCooldown ] --
|
||||||
-- Creates one of pfUI's cooldowns: a Cooldown frame over all of 'parent'
|
-- Creates one of pfUI's cooldowns: a Cooldown frame over all of 'parent'.
|
||||||
-- with the settings of its kind. Start it with CooldownFrame_SetTimer.
|
-- Start it with CooldownFrame_SetTimer.
|
||||||
-- 'parent' [frame] the frame the cooldown covers
|
-- 'parent' [frame] the frame the cooldown covers
|
||||||
-- 'kind' [string] what it times, a group of C.cooldown: actionbar,
|
-- 'kind' [string] what it times: "spell" (spells and items: the sweep
|
||||||
-- bags, blizzard, unitframe, indicator, nameplate,
|
-- fills, no numbers for the global cooldown), "aura"
|
||||||
-- buff, tooltip, totem or lossofcontrol
|
-- (the sweep drains) or "timer" (the sweep fills)
|
||||||
|
-- 'config' [table] the settings that hold its timers
|
||||||
|
-- 'key' [string] the timers setting in 'config': "off", "text",
|
||||||
|
-- "sweep" or "both"
|
||||||
-- 'name' [string] optional frame name
|
-- 'name' [string] optional frame name
|
||||||
-- return [frame] the Cooldown frame
|
-- return [frame] the Cooldown frame
|
||||||
function pfUI.api.CreateCooldown(parent, kind, name)
|
function pfUI.api.CreateCooldown(parent, kind, config, key, name)
|
||||||
local cooldown = CreateFrame("Cooldown", name, parent, "CooldownFrameTemplate")
|
local cooldown = CreateFrame("Cooldown", name, parent, "CooldownFrameTemplate")
|
||||||
cooldown.pfCooldownKind = kind
|
cooldown.pfCooldownKind = kind
|
||||||
|
cooldown.pfCooldownConfig = config
|
||||||
|
cooldown.pfCooldownKey = key
|
||||||
|
cooldown:SetScript("OnSizeChanged", OnSizeChanged)
|
||||||
table.insert(cooldowns, cooldown)
|
table.insert(cooldowns, cooldown)
|
||||||
SetupCooldown(cooldown)
|
SetupCooldown(cooldown)
|
||||||
return cooldown
|
return cooldown
|
||||||
|
|||||||
@@ -86,6 +86,25 @@ do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- [ CreateMenuDivider ]
|
||||||
|
-- Adds a divider to a pfUIMenuStyleMixin menu: a 1px line in the border
|
||||||
|
-- color in place of the stock divider art. The style itself cannot do this,
|
||||||
|
-- as menu entries draw their own art.
|
||||||
|
-- 'description' [table] the menu description to add the divider to
|
||||||
|
-- returns: [table] the divider's element description
|
||||||
|
do
|
||||||
|
local function SkinDivider(frame)
|
||||||
|
frame.divider:SetHeight(1)
|
||||||
|
frame.divider:SetColorTexture(GetStringColor(pfUI_config.appearance.border.color))
|
||||||
|
end
|
||||||
|
|
||||||
|
function pfUI.api.CreateMenuDivider(description)
|
||||||
|
local divider = description:CreateDivider()
|
||||||
|
divider:AddInitializer(SkinDivider)
|
||||||
|
return divider
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- [ pfUIDropdownTemplate ]
|
-- [ pfUIDropdownTemplate ]
|
||||||
-- Mixin of the template in ui-widgets.xml: a dropdown that shows its selection
|
-- Mixin of the template in ui-widgets.xml: a dropdown that shows its selection
|
||||||
-- as text, with pfUI's arrow box at the right.
|
-- as text, with pfUI's arrow box at the right.
|
||||||
|
|||||||
+87
-33
@@ -19,11 +19,11 @@ local auraCorners = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
-- Flows the shown icons of an aura block outward from the frame edge, starting
|
-- Flows the shown icons of an aura block outward from the frame edge, starting
|
||||||
-- `offset` away from it (its own row gap when nil): `perrow` icons per row,
|
-- `offset` away from it (its own row gap when nil) and shifted on screen by
|
||||||
-- each row as tall as its largest icon. The first `icons.own` icons are the
|
-- `offx`/`offy`: `perrow` icons per row, each row as tall as its largest icon.
|
||||||
-- player's (C_UnitAuras lists them first) and use `icons.ownsize`. Returns the
|
-- The first `icons.own` icons are the player's (C_UnitAuras lists them first)
|
||||||
-- offset just past the block's last row, where a block sharing the same corner
|
-- and use `icons.ownsize`. Returns the offset just past the block's last
|
||||||
-- continues.
|
-- shifted row, where a block sharing the same corner continues.
|
||||||
local function LayoutAuraBlock(unit, icons, offset)
|
local function LayoutAuraBlock(unit, icons, offset)
|
||||||
local corner = auraCorners[icons.pos]
|
local corner = auraCorners[icons.pos]
|
||||||
local anchor = unit.config.portraitheight ~= "-1" and unit.hp or unit
|
local anchor = unit.config.portraitheight ~= "-1" and unit.hp or unit
|
||||||
@@ -42,7 +42,7 @@ local function LayoutAuraBlock(unit, icons, offset)
|
|||||||
local size = i <= icons.own and icons.ownsize or icons.size
|
local size = i <= icons.own and icons.ownsize or icons.size
|
||||||
icons[i]:SetSize(size, size)
|
icons[i]:SetSize(size, size)
|
||||||
icons[i]:ClearAllPoints()
|
icons[i]:ClearAllPoints()
|
||||||
icons[i]:SetPoint(corner[1], anchor, icons.pos, corner[2] * x, corner[3] * offset)
|
icons[i]:SetPoint(corner[1], anchor, icons.pos, icons.offx + corner[2] * x, icons.offy + corner[3] * offset)
|
||||||
|
|
||||||
x = x + size + icons.gapx
|
x = x + size + icons.gapx
|
||||||
if size > rowsize then rowsize = size end
|
if size > rowsize then rowsize = size end
|
||||||
@@ -50,7 +50,7 @@ local function LayoutAuraBlock(unit, icons, offset)
|
|||||||
i = i + 1
|
i = i + 1
|
||||||
end
|
end
|
||||||
|
|
||||||
if col > 0 then offset = offset + rowsize + icons.gapy end
|
if col > 0 then offset = offset + rowsize + icons.gapy + corner[3] * icons.offy end
|
||||||
return offset
|
return offset
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -248,6 +248,48 @@ local VISIBILITY_EVENTS = {
|
|||||||
UNIT_TARGET = true, -- a link of a chained frame's unit retargeted
|
UNIT_TARGET = true, -- a link of a chained frame's unit retargeted
|
||||||
}
|
}
|
||||||
|
|
||||||
|
-- The units of a chain that unit events name by token, whatever nampower does
|
||||||
|
-- with its GUID events: the focus, and the focus's target, whose unit events
|
||||||
|
-- ClassicAPI fires as "focustarget" from the unit's own fields.
|
||||||
|
local CHAIN_TOKENS = { focus = true, focustarget = true }
|
||||||
|
|
||||||
|
-- The events a frame hears hidden or not: the visibility events that concern
|
||||||
|
-- the unit it was created for (raid.lua remaps a raid frame's label, so this is
|
||||||
|
-- decided once, at creation), and the logout guard. UNIT_TARGET belongs to
|
||||||
|
-- RegisterChainEvents, and focus.lua drives the focus frames itself.
|
||||||
|
local function GetIdleEvents(label, fname)
|
||||||
|
local events = { PLAYER_ENTERING_WORLD = true, PLAYER_LOGOUT = true }
|
||||||
|
if label:find("^party") or label:find("^raid")
|
||||||
|
or fname == "Group0" or fname == "PartyPet0" or fname == "Party0Target" then
|
||||||
|
events.PARTY_MEMBERS_CHANGED = true
|
||||||
|
events.RAID_ROSTER_UPDATE = true
|
||||||
|
end
|
||||||
|
if label:find("^target") then events.PLAYER_TARGET_CHANGED = true end
|
||||||
|
if label:find("pet") then events.UNIT_PET = true end
|
||||||
|
return events
|
||||||
|
end
|
||||||
|
|
||||||
|
-- The events that only redraw what a frame shows. A hidden frame drops them,
|
||||||
|
-- and OnShow's full refresh catches up on whatever it missed.
|
||||||
|
local SHOWN_EVENTS = {
|
||||||
|
"PLAYER_AURAS_CHANGED", -- label=player && frame=buff
|
||||||
|
"PLAYER_EQUIPMENT_CHANGED", -- label=player && frame=buff (ClassicAPI: weapon-enchant buffs)
|
||||||
|
"PARTY_MEMBERS_CHANGED", -- frame=leaderIcon
|
||||||
|
"PARTY_LEADER_CHANGED", -- frame=leaderIcon
|
||||||
|
"RAID_ROSTER_UPDATE", -- frame=raidIcon
|
||||||
|
"PLAYER_UPDATE_RESTING", -- frame=restIcon
|
||||||
|
"PARTY_LOOT_METHOD_CHANGED", -- frame=lootIcon
|
||||||
|
"RAID_TARGET_UPDATE", -- frame=raidIcon
|
||||||
|
}
|
||||||
|
|
||||||
|
local function RegisterShownEvents(frame)
|
||||||
|
for i = 1, table.getn(SHOWN_EVENTS) do
|
||||||
|
frame:RegisterEvent(SHOWN_EVENTS[i])
|
||||||
|
end
|
||||||
|
-- label=pet; the player's own pet only, not every pet in view
|
||||||
|
frame:RegisterUnitEvent("UNIT_HAPPINESS", "pet")
|
||||||
|
end
|
||||||
|
|
||||||
-- ============================================================================
|
-- ============================================================================
|
||||||
-- GetUnitStats - health + power for a unit token.
|
-- GetUnitStats - health + power for a unit token.
|
||||||
-- Returns: hp, maxHp, power, maxPower, powerType
|
-- Returns: hp, maxHp, power, maxPower, powerType
|
||||||
@@ -445,7 +487,9 @@ function pfUI.uf:UpdateVisibility()
|
|||||||
--
|
--
|
||||||
-- A chained unit -- another unit's target, "targettarget" or "party1target"
|
-- A chained unit -- another unit's target, "targettarget" or "party1target"
|
||||||
-- -- has no token that unit events name, so the frame follows it by GUID,
|
-- -- has no token that unit events name, so the frame follows it by GUID,
|
||||||
-- which every unit event also fires with. It follows the unit only while
|
-- which nampower fires every unit event with too, unless its GUID events
|
||||||
|
-- are off or filtered. The focus's target is named (CHAIN_TOKENS), so that
|
||||||
|
-- frame follows its token instead. It follows the unit only while
|
||||||
-- the client has it: a link's target can be out of sight, and its coming
|
-- the client has it: a link's target can be out of sight, and its coming
|
||||||
-- back is then a new unit too. The unit changes with no event of its own
|
-- back is then a new unit too. The unit changes with no event of its own
|
||||||
-- whenever a link of the chain retargets; UNIT_TARGET on every link reports
|
-- whenever a link of the chain retargets; UNIT_TARGET on every link reports
|
||||||
@@ -454,8 +498,9 @@ function pfUI.uf:UpdateVisibility()
|
|||||||
self.chain = visibility ~= "hide" and unitstr:match("^(.+)target$") or nil
|
self.chain = visibility ~= "hide" and unitstr:match("^(.+)target$") or nil
|
||||||
if self.chain then
|
if self.chain then
|
||||||
local guid = UnitName(unitstr) and UnitGUID(unitstr)
|
local guid = UnitName(unitstr) and UnitGUID(unitstr)
|
||||||
if guid ~= self.eventunit then self.update_full = true end
|
if guid ~= self.unitguid then self.update_full = true end
|
||||||
self:RegisterUnitEvents(guid)
|
self.unitguid = guid
|
||||||
|
self:RegisterUnitEvents(guid and CHAIN_TOKENS[unitstr] and unitstr or guid)
|
||||||
else
|
else
|
||||||
self:RegisterUnitEvents(visibility ~= "hide" and unitstr or nil)
|
self:RegisterUnitEvents(visibility ~= "hide" and unitstr or nil)
|
||||||
end
|
end
|
||||||
@@ -877,6 +922,8 @@ function pfUI.uf:UpdateConfig()
|
|||||||
f.buffs.size = tonumber(f.config.buffsize)
|
f.buffs.size = tonumber(f.config.buffsize)
|
||||||
f.buffs.ownsize = f.config.ownbuffsize == "-1" and f.buffs.size or tonumber(f.config.ownbuffsize)
|
f.buffs.ownsize = f.config.ownbuffsize == "-1" and f.buffs.size or tonumber(f.config.ownbuffsize)
|
||||||
f.buffs.perrow = tonumber(f.config.buffperrow)
|
f.buffs.perrow = tonumber(f.config.buffperrow)
|
||||||
|
f.buffs.offx = tonumber(f.config.buffoffx)
|
||||||
|
f.buffs.offy = tonumber(f.config.buffoffy)
|
||||||
f.buffs.gapx = aura_border + tonumber(f.config.buffspacingx)
|
f.buffs.gapx = aura_border + tonumber(f.config.buffspacingx)
|
||||||
f.buffs.gapy = aura_border + tonumber(f.config.buffspacingy)
|
f.buffs.gapy = aura_border + tonumber(f.config.buffspacingy)
|
||||||
f.buffs.own = 0
|
f.buffs.own = 0
|
||||||
@@ -899,7 +946,7 @@ function pfUI.uf:UpdateConfig()
|
|||||||
f.buffs[i]:SetFrameLevel(12)
|
f.buffs[i]:SetFrameLevel(12)
|
||||||
f.buffs[i]:RegisterForClicks("RightButtonUp")
|
f.buffs[i]:RegisterForClicks("RightButtonUp")
|
||||||
|
|
||||||
f.buffs[i].cd = f.buffs[i].cd or CreateCooldown(f.buffs[i], "unitframe", f.buffs[i]:GetName() .. "Cooldown")
|
f.buffs[i].cd = f.buffs[i].cd or CreateCooldown(f.buffs[i], "aura", f.config, "aura_timers", f.buffs[i]:GetName() .. "Cooldown")
|
||||||
f.buffs[i].cd:SetFrameLevel(14)
|
f.buffs[i].cd:SetFrameLevel(14)
|
||||||
|
|
||||||
f.buffs[i].id = i
|
f.buffs[i].id = i
|
||||||
@@ -927,6 +974,8 @@ function pfUI.uf:UpdateConfig()
|
|||||||
f.debuffs.size = tonumber(f.config.debuffsize)
|
f.debuffs.size = tonumber(f.config.debuffsize)
|
||||||
f.debuffs.ownsize = f.config.owndebuffsize == "-1" and f.debuffs.size or tonumber(f.config.owndebuffsize)
|
f.debuffs.ownsize = f.config.owndebuffsize == "-1" and f.debuffs.size or tonumber(f.config.owndebuffsize)
|
||||||
f.debuffs.perrow = tonumber(f.config.debuffperrow)
|
f.debuffs.perrow = tonumber(f.config.debuffperrow)
|
||||||
|
f.debuffs.offx = tonumber(f.config.debuffoffx)
|
||||||
|
f.debuffs.offy = tonumber(f.config.debuffoffy)
|
||||||
f.debuffs.gapx = aura_border + tonumber(f.config.debuffspacingx)
|
f.debuffs.gapx = aura_border + tonumber(f.config.debuffspacingx)
|
||||||
f.debuffs.gapy = aura_border + tonumber(f.config.debuffspacingy)
|
f.debuffs.gapy = aura_border + tonumber(f.config.debuffspacingy)
|
||||||
f.debuffs.own = 0
|
f.debuffs.own = 0
|
||||||
@@ -950,7 +999,7 @@ function pfUI.uf:UpdateConfig()
|
|||||||
f.debuffs[i]:RegisterForClicks("RightButtonUp")
|
f.debuffs[i]:RegisterForClicks("RightButtonUp")
|
||||||
f.debuffs[i]:SetNormalTexture(nil)
|
f.debuffs[i]:SetNormalTexture(nil)
|
||||||
|
|
||||||
f.debuffs[i].cd = f.debuffs[i].cd or CreateCooldown(f.debuffs[i], "unitframe", f.debuffs[i]:GetName() .. "Cooldown")
|
f.debuffs[i].cd = f.debuffs[i].cd or CreateCooldown(f.debuffs[i], "aura", f.config, "aura_timers", f.debuffs[i]:GetName() .. "Cooldown")
|
||||||
f.debuffs[i].cd:SetFrameLevel(14)
|
f.debuffs[i].cd:SetFrameLevel(14)
|
||||||
|
|
||||||
f.debuffs[i].id = i
|
f.debuffs[i].id = i
|
||||||
@@ -980,8 +1029,17 @@ function pfUI.uf:UpdateConfig()
|
|||||||
end
|
end
|
||||||
|
|
||||||
function pfUI.uf.OnShow()
|
function pfUI.uf.OnShow()
|
||||||
pfUI.uf:RefreshUnit(this, "portrait")
|
RegisterShownEvents(this)
|
||||||
pfUI.uf:RefreshUnit(this, "base")
|
pfUI.uf:RefreshUnit(this, "all")
|
||||||
|
end
|
||||||
|
|
||||||
|
function pfUI.uf.OnHide()
|
||||||
|
for i = 1, table.getn(SHOWN_EVENTS) do
|
||||||
|
if not this.idleevents[SHOWN_EVENTS[i]] then
|
||||||
|
this:UnregisterEvent(SHOWN_EVENTS[i])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
this:UnregisterEvent("UNIT_HAPPINESS")
|
||||||
end
|
end
|
||||||
|
|
||||||
function pfUI.uf.OnEvent()
|
function pfUI.uf.OnEvent()
|
||||||
@@ -1309,8 +1367,8 @@ local UNIT_EVENTS = {
|
|||||||
|
|
||||||
-- Auras and power. ClassicAPI's UNIT_AURA_DELTA also reports refreshes and new
|
-- Auras and power. ClassicAPI's UNIT_AURA_DELTA also reports refreshes and new
|
||||||
-- durations and says what changed; its generic power events name the power, so
|
-- durations and says what changed; its generic power events name the power, so
|
||||||
-- a frame skips the ones it does not draw. Both fire for tokens only, so a
|
-- a frame skips the ones it does not draw. Both fire for tokens only, and not
|
||||||
-- chained unit, followed by GUID, keeps 1.12's events instead. A group
|
-- as "focustarget", so a chained unit keeps 1.12's events instead. A group
|
||||||
-- member's connection and sight come with them, and a chained unit has
|
-- member's connection and sight come with them, and a chained unit has
|
||||||
-- neither event.
|
-- neither event.
|
||||||
local TOKEN_EVENTS = {
|
local TOKEN_EVENTS = {
|
||||||
@@ -1375,16 +1433,18 @@ end
|
|||||||
-- unit, whose `owner` is the unit it is the target of -- for
|
-- unit, whose `owner` is the unit it is the target of -- for
|
||||||
-- "targettargettarget" the links are "targettarget" and "target" -- or drop it
|
-- "targettargettarget" the links are "targettarget" and "target" -- or drop it
|
||||||
-- when `owner` is nil. By GUID, since the inner links are no token that events
|
-- when `owner` is nil. By GUID, since the inner links are no token that events
|
||||||
-- name. Cheap to call repeatedly: it re-registers only when a link changed.
|
-- name, save the ones in CHAIN_TOKENS. Cheap to call repeatedly: it
|
||||||
|
-- re-registers only when a link changed.
|
||||||
local chainlinks = {}
|
local chainlinks = {}
|
||||||
function pfUI.uf:RegisterChainEvents(owner)
|
function pfUI.uf:RegisterChainEvents(owner)
|
||||||
local n, key = 0, nil
|
local n, key = 0, nil
|
||||||
while owner do
|
while owner do
|
||||||
local guid = UnitGUID(owner)
|
local guid = UnitGUID(owner)
|
||||||
if guid then
|
if guid then
|
||||||
|
local link = CHAIN_TOKENS[owner] and owner or guid
|
||||||
n = n + 1
|
n = n + 1
|
||||||
chainlinks[n] = guid
|
chainlinks[n] = link
|
||||||
key = key and key .. guid or guid
|
key = key and key .. link or link
|
||||||
end
|
end
|
||||||
owner = owner:match("^(.+)target$")
|
owner = owner:match("^(.+)target$")
|
||||||
end
|
end
|
||||||
@@ -1403,19 +1463,10 @@ end
|
|||||||
function pfUI.uf:EnableEvents()
|
function pfUI.uf:EnableEvents()
|
||||||
local f = self
|
local f = self
|
||||||
|
|
||||||
f:RegisterEvent("PLAYER_ENTERING_WORLD")
|
for event in pairs(f.idleevents) do
|
||||||
f:RegisterEvent("PLAYER_LOGOUT")
|
f:RegisterEvent(event)
|
||||||
f:RegisterEvent("PLAYER_AURAS_CHANGED") -- label=player && frame=buff
|
end
|
||||||
f:RegisterEvent("PLAYER_EQUIPMENT_CHANGED") -- label=player && frame=buff (ClassicAPI: weapon-enchant buffs)
|
if f:IsShown() then RegisterShownEvents(f) end
|
||||||
f:RegisterEvent("PARTY_MEMBERS_CHANGED") -- label=party, frame=leaderIcon
|
|
||||||
f:RegisterEvent("PARTY_LEADER_CHANGED") -- frame=leaderIcon
|
|
||||||
f:RegisterEvent("RAID_ROSTER_UPDATE") -- label=raidIcon
|
|
||||||
f:RegisterEvent("PLAYER_UPDATE_RESTING") -- label=restIcon
|
|
||||||
f:RegisterEvent("PLAYER_TARGET_CHANGED") -- label=target
|
|
||||||
f:RegisterEvent("PARTY_LOOT_METHOD_CHANGED") -- frame=lootIcon
|
|
||||||
f:RegisterEvent("RAID_TARGET_UPDATE") -- frame=raidIcon
|
|
||||||
f:RegisterEvent("UNIT_PET")
|
|
||||||
f:RegisterEvent("UNIT_HAPPINESS")
|
|
||||||
|
|
||||||
f:RegisterForClicks('LeftButtonUp', 'RightButtonUp',
|
f:RegisterForClicks('LeftButtonUp', 'RightButtonUp',
|
||||||
'MiddleButtonUp', 'Button4Up', 'Button5Up')
|
'MiddleButtonUp', 'Button4Up', 'Button5Up')
|
||||||
@@ -1481,6 +1532,7 @@ function pfUI.uf:EnableScripts()
|
|||||||
end
|
end
|
||||||
|
|
||||||
f:SetScript("OnShow", pfUI.uf.OnShow)
|
f:SetScript("OnShow", pfUI.uf.OnShow)
|
||||||
|
f:SetScript("OnHide", pfUI.uf.OnHide)
|
||||||
f:SetScript("OnEvent", pfUI.uf.OnEvent)
|
f:SetScript("OnEvent", pfUI.uf.OnEvent)
|
||||||
f:SetScript("OnUpdate", pfUI.uf.OnUpdate)
|
f:SetScript("OnUpdate", pfUI.uf.OnUpdate)
|
||||||
|
|
||||||
@@ -1528,6 +1580,7 @@ function pfUI.uf:CreateUnitFrame(unit, id, config, tick)
|
|||||||
f.id = id
|
f.id = id
|
||||||
f.config = config or pfUI_config.unitframes.fallback
|
f.config = config or pfUI_config.unitframes.fallback
|
||||||
f.tick = tick
|
f.tick = tick
|
||||||
|
f.idleevents = GetIdleEvents(f.label, fname)
|
||||||
|
|
||||||
CreateBackdropShadow(f)
|
CreateBackdropShadow(f)
|
||||||
|
|
||||||
@@ -2390,6 +2443,7 @@ function pfUI.uf:AddIcon(frame, pos, icon, timeleft, stacks, start, duration)
|
|||||||
local position = frame.config.indicator_pos or "TOPLEFT"
|
local position = frame.config.indicator_pos or "TOPLEFT"
|
||||||
local iconsize = tonumber(frame.config.indicator_size)
|
local iconsize = tonumber(frame.config.indicator_size)
|
||||||
local spacing = tonumber(frame.config.indicator_spacing)
|
local spacing = tonumber(frame.config.indicator_spacing)
|
||||||
|
local config = frame.config
|
||||||
|
|
||||||
if not frame.hp then return end
|
if not frame.hp then return end
|
||||||
local frame = frame.hp.bar
|
local frame = frame.hp.bar
|
||||||
@@ -2408,7 +2462,7 @@ function pfUI.uf:AddIcon(frame, pos, icon, timeleft, stacks, start, duration)
|
|||||||
frame.icon[pos].stacks:SetJustifyH("RIGHT")
|
frame.icon[pos].stacks:SetJustifyH("RIGHT")
|
||||||
frame.icon[pos].stacks:SetJustifyV("BOTTOM")
|
frame.icon[pos].stacks:SetJustifyV("BOTTOM")
|
||||||
|
|
||||||
frame.icon[pos].cd = CreateCooldown(frame.icon[pos], "indicator")
|
frame.icon[pos].cd = CreateCooldown(frame.icon[pos], "aura", config, "indicator_timers")
|
||||||
frame.icon[pos].cd:SetFrameLevel(48)
|
frame.icon[pos].cd:SetFrameLevel(48)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Vendored
+11
-12
@@ -8,7 +8,6 @@ pfUI_translation["deDE"] = {
|
|||||||
["Actionbar"] = nil,
|
["Actionbar"] = nil,
|
||||||
["Action Bar"] = nil,
|
["Action Bar"] = nil,
|
||||||
["Action Bar Border Size"] = nil,
|
["Action Bar Border Size"] = nil,
|
||||||
["Action Bars"] = nil,
|
|
||||||
["Active Addons"] = nil,
|
["Active Addons"] = nil,
|
||||||
["Add button to the frame"] = nil,
|
["Add button to the frame"] = nil,
|
||||||
["Added button"] = nil,
|
["Added button"] = nil,
|
||||||
@@ -77,11 +76,11 @@ pfUI_translation["deDE"] = {
|
|||||||
["Bottom"] = nil,
|
["Bottom"] = nil,
|
||||||
["Bottom Left"] = nil,
|
["Bottom Left"] = nil,
|
||||||
["Bottom Right"] = nil,
|
["Bottom Right"] = nil,
|
||||||
|
["Buff And Debuff Timers"] = nil,
|
||||||
["Buffbar Height"] = nil,
|
["Buffbar Height"] = nil,
|
||||||
["Buffbar Width"] = nil,
|
["Buffbar Width"] = nil,
|
||||||
["Buff/Debuff Icons"] = nil,
|
["Buff/Debuff Icons"] = nil,
|
||||||
["Buff/Debuff Indicators"] = nil,
|
["Buff/Debuff Indicators"] = nil,
|
||||||
["Buff Indicators"] = nil,
|
|
||||||
["Buff Limit"] = nil,
|
["Buff Limit"] = nil,
|
||||||
["Buff Position"] = nil,
|
["Buff Position"] = nil,
|
||||||
["Buffs"] = nil,
|
["Buffs"] = nil,
|
||||||
@@ -106,6 +105,15 @@ pfUI_translation["deDE"] = {
|
|||||||
["Center Text"] = nil,
|
["Center Text"] = nil,
|
||||||
["Center Text X Offset"] = nil,
|
["Center Text X Offset"] = nil,
|
||||||
["Center Text Y Offset"] = nil,
|
["Center Text Y Offset"] = nil,
|
||||||
|
["Cooldown Timers"] = nil,
|
||||||
|
["Debuff Timers"] = nil,
|
||||||
|
["Duration Timers"] = nil,
|
||||||
|
["Indicator Timers"] = nil,
|
||||||
|
["Numbers"] = nil,
|
||||||
|
["Numbers And Sweep"] = nil,
|
||||||
|
["Sweep"] = nil,
|
||||||
|
["Timers"] = nil,
|
||||||
|
["Unit Buff Timers"] = nil,
|
||||||
["|cff33ffccBlizzard: \"Interface Options\"|r\n\nDo you want me to set up the recommended Blizzard UI settings? This will enable settings that can be found in the Interface section of your client. Options like Buff Durations, Instant Quest Text, Auto Selfcast and others will be set."] = nil,
|
["|cff33ffccBlizzard: \"Interface Options\"|r\n\nDo you want me to set up the recommended Blizzard UI settings? This will enable settings that can be found in the Interface section of your client. Options like Buff Durations, Instant Quest Text, Auto Selfcast and others will be set."] = nil,
|
||||||
["|cff33ffccChat: \"Channels\"|r\n\nDo you want me to setup the chat channels of your chatframes? This would set important or personal messages to the left chat and world channels and lootinformation to the right chat."] = nil,
|
["|cff33ffccChat: \"Channels\"|r\n\nDo you want me to setup the chat channels of your chatframes? This would set important or personal messages to the left chat and world channels and lootinformation to the right chat."] = nil,
|
||||||
["|cff33ffccChat: \"Layout\"|r\n\nDo you want me to adjust the layout of your chatframes? This would make sure, that every window is placed on its dedicated position."] = nil,
|
["|cff33ffccChat: \"Layout\"|r\n\nDo you want me to adjust the layout of your chatframes? This would make sure, that every window is placed on its dedicated position."] = nil,
|
||||||
@@ -359,6 +367,7 @@ pfUI_translation["deDE"] = {
|
|||||||
["Group Options"] = nil,
|
["Group Options"] = nil,
|
||||||
["Group-Pet"] = nil,
|
["Group-Pet"] = nil,
|
||||||
["Group-Target"] = nil,
|
["Group-Target"] = nil,
|
||||||
|
["Grow Right To Left"] = nil,
|
||||||
["Gryphon"] = nil,
|
["Gryphon"] = nil,
|
||||||
["Gryphons"] = nil,
|
["Gryphons"] = nil,
|
||||||
["Guild Online"] = nil,
|
["Guild Online"] = nil,
|
||||||
@@ -515,7 +524,6 @@ pfUI_translation["deDE"] = {
|
|||||||
["Name | Health Missing"] = nil,
|
["Name | Health Missing"] = nil,
|
||||||
["Name (Linebreak) -Health Missing"] = nil,
|
["Name (Linebreak) -Health Missing"] = nil,
|
||||||
["Nameplate Border Size"] = nil,
|
["Nameplate Border Size"] = nil,
|
||||||
["Nameplate Debuffs"] = nil,
|
|
||||||
["Nameplates"] = nil,
|
["Nameplates"] = nil,
|
||||||
["Nameplate Width"] = nil,
|
["Nameplate Width"] = nil,
|
||||||
["Name (Short)"] = nil,
|
["Name (Short)"] = nil,
|
||||||
@@ -583,7 +591,6 @@ pfUI_translation["deDE"] = {
|
|||||||
["Pixel"] = nil,
|
["Pixel"] = nil,
|
||||||
["Player"] = nil,
|
["Player"] = nil,
|
||||||
["Player Buff Bar"] = nil,
|
["Player Buff Bar"] = nil,
|
||||||
["Player Buffs"] = nil,
|
|
||||||
["Player Castbar"] = nil,
|
["Player Castbar"] = nil,
|
||||||
["Player Debuff Bar"] = nil,
|
["Player Debuff Bar"] = nil,
|
||||||
["Player SP/Haste Display"] = nil,
|
["Player SP/Haste Display"] = nil,
|
||||||
@@ -650,7 +657,6 @@ pfUI_translation["deDE"] = {
|
|||||||
["Resting"] = nil,
|
["Resting"] = nil,
|
||||||
["Reveal Unexplored Areas"] = nil,
|
["Reveal Unexplored Areas"] = nil,
|
||||||
["Switch to current zone"] = "Zur aktuellen Zone wechseln",
|
["Switch to current zone"] = "Zur aktuellen Zone wechseln",
|
||||||
["Reverse Sweep On"] = nil,
|
|
||||||
["Right"] = nil,
|
["Right"] = nil,
|
||||||
["Right Actionbar"] = nil,
|
["Right Actionbar"] = nil,
|
||||||
["Right Anchor"] = nil,
|
["Right Anchor"] = nil,
|
||||||
@@ -732,7 +738,6 @@ pfUI_translation["deDE"] = {
|
|||||||
["Show Loot Icon"] = nil,
|
["Show Loot Icon"] = nil,
|
||||||
["Show Macro Text"] = nil,
|
["Show Macro Text"] = nil,
|
||||||
["Show Meters By Default"] = nil,
|
["Show Meters By Default"] = nil,
|
||||||
["Show Numbers On"] = nil,
|
|
||||||
["Show On Friendly Units"] = nil,
|
["Show On Friendly Units"] = nil,
|
||||||
["Show On Hostile Units"] = nil,
|
["Show On Hostile Units"] = nil,
|
||||||
["Show Procs Indicators"] = nil,
|
["Show Procs Indicators"] = nil,
|
||||||
@@ -750,7 +755,6 @@ pfUI_translation["deDE"] = {
|
|||||||
["Show Spell Icon"] = nil,
|
["Show Spell Icon"] = nil,
|
||||||
["Show Spell Name"] = nil,
|
["Show Spell Name"] = nil,
|
||||||
["Show Stacks"] = nil,
|
["Show Stacks"] = nil,
|
||||||
["Show Sweep On"] = nil,
|
|
||||||
["Show Tenths Below 5 Seconds"] = nil,
|
["Show Tenths Below 5 Seconds"] = nil,
|
||||||
["Show Text"] = nil,
|
["Show Text"] = nil,
|
||||||
["Show Timer"] = nil,
|
["Show Timer"] = nil,
|
||||||
@@ -818,7 +822,6 @@ pfUI_translation["deDE"] = {
|
|||||||
["Tiny (PixelPerfect)"] = nil,
|
["Tiny (PixelPerfect)"] = nil,
|
||||||
["Toggle as Tank"] = nil,
|
["Toggle as Tank"] = nil,
|
||||||
["Tooltip"] = nil,
|
["Tooltip"] = nil,
|
||||||
["Tooltip Auras"] = nil,
|
|
||||||
["Tooltip Position"] = nil,
|
["Tooltip Position"] = nil,
|
||||||
["Tooltip Text Font"] = nil,
|
["Tooltip Text Font"] = nil,
|
||||||
["Tooltip Text Font Size"] = nil,
|
["Tooltip Text Font Size"] = nil,
|
||||||
@@ -830,13 +833,11 @@ pfUI_translation["deDE"] = {
|
|||||||
["Total Gold"] = nil,
|
["Total Gold"] = nil,
|
||||||
["Totem Direction"] = nil,
|
["Totem Direction"] = nil,
|
||||||
["Totem Icons"] = nil,
|
["Totem Icons"] = nil,
|
||||||
["Totems"] = nil,
|
|
||||||
["Tracked Reputation"] = nil,
|
["Tracked Reputation"] = nil,
|
||||||
["Tracking Icon Size"] = nil,
|
["Tracking Icon Size"] = nil,
|
||||||
["Trigger Actions On Key Down"] = nil,
|
["Trigger Actions On Key Down"] = nil,
|
||||||
["UI-Scale"] = nil,
|
["UI-Scale"] = nil,
|
||||||
["Unbuffed"] = nil,
|
["Unbuffed"] = nil,
|
||||||
["Unit Frame Auras"] = nil,
|
|
||||||
["Unit Frame Border Size"] = nil,
|
["Unit Frame Border Size"] = nil,
|
||||||
["Unit Frame Layout"] = nil,
|
["Unit Frame Layout"] = nil,
|
||||||
["Unit Frames"] = nil,
|
["Unit Frames"] = nil,
|
||||||
@@ -908,8 +909,6 @@ pfUI_translation["deDE"] = {
|
|||||||
["Panel Alignment"] = "Panel Ausrichtung",
|
["Panel Alignment"] = "Panel Ausrichtung",
|
||||||
["Nameplate Update Rate"] = "Namensplaketten Aktualisierungsrate",
|
["Nameplate Update Rate"] = "Namensplaketten Aktualisierungsrate",
|
||||||
["Target/Casting Plates"] = "Ziel/Cast Plaketten",
|
["Target/Casting Plates"] = "Ziel/Cast Plaketten",
|
||||||
["Normal Plates"] = "Normale Plaketten",
|
|
||||||
["Mass Pulls (20+ Plates)"] = "Große Pulls (20+ Plaketten)",
|
|
||||||
["Tooltip Update Rate"] = "Tooltip Aktualisierungsrate",
|
["Tooltip Update Rate"] = "Tooltip Aktualisierungsrate",
|
||||||
["Cursor Follow"] = "Cursor Folgen",
|
["Cursor Follow"] = "Cursor Folgen",
|
||||||
["Health/Status Bar"] = "Leben/Status Leiste",
|
["Health/Status Bar"] = "Leben/Status Leiste",
|
||||||
|
|||||||
Vendored
+15
-12
@@ -8,7 +8,6 @@ pfUI_translation["enUS"] = {
|
|||||||
["Actionbar"] = nil,
|
["Actionbar"] = nil,
|
||||||
["Action Bar"] = nil,
|
["Action Bar"] = nil,
|
||||||
["Action Bar Border Size"] = nil,
|
["Action Bar Border Size"] = nil,
|
||||||
["Action Bars"] = nil,
|
|
||||||
["Active Addons"] = nil,
|
["Active Addons"] = nil,
|
||||||
["Add button to the frame"] = nil,
|
["Add button to the frame"] = nil,
|
||||||
["Added button"] = nil,
|
["Added button"] = nil,
|
||||||
@@ -80,16 +79,18 @@ pfUI_translation["enUS"] = {
|
|||||||
["Bottom"] = nil,
|
["Bottom"] = nil,
|
||||||
["Bottom Left"] = nil,
|
["Bottom Left"] = nil,
|
||||||
["Bottom Right"] = nil,
|
["Bottom Right"] = nil,
|
||||||
|
["Buff And Debuff Timers"] = nil,
|
||||||
["Buffbar Height"] = nil,
|
["Buffbar Height"] = nil,
|
||||||
["Buffbar Width"] = nil,
|
["Buffbar Width"] = nil,
|
||||||
["Buff/Debuff Icons"] = nil,
|
["Buff/Debuff Icons"] = nil,
|
||||||
["Buff/Debuff Indicators"] = nil,
|
["Buff/Debuff Indicators"] = nil,
|
||||||
["Buff Indicators"] = nil,
|
|
||||||
["Buff Limit"] = nil,
|
["Buff Limit"] = nil,
|
||||||
["Buff Position"] = nil,
|
["Buff Position"] = nil,
|
||||||
["Buffs"] = nil,
|
["Buffs"] = nil,
|
||||||
["Buff Size"] = nil,
|
["Buff Size"] = nil,
|
||||||
["Buff Spacing"] = nil,
|
["Buff Spacing"] = nil,
|
||||||
|
["Buff X-Offset"] = nil,
|
||||||
|
["Buff Y-Offset"] = nil,
|
||||||
["Buff X-Spacing"] = nil,
|
["Buff X-Spacing"] = nil,
|
||||||
["Buff Y-Spacing"] = nil,
|
["Buff Y-Spacing"] = nil,
|
||||||
["Buffs Per Row"] = nil,
|
["Buffs Per Row"] = nil,
|
||||||
@@ -111,6 +112,15 @@ pfUI_translation["enUS"] = {
|
|||||||
["Center Text"] = nil,
|
["Center Text"] = nil,
|
||||||
["Center Text X Offset"] = nil,
|
["Center Text X Offset"] = nil,
|
||||||
["Center Text Y Offset"] = nil,
|
["Center Text Y Offset"] = nil,
|
||||||
|
["Cooldown Timers"] = nil,
|
||||||
|
["Debuff Timers"] = nil,
|
||||||
|
["Duration Timers"] = nil,
|
||||||
|
["Indicator Timers"] = nil,
|
||||||
|
["Numbers"] = nil,
|
||||||
|
["Numbers And Sweep"] = nil,
|
||||||
|
["Sweep"] = nil,
|
||||||
|
["Timers"] = nil,
|
||||||
|
["Unit Buff Timers"] = nil,
|
||||||
["|cff33ffccBlizzard: \"Interface Options\"|r\n\nDo you want me to set up the recommended Blizzard UI settings? This will enable settings that can be found in the Interface section of your client. Options like Buff Durations, Instant Quest Text, Auto Selfcast and others will be set."] = nil,
|
["|cff33ffccBlizzard: \"Interface Options\"|r\n\nDo you want me to set up the recommended Blizzard UI settings? This will enable settings that can be found in the Interface section of your client. Options like Buff Durations, Instant Quest Text, Auto Selfcast and others will be set."] = nil,
|
||||||
["|cff33ffccChat: \"Channels\"|r\n\nDo you want me to setup the chat channels of your chatframes? This would set important or personal messages to the left chat and world channels and lootinformation to the right chat."] = nil,
|
["|cff33ffccChat: \"Channels\"|r\n\nDo you want me to setup the chat channels of your chatframes? This would set important or personal messages to the left chat and world channels and lootinformation to the right chat."] = nil,
|
||||||
["|cff33ffccChat: \"Layout\"|r\n\nDo you want me to adjust the layout of your chatframes? This would make sure, that every window is placed on its dedicated position."] = nil,
|
["|cff33ffccChat: \"Layout\"|r\n\nDo you want me to adjust the layout of your chatframes? This would make sure, that every window is placed on its dedicated position."] = nil,
|
||||||
@@ -196,6 +206,8 @@ pfUI_translation["enUS"] = {
|
|||||||
["Debuff Position"] = nil,
|
["Debuff Position"] = nil,
|
||||||
["Debuffs"] = nil,
|
["Debuffs"] = nil,
|
||||||
["Debuff Size"] = nil,
|
["Debuff Size"] = nil,
|
||||||
|
["Debuff X-Offset"] = nil,
|
||||||
|
["Debuff Y-Offset"] = nil,
|
||||||
["Debuff X-Spacing"] = nil,
|
["Debuff X-Spacing"] = nil,
|
||||||
["Debuff Y-Spacing"] = nil,
|
["Debuff Y-Spacing"] = nil,
|
||||||
["Debuffs Per Row"] = nil,
|
["Debuffs Per Row"] = nil,
|
||||||
@@ -369,6 +381,7 @@ pfUI_translation["enUS"] = {
|
|||||||
["Group Options"] = nil,
|
["Group Options"] = nil,
|
||||||
["Group-Pet"] = nil,
|
["Group-Pet"] = nil,
|
||||||
["Group-Target"] = nil,
|
["Group-Target"] = nil,
|
||||||
|
["Grow Right To Left"] = nil,
|
||||||
["Gryphon"] = nil,
|
["Gryphon"] = nil,
|
||||||
["Gryphons"] = nil,
|
["Gryphons"] = nil,
|
||||||
["Guild Online"] = nil,
|
["Guild Online"] = nil,
|
||||||
@@ -528,7 +541,6 @@ pfUI_translation["enUS"] = {
|
|||||||
["Name | Health Missing"] = nil,
|
["Name | Health Missing"] = nil,
|
||||||
["Name (Linebreak) -Health Missing"] = nil,
|
["Name (Linebreak) -Health Missing"] = nil,
|
||||||
["Nameplate Border Size"] = nil,
|
["Nameplate Border Size"] = nil,
|
||||||
["Nameplate Debuffs"] = nil,
|
|
||||||
["Nameplates"] = nil,
|
["Nameplates"] = nil,
|
||||||
["Nameplate Width"] = nil,
|
["Nameplate Width"] = nil,
|
||||||
["Name (Short)"] = nil,
|
["Name (Short)"] = nil,
|
||||||
@@ -601,7 +613,6 @@ pfUI_translation["enUS"] = {
|
|||||||
["Pixel"] = nil,
|
["Pixel"] = nil,
|
||||||
["Player"] = nil,
|
["Player"] = nil,
|
||||||
["Player Buff Bar"] = nil,
|
["Player Buff Bar"] = nil,
|
||||||
["Player Buffs"] = nil,
|
|
||||||
["Player Castbar"] = nil,
|
["Player Castbar"] = nil,
|
||||||
["Player Debuff Bar"] = nil,
|
["Player Debuff Bar"] = nil,
|
||||||
["Player SP/Haste Display"] = nil,
|
["Player SP/Haste Display"] = nil,
|
||||||
@@ -669,7 +680,6 @@ pfUI_translation["enUS"] = {
|
|||||||
["Reveal Unexplored Areas"] = nil,
|
["Reveal Unexplored Areas"] = nil,
|
||||||
["Switch to current zone"] = nil,
|
["Switch to current zone"] = nil,
|
||||||
["Retrieving item information..."] = nil,
|
["Retrieving item information..."] = nil,
|
||||||
["Reverse Sweep On"] = nil,
|
|
||||||
["Right"] = nil,
|
["Right"] = nil,
|
||||||
["Right Actionbar"] = nil,
|
["Right Actionbar"] = nil,
|
||||||
["Right Anchor"] = nil,
|
["Right Anchor"] = nil,
|
||||||
@@ -751,7 +761,6 @@ pfUI_translation["enUS"] = {
|
|||||||
["Show Loot Icon"] = nil,
|
["Show Loot Icon"] = nil,
|
||||||
["Show Macro Text"] = nil,
|
["Show Macro Text"] = nil,
|
||||||
["Show Meters By Default"] = nil,
|
["Show Meters By Default"] = nil,
|
||||||
["Show Numbers On"] = nil,
|
|
||||||
["Show On Friendly Units"] = nil,
|
["Show On Friendly Units"] = nil,
|
||||||
["Show On Hostile Units"] = nil,
|
["Show On Hostile Units"] = nil,
|
||||||
["Show Procs Indicators"] = nil,
|
["Show Procs Indicators"] = nil,
|
||||||
@@ -769,7 +778,6 @@ pfUI_translation["enUS"] = {
|
|||||||
["Show Spell Icon"] = nil,
|
["Show Spell Icon"] = nil,
|
||||||
["Show Spell Name"] = nil,
|
["Show Spell Name"] = nil,
|
||||||
["Show Stacks"] = nil,
|
["Show Stacks"] = nil,
|
||||||
["Show Sweep On"] = nil,
|
|
||||||
["Show Tenths Below 5 Seconds"] = nil,
|
["Show Tenths Below 5 Seconds"] = nil,
|
||||||
["Show Text"] = nil,
|
["Show Text"] = nil,
|
||||||
["Show Timer"] = nil,
|
["Show Timer"] = nil,
|
||||||
@@ -846,7 +854,6 @@ pfUI_translation["enUS"] = {
|
|||||||
["Tiny (PixelPerfect)"] = nil,
|
["Tiny (PixelPerfect)"] = nil,
|
||||||
["Toggle as Tank"] = nil,
|
["Toggle as Tank"] = nil,
|
||||||
["Tooltip"] = nil,
|
["Tooltip"] = nil,
|
||||||
["Tooltip Auras"] = nil,
|
|
||||||
["Tooltip Position"] = nil,
|
["Tooltip Position"] = nil,
|
||||||
["Tooltip Text Font"] = nil,
|
["Tooltip Text Font"] = nil,
|
||||||
["Tooltip Text Font Size"] = nil,
|
["Tooltip Text Font Size"] = nil,
|
||||||
@@ -858,13 +865,11 @@ pfUI_translation["enUS"] = {
|
|||||||
["Total Gold"] = nil,
|
["Total Gold"] = nil,
|
||||||
["Totem Direction"] = nil,
|
["Totem Direction"] = nil,
|
||||||
["Totem Icons"] = nil,
|
["Totem Icons"] = nil,
|
||||||
["Totems"] = nil,
|
|
||||||
["Tracked Reputation"] = nil,
|
["Tracked Reputation"] = nil,
|
||||||
["Tracking Icon Size"] = nil,
|
["Tracking Icon Size"] = nil,
|
||||||
["Trigger Actions On Key Down"] = nil,
|
["Trigger Actions On Key Down"] = nil,
|
||||||
["UI-Scale"] = nil,
|
["UI-Scale"] = nil,
|
||||||
["Unbuffed"] = nil,
|
["Unbuffed"] = nil,
|
||||||
["Unit Frame Auras"] = nil,
|
|
||||||
["Unit Frame Border Size"] = nil,
|
["Unit Frame Border Size"] = nil,
|
||||||
["Unit Frame Layout"] = nil,
|
["Unit Frame Layout"] = nil,
|
||||||
["Unit Frames"] = nil,
|
["Unit Frames"] = nil,
|
||||||
@@ -936,8 +941,6 @@ pfUI_translation["enUS"] = {
|
|||||||
["Panel Alignment"] = nil,
|
["Panel Alignment"] = nil,
|
||||||
["Nameplate Update Rate"] = nil,
|
["Nameplate Update Rate"] = nil,
|
||||||
["Target/Casting Plates"] = nil,
|
["Target/Casting Plates"] = nil,
|
||||||
["Normal Plates"] = nil,
|
|
||||||
["Mass Pulls (20+ Plates)"] = nil,
|
|
||||||
["Tooltip Update Rate"] = nil,
|
["Tooltip Update Rate"] = nil,
|
||||||
["Cursor Follow"] = nil,
|
["Cursor Follow"] = nil,
|
||||||
["Health/Status Bar"] = nil,
|
["Health/Status Bar"] = nil,
|
||||||
|
|||||||
Vendored
+11
-10
@@ -8,7 +8,6 @@ pfUI_translation["esES"] = {
|
|||||||
["Actionbar"] = "Barra de acción",
|
["Actionbar"] = "Barra de acción",
|
||||||
["Action Bar"] = "Barra de acción",
|
["Action Bar"] = "Barra de acción",
|
||||||
["Action Bar Border Size"] = "Tamaño del borde de la barra de acción",
|
["Action Bar Border Size"] = "Tamaño del borde de la barra de acción",
|
||||||
["Action Bars"] = nil,
|
|
||||||
["Active Addons"] = "Accesorios activos",
|
["Active Addons"] = "Accesorios activos",
|
||||||
["Add button to the frame"] = "Añadir botón al marco",
|
["Add button to the frame"] = "Añadir botón al marco",
|
||||||
["Added button"] = "Botón añadido",
|
["Added button"] = "Botón añadido",
|
||||||
@@ -77,11 +76,11 @@ pfUI_translation["esES"] = {
|
|||||||
["Bottom"] = "Inferior",
|
["Bottom"] = "Inferior",
|
||||||
["Bottom Left"] = "Inferior izquierda",
|
["Bottom Left"] = "Inferior izquierda",
|
||||||
["Bottom Right"] = "Inferior derecha",
|
["Bottom Right"] = "Inferior derecha",
|
||||||
|
["Buff And Debuff Timers"] = nil,
|
||||||
["Buffbar Height"] = "Altura de la barra de beneficios",
|
["Buffbar Height"] = "Altura de la barra de beneficios",
|
||||||
["Buffbar Width"] = "Ancho de la barra de beneficios",
|
["Buffbar Width"] = "Ancho de la barra de beneficios",
|
||||||
["Buff/Debuff Icons"] = "Iconos de los beneficios/perjuicios",
|
["Buff/Debuff Icons"] = "Iconos de los beneficios/perjuicios",
|
||||||
["Buff/Debuff Indicators"] = "Indicadores de beneficios/perjuicios",
|
["Buff/Debuff Indicators"] = "Indicadores de beneficios/perjuicios",
|
||||||
["Buff Indicators"] = nil,
|
|
||||||
["Buff Limit"] = "Límite de beneficios",
|
["Buff Limit"] = "Límite de beneficios",
|
||||||
["Buff Position"] = "Posición de los beneficios",
|
["Buff Position"] = "Posición de los beneficios",
|
||||||
["Buffs"] = "Beneficios",
|
["Buffs"] = "Beneficios",
|
||||||
@@ -106,6 +105,15 @@ pfUI_translation["esES"] = {
|
|||||||
["Center Text"] = "Centrar texto",
|
["Center Text"] = "Centrar texto",
|
||||||
["Center Text X Offset"] = nil,
|
["Center Text X Offset"] = nil,
|
||||||
["Center Text Y Offset"] = nil,
|
["Center Text Y Offset"] = nil,
|
||||||
|
["Cooldown Timers"] = nil,
|
||||||
|
["Debuff Timers"] = nil,
|
||||||
|
["Duration Timers"] = nil,
|
||||||
|
["Indicator Timers"] = nil,
|
||||||
|
["Numbers"] = nil,
|
||||||
|
["Numbers And Sweep"] = nil,
|
||||||
|
["Sweep"] = nil,
|
||||||
|
["Timers"] = nil,
|
||||||
|
["Unit Buff Timers"] = nil,
|
||||||
["|cff33ffccBlizzard: \"Interface Options\"|r\n\nDo you want me to set up the recommended Blizzard UI settings? This will enable settings that can be found in the Interface section of your client. Options like Buff Durations, Instant Quest Text, Auto Selfcast and others will be set."] = "|cff33ffccBlizzard: \"Opciones de la interfaz\"|r\n\n¿Prefieres usar la configuración IU recomendada de Blizzard? Se activarán algunas de las opciones que se encuentran en la sección Interfaz de tu cliente. Opciones como duración de buffs, texto de misión instantáneo, autolanzarse hechizos y otros serán activadas.",
|
["|cff33ffccBlizzard: \"Interface Options\"|r\n\nDo you want me to set up the recommended Blizzard UI settings? This will enable settings that can be found in the Interface section of your client. Options like Buff Durations, Instant Quest Text, Auto Selfcast and others will be set."] = "|cff33ffccBlizzard: \"Opciones de la interfaz\"|r\n\n¿Prefieres usar la configuración IU recomendada de Blizzard? Se activarán algunas de las opciones que se encuentran en la sección Interfaz de tu cliente. Opciones como duración de buffs, texto de misión instantáneo, autolanzarse hechizos y otros serán activadas.",
|
||||||
["|cff33ffccChat: \"Channels\"|r\n\nDo you want me to setup the chat channels of your chatframes? This would set important or personal messages to the left chat and world channels and lootinformation to the right chat."] = "|cff33ffccChat: \"Canales\"|r\n\n¿Quieres que configure los canales de chat para tu marco de chat? Los mensajes importantes o personales aparecerán en la ventana de chat izquierda y los canales del mundo e información del botín en la ventana de chat derecha.",
|
["|cff33ffccChat: \"Channels\"|r\n\nDo you want me to setup the chat channels of your chatframes? This would set important or personal messages to the left chat and world channels and lootinformation to the right chat."] = "|cff33ffccChat: \"Canales\"|r\n\n¿Quieres que configure los canales de chat para tu marco de chat? Los mensajes importantes o personales aparecerán en la ventana de chat izquierda y los canales del mundo e información del botín en la ventana de chat derecha.",
|
||||||
["|cff33ffccChat: \"Layout\"|r\n\nDo you want me to adjust the layout of your chatframes? This would make sure, that every window is placed on its dedicated position."] = "|cff33ffccChat: \"Disposición\"|r\n\n¿Quieres que ajuste la disposición de los marcos de chat? De esta manera cada ventana estará en su posición correcta.",
|
["|cff33ffccChat: \"Layout\"|r\n\nDo you want me to adjust the layout of your chatframes? This would make sure, that every window is placed on its dedicated position."] = "|cff33ffccChat: \"Disposición\"|r\n\n¿Quieres que ajuste la disposición de los marcos de chat? De esta manera cada ventana estará en su posición correcta.",
|
||||||
@@ -359,6 +367,7 @@ pfUI_translation["esES"] = {
|
|||||||
["Group Options"] = "Opciones de grupo",
|
["Group Options"] = "Opciones de grupo",
|
||||||
["Group-Pet"] = "Mascota-Grupo",
|
["Group-Pet"] = "Mascota-Grupo",
|
||||||
["Group-Target"] = "Objetivo-Grupo",
|
["Group-Target"] = "Objetivo-Grupo",
|
||||||
|
["Grow Right To Left"] = nil,
|
||||||
["Gryphon"] = nil,
|
["Gryphon"] = nil,
|
||||||
["Gryphons"] = nil,
|
["Gryphons"] = nil,
|
||||||
["Guild Online"] = "Conectados en hermandad",
|
["Guild Online"] = "Conectados en hermandad",
|
||||||
@@ -515,7 +524,6 @@ pfUI_translation["esES"] = {
|
|||||||
["Name | Health Missing"] = "Nombre | Falta de salud",
|
["Name | Health Missing"] = "Nombre | Falta de salud",
|
||||||
["Name (Linebreak) -Health Missing"] = nil,
|
["Name (Linebreak) -Health Missing"] = nil,
|
||||||
["Nameplate Border Size"] = "Tamaño del borde de las placas de nombre",
|
["Nameplate Border Size"] = "Tamaño del borde de las placas de nombre",
|
||||||
["Nameplate Debuffs"] = nil,
|
|
||||||
["Nameplates"] = "Placas identificativas",
|
["Nameplates"] = "Placas identificativas",
|
||||||
["Nameplate Width"] = "Ancho de las placas identificativas",
|
["Nameplate Width"] = "Ancho de las placas identificativas",
|
||||||
["Name (Short)"] = "Nombre (corto)",
|
["Name (Short)"] = "Nombre (corto)",
|
||||||
@@ -583,7 +591,6 @@ pfUI_translation["esES"] = {
|
|||||||
["Pixel"] = "Píxel",
|
["Pixel"] = "Píxel",
|
||||||
["Player"] = "Jugador",
|
["Player"] = "Jugador",
|
||||||
["Player Buff Bar"] = "Barra de beneficios del jugador",
|
["Player Buff Bar"] = "Barra de beneficios del jugador",
|
||||||
["Player Buffs"] = nil,
|
|
||||||
["Player Castbar"] = "Barra de lanzamiento del jugador",
|
["Player Castbar"] = "Barra de lanzamiento del jugador",
|
||||||
["Player Debuff Bar"] = "Barra de perjuicios del jugador",
|
["Player Debuff Bar"] = "Barra de perjuicios del jugador",
|
||||||
["Player SP/Haste Display"] = nil,
|
["Player SP/Haste Display"] = nil,
|
||||||
@@ -650,7 +657,6 @@ pfUI_translation["esES"] = {
|
|||||||
["Resting"] = "Descansando",
|
["Resting"] = "Descansando",
|
||||||
["Reveal Unexplored Areas"] = "Mostrar áreas no exploradas",
|
["Reveal Unexplored Areas"] = "Mostrar áreas no exploradas",
|
||||||
["Switch to current zone"] = "Ir a la zona actual",
|
["Switch to current zone"] = "Ir a la zona actual",
|
||||||
["Reverse Sweep On"] = nil,
|
|
||||||
["Right"] = "Derecho",
|
["Right"] = "Derecho",
|
||||||
["Right Actionbar"] = "Barra de acción derecha",
|
["Right Actionbar"] = "Barra de acción derecha",
|
||||||
["Right Anchor"] = nil,
|
["Right Anchor"] = nil,
|
||||||
@@ -732,7 +738,6 @@ pfUI_translation["esES"] = {
|
|||||||
["Show Loot Icon"] = "Mostrar icono de botín",
|
["Show Loot Icon"] = "Mostrar icono de botín",
|
||||||
["Show Macro Text"] = "Mostrar texto de macro",
|
["Show Macro Text"] = "Mostrar texto de macro",
|
||||||
["Show Meters By Default"] = "Mostrar medidores por defecto",
|
["Show Meters By Default"] = "Mostrar medidores por defecto",
|
||||||
["Show Numbers On"] = nil,
|
|
||||||
["Show On Friendly Units"] = "Mostrar en unidades amistosas",
|
["Show On Friendly Units"] = "Mostrar en unidades amistosas",
|
||||||
["Show On Hostile Units"] = "Mostrar en unidades enemigas",
|
["Show On Hostile Units"] = "Mostrar en unidades enemigas",
|
||||||
["Show Procs Indicators"] = "Mostrar indicadores de beneficios temporales activados",
|
["Show Procs Indicators"] = "Mostrar indicadores de beneficios temporales activados",
|
||||||
@@ -750,7 +755,6 @@ pfUI_translation["esES"] = {
|
|||||||
["Show Spell Icon"] = "Mostrar icono de hechizo",
|
["Show Spell Icon"] = "Mostrar icono de hechizo",
|
||||||
["Show Spell Name"] = nil,
|
["Show Spell Name"] = nil,
|
||||||
["Show Stacks"] = "Mostrar pilas",
|
["Show Stacks"] = "Mostrar pilas",
|
||||||
["Show Sweep On"] = nil,
|
|
||||||
["Show Tenths Below 5 Seconds"] = nil,
|
["Show Tenths Below 5 Seconds"] = nil,
|
||||||
["Show Text"] = nil,
|
["Show Text"] = nil,
|
||||||
["Show Timer"] = nil,
|
["Show Timer"] = nil,
|
||||||
@@ -818,7 +822,6 @@ pfUI_translation["esES"] = {
|
|||||||
["Tiny (PixelPerfect)"] = "Minúsculo (píxel perfecta)",
|
["Tiny (PixelPerfect)"] = "Minúsculo (píxel perfecta)",
|
||||||
["Toggle as Tank"] = "Alternar si eres el tanque",
|
["Toggle as Tank"] = "Alternar si eres el tanque",
|
||||||
["Tooltip"] = "Descripción emergente",
|
["Tooltip"] = "Descripción emergente",
|
||||||
["Tooltip Auras"] = nil,
|
|
||||||
["Tooltip Position"] = "Posición de la descripción emergente",
|
["Tooltip Position"] = "Posición de la descripción emergente",
|
||||||
["Tooltip Text Font"] = nil,
|
["Tooltip Text Font"] = nil,
|
||||||
["Tooltip Text Font Size"] = nil,
|
["Tooltip Text Font Size"] = nil,
|
||||||
@@ -830,13 +833,11 @@ pfUI_translation["esES"] = {
|
|||||||
["Total Gold"] = "Oro Total",
|
["Total Gold"] = "Oro Total",
|
||||||
["Totem Direction"] = "Dirección del tótem",
|
["Totem Direction"] = "Dirección del tótem",
|
||||||
["Totem Icons"] = "Iconos de los tótems",
|
["Totem Icons"] = "Iconos de los tótems",
|
||||||
["Totems"] = nil,
|
|
||||||
["Tracked Reputation"] = "Reputación rastreada",
|
["Tracked Reputation"] = "Reputación rastreada",
|
||||||
["Tracking Icon Size"] = "Tamaño del icono de rastreo",
|
["Tracking Icon Size"] = "Tamaño del icono de rastreo",
|
||||||
["Trigger Actions On Key Down"] = "Disparar acciones por presionar la tecla abajo",
|
["Trigger Actions On Key Down"] = "Disparar acciones por presionar la tecla abajo",
|
||||||
["UI-Scale"] = "Escala de IU",
|
["UI-Scale"] = "Escala de IU",
|
||||||
["Unbuffed"] = "Sin beneficios",
|
["Unbuffed"] = "Sin beneficios",
|
||||||
["Unit Frame Auras"] = nil,
|
|
||||||
["Unit Frame Border Size"] = "Tamaño del borde del marco de unidad",
|
["Unit Frame Border Size"] = "Tamaño del borde del marco de unidad",
|
||||||
["Unit Frame Layout"] = "Disposición del Marco de unidad",
|
["Unit Frame Layout"] = "Disposición del Marco de unidad",
|
||||||
["Unit Frames"] = "Marcos de unidad",
|
["Unit Frames"] = "Marcos de unidad",
|
||||||
|
|||||||
Vendored
+11
-10
@@ -8,7 +8,6 @@ pfUI_translation["frFR"] = {
|
|||||||
["Actionbar"] = "Barre d'action",
|
["Actionbar"] = "Barre d'action",
|
||||||
["Action Bar"] = "Barre d'action",
|
["Action Bar"] = "Barre d'action",
|
||||||
["Action Bar Border Size"] = "Taille de la bordure de la barre d'action",
|
["Action Bar Border Size"] = "Taille de la bordure de la barre d'action",
|
||||||
["Action Bars"] = nil,
|
|
||||||
["Active Addons"] = "Addons Actif",
|
["Active Addons"] = "Addons Actif",
|
||||||
["Add button to the frame"] = "Ajoute un bouton au cadre",
|
["Add button to the frame"] = "Ajoute un bouton au cadre",
|
||||||
["Added button"] = "Bouton ajouté",
|
["Added button"] = "Bouton ajouté",
|
||||||
@@ -77,11 +76,11 @@ pfUI_translation["frFR"] = {
|
|||||||
["Bottom"] = "Bas",
|
["Bottom"] = "Bas",
|
||||||
["Bottom Left"] = "Bas Gauche",
|
["Bottom Left"] = "Bas Gauche",
|
||||||
["Bottom Right"] = "Bas Droit",
|
["Bottom Right"] = "Bas Droit",
|
||||||
|
["Buff And Debuff Timers"] = nil,
|
||||||
["Buffbar Height"] = "Hauteur de la barre des Améliorations",
|
["Buffbar Height"] = "Hauteur de la barre des Améliorations",
|
||||||
["Buffbar Width"] = "Largeur de la barre des Améliorations",
|
["Buffbar Width"] = "Largeur de la barre des Améliorations",
|
||||||
["Buff/Debuff Icons"] = "Icones de Améliorations/Affaiblissements",
|
["Buff/Debuff Icons"] = "Icones de Améliorations/Affaiblissements",
|
||||||
["Buff/Debuff Indicators"] = nil,
|
["Buff/Debuff Indicators"] = nil,
|
||||||
["Buff Indicators"] = nil,
|
|
||||||
["Buff Limit"] = "Limite des améliorations",
|
["Buff Limit"] = "Limite des améliorations",
|
||||||
["Buff Position"] = "Position des améliorations",
|
["Buff Position"] = "Position des améliorations",
|
||||||
["Buffs"] = "Buffs",
|
["Buffs"] = "Buffs",
|
||||||
@@ -106,6 +105,15 @@ pfUI_translation["frFR"] = {
|
|||||||
["Center Text"] = "Centrer le texte",
|
["Center Text"] = "Centrer le texte",
|
||||||
["Center Text X Offset"] = nil,
|
["Center Text X Offset"] = nil,
|
||||||
["Center Text Y Offset"] = nil,
|
["Center Text Y Offset"] = nil,
|
||||||
|
["Cooldown Timers"] = nil,
|
||||||
|
["Debuff Timers"] = nil,
|
||||||
|
["Duration Timers"] = nil,
|
||||||
|
["Indicator Timers"] = nil,
|
||||||
|
["Numbers"] = nil,
|
||||||
|
["Numbers And Sweep"] = nil,
|
||||||
|
["Sweep"] = nil,
|
||||||
|
["Timers"] = nil,
|
||||||
|
["Unit Buff Timers"] = nil,
|
||||||
["|cff33ffccBlizzard: \"Interface Options\"|r\n\nDo you want me to set up the recommended Blizzard UI settings? This will enable settings that can be found in the Interface section of your client. Options like Buff Durations, Instant Quest Text, Auto Selfcast and others will be set."] = "|cff33ffccBlizzard: \"Options d'Interface\"|r\n\nVoulez-vous que le logiciel vous paramètre les options d'interface recommandées ? Si oui, cela va choisir les options d'interface par défaut de votre client. Les options comme la durée des améliorations, le texte instantané des quêtes, lancer sur soi par défaut et d'autres vont être activées.",
|
["|cff33ffccBlizzard: \"Interface Options\"|r\n\nDo you want me to set up the recommended Blizzard UI settings? This will enable settings that can be found in the Interface section of your client. Options like Buff Durations, Instant Quest Text, Auto Selfcast and others will be set."] = "|cff33ffccBlizzard: \"Options d'Interface\"|r\n\nVoulez-vous que le logiciel vous paramètre les options d'interface recommandées ? Si oui, cela va choisir les options d'interface par défaut de votre client. Les options comme la durée des améliorations, le texte instantané des quêtes, lancer sur soi par défaut et d'autres vont être activées.",
|
||||||
["|cff33ffccChat: \"Channels\"|r\n\nDo you want me to setup the chat channels of your chatframes? This would set important or personal messages to the left chat and world channels and lootinformation to the right chat."] = "|cff33ffccChat: \"Canaux\"|r\n\nVoulez-vous que le logiciel vous paramètre les canaux de discussion dans votre fenêtre de chat ? En faisant ceci, les messages importants et personnels seront sur le chat de gauche, alors que les textes de butin ou autre informations diverses seront affichés sur le chat de droite.",
|
["|cff33ffccChat: \"Channels\"|r\n\nDo you want me to setup the chat channels of your chatframes? This would set important or personal messages to the left chat and world channels and lootinformation to the right chat."] = "|cff33ffccChat: \"Canaux\"|r\n\nVoulez-vous que le logiciel vous paramètre les canaux de discussion dans votre fenêtre de chat ? En faisant ceci, les messages importants et personnels seront sur le chat de gauche, alors que les textes de butin ou autre informations diverses seront affichés sur le chat de droite.",
|
||||||
["|cff33ffccChat: \"Layout\"|r\n\nDo you want me to adjust the layout of your chatframes? This would make sure, that every window is placed on its dedicated position."] = "|cff33ffccChat: \"Position\"|r\n\nVoulez-vous que le logiciel vous paramètre la position de la fenêtre de discussion ? Ceci permet d'optimiser et de placer correctement les fenêtres.",
|
["|cff33ffccChat: \"Layout\"|r\n\nDo you want me to adjust the layout of your chatframes? This would make sure, that every window is placed on its dedicated position."] = "|cff33ffccChat: \"Position\"|r\n\nVoulez-vous que le logiciel vous paramètre la position de la fenêtre de discussion ? Ceci permet d'optimiser et de placer correctement les fenêtres.",
|
||||||
@@ -359,6 +367,7 @@ pfUI_translation["frFR"] = {
|
|||||||
["Group Options"] = "Options de groupe",
|
["Group Options"] = "Options de groupe",
|
||||||
["Group-Pet"] = "Groupe des familiers",
|
["Group-Pet"] = "Groupe des familiers",
|
||||||
["Group-Target"] = "Groupe des cibles",
|
["Group-Target"] = "Groupe des cibles",
|
||||||
|
["Grow Right To Left"] = nil,
|
||||||
["Gryphon"] = nil,
|
["Gryphon"] = nil,
|
||||||
["Gryphons"] = nil,
|
["Gryphons"] = nil,
|
||||||
["Guild Online"] = "Membres de guilde connectés",
|
["Guild Online"] = "Membres de guilde connectés",
|
||||||
@@ -515,7 +524,6 @@ pfUI_translation["frFR"] = {
|
|||||||
["Name | Health Missing"] = "Nom | santé manquante",
|
["Name | Health Missing"] = "Nom | santé manquante",
|
||||||
["Name (Linebreak) -Health Missing"] = nil,
|
["Name (Linebreak) -Health Missing"] = nil,
|
||||||
["Nameplate Border Size"] = "Taille de la bordure des barres de vie flottantes",
|
["Nameplate Border Size"] = "Taille de la bordure des barres de vie flottantes",
|
||||||
["Nameplate Debuffs"] = nil,
|
|
||||||
["Nameplates"] = "Barres de vie flottantes",
|
["Nameplates"] = "Barres de vie flottantes",
|
||||||
["Nameplate Width"] = "Largeur des barres de vie flottantes",
|
["Nameplate Width"] = "Largeur des barres de vie flottantes",
|
||||||
["Name (Short)"] = "Nom (Court)",
|
["Name (Short)"] = "Nom (Court)",
|
||||||
@@ -583,7 +591,6 @@ pfUI_translation["frFR"] = {
|
|||||||
["Pixel"] = "Pixel",
|
["Pixel"] = "Pixel",
|
||||||
["Player"] = "Joueur",
|
["Player"] = "Joueur",
|
||||||
["Player Buff Bar"] = "Barre des Améliorations du Joueur",
|
["Player Buff Bar"] = "Barre des Améliorations du Joueur",
|
||||||
["Player Buffs"] = nil,
|
|
||||||
["Player Castbar"] = "Barre d'incantation du Joueur",
|
["Player Castbar"] = "Barre d'incantation du Joueur",
|
||||||
["Player Debuff Bar"] = "Barre des Affaiblissements du Joueur",
|
["Player Debuff Bar"] = "Barre des Affaiblissements du Joueur",
|
||||||
["Player SP/Haste Display"] = nil,
|
["Player SP/Haste Display"] = nil,
|
||||||
@@ -650,7 +657,6 @@ pfUI_translation["frFR"] = {
|
|||||||
["Resting"] = "Au Repos",
|
["Resting"] = "Au Repos",
|
||||||
["Reveal Unexplored Areas"] = "Révèle les zones non explorées",
|
["Reveal Unexplored Areas"] = "Révèle les zones non explorées",
|
||||||
["Switch to current zone"] = "Aller à la zone actuelle",
|
["Switch to current zone"] = "Aller à la zone actuelle",
|
||||||
["Reverse Sweep On"] = nil,
|
|
||||||
["Right"] = "Droit",
|
["Right"] = "Droit",
|
||||||
["Right Actionbar"] = "Barre d'action droite",
|
["Right Actionbar"] = "Barre d'action droite",
|
||||||
["Right Anchor"] = nil,
|
["Right Anchor"] = nil,
|
||||||
@@ -732,7 +738,6 @@ pfUI_translation["frFR"] = {
|
|||||||
["Show Loot Icon"] = "Afficher l'icône du butin",
|
["Show Loot Icon"] = "Afficher l'icône du butin",
|
||||||
["Show Macro Text"] = "Afficher le texte des macros",
|
["Show Macro Text"] = "Afficher le texte des macros",
|
||||||
["Show Meters By Default"] = "Afficher les compteurs par défaut",
|
["Show Meters By Default"] = "Afficher les compteurs par défaut",
|
||||||
["Show Numbers On"] = nil,
|
|
||||||
["Show On Friendly Units"] = "Afficher sur les unités amicales",
|
["Show On Friendly Units"] = "Afficher sur les unités amicales",
|
||||||
["Show On Hostile Units"] = "Afficher sur les unités hostiles",
|
["Show On Hostile Units"] = "Afficher sur les unités hostiles",
|
||||||
["Show Procs Indicators"] = "Afficher les indicateurs de Procs",
|
["Show Procs Indicators"] = "Afficher les indicateurs de Procs",
|
||||||
@@ -750,7 +755,6 @@ pfUI_translation["frFR"] = {
|
|||||||
["Show Spell Icon"] = "Afficher l'icone des sorts",
|
["Show Spell Icon"] = "Afficher l'icone des sorts",
|
||||||
["Show Spell Name"] = nil,
|
["Show Spell Name"] = nil,
|
||||||
["Show Stacks"] = "Afficher les empilements",
|
["Show Stacks"] = "Afficher les empilements",
|
||||||
["Show Sweep On"] = nil,
|
|
||||||
["Show Tenths Below 5 Seconds"] = nil,
|
["Show Tenths Below 5 Seconds"] = nil,
|
||||||
["Show Text"] = nil,
|
["Show Text"] = nil,
|
||||||
["Show Timer"] = nil,
|
["Show Timer"] = nil,
|
||||||
@@ -818,7 +822,6 @@ pfUI_translation["frFR"] = {
|
|||||||
["Tiny (PixelPerfect)"] = "Minuscule (PixelParfait)",
|
["Tiny (PixelPerfect)"] = "Minuscule (PixelParfait)",
|
||||||
["Toggle as Tank"] = "Basculer en tant que tank",
|
["Toggle as Tank"] = "Basculer en tant que tank",
|
||||||
["Tooltip"] = "Infobulle",
|
["Tooltip"] = "Infobulle",
|
||||||
["Tooltip Auras"] = nil,
|
|
||||||
["Tooltip Position"] = "Position de l'infobulle",
|
["Tooltip Position"] = "Position de l'infobulle",
|
||||||
["Tooltip Text Font"] = nil,
|
["Tooltip Text Font"] = nil,
|
||||||
["Tooltip Text Font Size"] = nil,
|
["Tooltip Text Font Size"] = nil,
|
||||||
@@ -830,13 +833,11 @@ pfUI_translation["frFR"] = {
|
|||||||
["Total Gold"] = "Or Total",
|
["Total Gold"] = "Or Total",
|
||||||
["Totem Direction"] = "Direction des totems",
|
["Totem Direction"] = "Direction des totems",
|
||||||
["Totem Icons"] = "Icones des totems",
|
["Totem Icons"] = "Icones des totems",
|
||||||
["Totems"] = nil,
|
|
||||||
["Tracked Reputation"] = nil,
|
["Tracked Reputation"] = nil,
|
||||||
["Tracking Icon Size"] = "Taille de l'icône de suivi",
|
["Tracking Icon Size"] = "Taille de l'icône de suivi",
|
||||||
["Trigger Actions On Key Down"] = "Déclencher des actions sur la touche enfoncée",
|
["Trigger Actions On Key Down"] = "Déclencher des actions sur la touche enfoncée",
|
||||||
["UI-Scale"] = "Echelle de l'interface",
|
["UI-Scale"] = "Echelle de l'interface",
|
||||||
["Unbuffed"] = "Sans Améliorations",
|
["Unbuffed"] = "Sans Améliorations",
|
||||||
["Unit Frame Auras"] = nil,
|
|
||||||
["Unit Frame Border Size"] = "Taille de la bordure des cadres d'unité",
|
["Unit Frame Border Size"] = "Taille de la bordure des cadres d'unité",
|
||||||
["Unit Frame Layout"] = "Position des cadres d'unité",
|
["Unit Frame Layout"] = "Position des cadres d'unité",
|
||||||
["Unit Frames"] = "Cadres d'unités",
|
["Unit Frames"] = "Cadres d'unités",
|
||||||
|
|||||||
Vendored
+11
-10
@@ -8,7 +8,6 @@ pfUI_translation["koKR"] = {
|
|||||||
["Actionbar"] = "액션바",
|
["Actionbar"] = "액션바",
|
||||||
["Action Bar"] = nil,
|
["Action Bar"] = nil,
|
||||||
["Action Bar Border Size"] = "액션바 테두리 크기",
|
["Action Bar Border Size"] = "액션바 테두리 크기",
|
||||||
["Action Bars"] = nil,
|
|
||||||
["Active Addons"] = "애드온 활성화",
|
["Active Addons"] = "애드온 활성화",
|
||||||
["Add button to the frame"] = nil,
|
["Add button to the frame"] = nil,
|
||||||
["Added button"] = nil,
|
["Added button"] = nil,
|
||||||
@@ -77,11 +76,11 @@ pfUI_translation["koKR"] = {
|
|||||||
["Bottom"] = "아래",
|
["Bottom"] = "아래",
|
||||||
["Bottom Left"] = nil,
|
["Bottom Left"] = nil,
|
||||||
["Bottom Right"] = nil,
|
["Bottom Right"] = nil,
|
||||||
|
["Buff And Debuff Timers"] = nil,
|
||||||
["Buffbar Height"] = nil,
|
["Buffbar Height"] = nil,
|
||||||
["Buffbar Width"] = nil,
|
["Buffbar Width"] = nil,
|
||||||
["Buff/Debuff Icons"] = nil,
|
["Buff/Debuff Icons"] = nil,
|
||||||
["Buff/Debuff Indicators"] = nil,
|
["Buff/Debuff Indicators"] = nil,
|
||||||
["Buff Indicators"] = nil,
|
|
||||||
["Buff Limit"] = "버프 한도",
|
["Buff Limit"] = "버프 한도",
|
||||||
["Buff Position"] = "버프 위치",
|
["Buff Position"] = "버프 위치",
|
||||||
["Buffs"] = nil,
|
["Buffs"] = nil,
|
||||||
@@ -106,6 +105,15 @@ pfUI_translation["koKR"] = {
|
|||||||
["Center Text"] = "가운데 텍스트",
|
["Center Text"] = "가운데 텍스트",
|
||||||
["Center Text X Offset"] = nil,
|
["Center Text X Offset"] = nil,
|
||||||
["Center Text Y Offset"] = nil,
|
["Center Text Y Offset"] = nil,
|
||||||
|
["Cooldown Timers"] = nil,
|
||||||
|
["Debuff Timers"] = nil,
|
||||||
|
["Duration Timers"] = nil,
|
||||||
|
["Indicator Timers"] = nil,
|
||||||
|
["Numbers"] = nil,
|
||||||
|
["Numbers And Sweep"] = nil,
|
||||||
|
["Sweep"] = nil,
|
||||||
|
["Timers"] = nil,
|
||||||
|
["Unit Buff Timers"] = nil,
|
||||||
["|cff33ffccBlizzard: \"Interface Options\"|r\n\nDo you want me to set up the recommended Blizzard UI settings? This will enable settings that can be found in the Interface section of your client. Options like Buff Durations, Instant Quest Text, Auto Selfcast and others will be set."] = "|cff33ffcc블리자드: \"인터페이스 옵션\"|r\n\n내가 권장하는 블리자드 UI 설정을 설치하길 원하십니까? 이렇게하면 클라이언트의 인터페이스 섹션에서 찾을 수 있는 설정이 활성화됩니다. 버프 기간, 인스턴트 퀘스트 텍스트, 자동 셀프 캐스트 및 기타 옵션이 설정됩니다.",
|
["|cff33ffccBlizzard: \"Interface Options\"|r\n\nDo you want me to set up the recommended Blizzard UI settings? This will enable settings that can be found in the Interface section of your client. Options like Buff Durations, Instant Quest Text, Auto Selfcast and others will be set."] = "|cff33ffcc블리자드: \"인터페이스 옵션\"|r\n\n내가 권장하는 블리자드 UI 설정을 설치하길 원하십니까? 이렇게하면 클라이언트의 인터페이스 섹션에서 찾을 수 있는 설정이 활성화됩니다. 버프 기간, 인스턴트 퀘스트 텍스트, 자동 셀프 캐스트 및 기타 옵션이 설정됩니다.",
|
||||||
["|cff33ffccChat: \"Channels\"|r\n\nDo you want me to setup the chat channels of your chatframes? This would set important or personal messages to the left chat and world channels and lootinformation to the right chat."] = "|cff33ffcc채팅: \"채널\"|r\n\n채팅 프레임의 채팅 채널을 설정하길 원하십니까? 그렇다면 왼쪽하단 채팅창에 중요하거나 개인적인 메시지가 표시됩니다. 그리고 오른쪽하단 채팅창에는 월드채널,룻팅정보가 표시됩니다.",
|
["|cff33ffccChat: \"Channels\"|r\n\nDo you want me to setup the chat channels of your chatframes? This would set important or personal messages to the left chat and world channels and lootinformation to the right chat."] = "|cff33ffcc채팅: \"채널\"|r\n\n채팅 프레임의 채팅 채널을 설정하길 원하십니까? 그렇다면 왼쪽하단 채팅창에 중요하거나 개인적인 메시지가 표시됩니다. 그리고 오른쪽하단 채팅창에는 월드채널,룻팅정보가 표시됩니다.",
|
||||||
["|cff33ffccChat: \"Layout\"|r\n\nDo you want me to adjust the layout of your chatframes? This would make sure, that every window is placed on its dedicated position."] = "|cff33ffcc채팅: \"레이아웃\"|r\n\n채팅 프레임의 레이아웃을 조정하길 원하십니까? 이렇게하면 모든 창을 전용 위치에 배치 할 수 있습니다.",
|
["|cff33ffccChat: \"Layout\"|r\n\nDo you want me to adjust the layout of your chatframes? This would make sure, that every window is placed on its dedicated position."] = "|cff33ffcc채팅: \"레이아웃\"|r\n\n채팅 프레임의 레이아웃을 조정하길 원하십니까? 이렇게하면 모든 창을 전용 위치에 배치 할 수 있습니다.",
|
||||||
@@ -359,6 +367,7 @@ pfUI_translation["koKR"] = {
|
|||||||
["Group Options"] = nil,
|
["Group Options"] = nil,
|
||||||
["Group-Pet"] = "파티-팻",
|
["Group-Pet"] = "파티-팻",
|
||||||
["Group-Target"] = "파티-타켓",
|
["Group-Target"] = "파티-타켓",
|
||||||
|
["Grow Right To Left"] = nil,
|
||||||
["Gryphon"] = nil,
|
["Gryphon"] = nil,
|
||||||
["Gryphons"] = nil,
|
["Gryphons"] = nil,
|
||||||
["Guild Online"] = "접속중인 길드원",
|
["Guild Online"] = "접속중인 길드원",
|
||||||
@@ -515,7 +524,6 @@ pfUI_translation["koKR"] = {
|
|||||||
["Name | Health Missing"] = nil,
|
["Name | Health Missing"] = nil,
|
||||||
["Name (Linebreak) -Health Missing"] = nil,
|
["Name (Linebreak) -Health Missing"] = nil,
|
||||||
["Nameplate Border Size"] = nil,
|
["Nameplate Border Size"] = nil,
|
||||||
["Nameplate Debuffs"] = nil,
|
|
||||||
["Nameplates"] = "상바",
|
["Nameplates"] = "상바",
|
||||||
["Nameplate Width"] = "상바 넓이",
|
["Nameplate Width"] = "상바 넓이",
|
||||||
["Name (Short)"] = nil,
|
["Name (Short)"] = nil,
|
||||||
@@ -583,7 +591,6 @@ pfUI_translation["koKR"] = {
|
|||||||
["Pixel"] = nil,
|
["Pixel"] = nil,
|
||||||
["Player"] = "플레이어",
|
["Player"] = "플레이어",
|
||||||
["Player Buff Bar"] = nil,
|
["Player Buff Bar"] = nil,
|
||||||
["Player Buffs"] = nil,
|
|
||||||
["Player Castbar"] = nil,
|
["Player Castbar"] = nil,
|
||||||
["Player Debuff Bar"] = nil,
|
["Player Debuff Bar"] = nil,
|
||||||
["Player SP/Haste Display"] = nil,
|
["Player SP/Haste Display"] = nil,
|
||||||
@@ -650,7 +657,6 @@ pfUI_translation["koKR"] = {
|
|||||||
["Resting"] = "휴식",
|
["Resting"] = "휴식",
|
||||||
["Reveal Unexplored Areas"] = nil,
|
["Reveal Unexplored Areas"] = nil,
|
||||||
["Switch to current zone"] = nil,
|
["Switch to current zone"] = nil,
|
||||||
["Reverse Sweep On"] = nil,
|
|
||||||
["Right"] = "오른쪽",
|
["Right"] = "오른쪽",
|
||||||
["Right Actionbar"] = nil,
|
["Right Actionbar"] = nil,
|
||||||
["Right Anchor"] = nil,
|
["Right Anchor"] = nil,
|
||||||
@@ -732,7 +738,6 @@ pfUI_translation["koKR"] = {
|
|||||||
["Show Loot Icon"] = nil,
|
["Show Loot Icon"] = nil,
|
||||||
["Show Macro Text"] = "매크로 텍스트 표시",
|
["Show Macro Text"] = "매크로 텍스트 표시",
|
||||||
["Show Meters By Default"] = nil,
|
["Show Meters By Default"] = nil,
|
||||||
["Show Numbers On"] = nil,
|
|
||||||
["Show On Friendly Units"] = nil,
|
["Show On Friendly Units"] = nil,
|
||||||
["Show On Hostile Units"] = nil,
|
["Show On Hostile Units"] = nil,
|
||||||
["Show Procs Indicators"] = nil,
|
["Show Procs Indicators"] = nil,
|
||||||
@@ -750,7 +755,6 @@ pfUI_translation["koKR"] = {
|
|||||||
["Show Spell Icon"] = nil,
|
["Show Spell Icon"] = nil,
|
||||||
["Show Spell Name"] = nil,
|
["Show Spell Name"] = nil,
|
||||||
["Show Stacks"] = nil,
|
["Show Stacks"] = nil,
|
||||||
["Show Sweep On"] = nil,
|
|
||||||
["Show Tenths Below 5 Seconds"] = nil,
|
["Show Tenths Below 5 Seconds"] = nil,
|
||||||
["Show Text"] = nil,
|
["Show Text"] = nil,
|
||||||
["Show Timer"] = nil,
|
["Show Timer"] = nil,
|
||||||
@@ -818,7 +822,6 @@ pfUI_translation["koKR"] = {
|
|||||||
["Tiny (PixelPerfect)"] = nil,
|
["Tiny (PixelPerfect)"] = nil,
|
||||||
["Toggle as Tank"] = nil,
|
["Toggle as Tank"] = nil,
|
||||||
["Tooltip"] = "툴팁",
|
["Tooltip"] = "툴팁",
|
||||||
["Tooltip Auras"] = nil,
|
|
||||||
["Tooltip Position"] = "툴팁위치",
|
["Tooltip Position"] = "툴팁위치",
|
||||||
["Tooltip Text Font"] = nil,
|
["Tooltip Text Font"] = nil,
|
||||||
["Tooltip Text Font Size"] = nil,
|
["Tooltip Text Font Size"] = nil,
|
||||||
@@ -830,13 +833,11 @@ pfUI_translation["koKR"] = {
|
|||||||
["Total Gold"] = "총 금",
|
["Total Gold"] = "총 금",
|
||||||
["Totem Direction"] = nil,
|
["Totem Direction"] = nil,
|
||||||
["Totem Icons"] = nil,
|
["Totem Icons"] = nil,
|
||||||
["Totems"] = nil,
|
|
||||||
["Tracked Reputation"] = nil,
|
["Tracked Reputation"] = nil,
|
||||||
["Tracking Icon Size"] = nil,
|
["Tracking Icon Size"] = nil,
|
||||||
["Trigger Actions On Key Down"] = nil,
|
["Trigger Actions On Key Down"] = nil,
|
||||||
["UI-Scale"] = "UI-크기",
|
["UI-Scale"] = "UI-크기",
|
||||||
["Unbuffed"] = nil,
|
["Unbuffed"] = nil,
|
||||||
["Unit Frame Auras"] = nil,
|
|
||||||
["Unit Frame Border Size"] = "유닛프레임 테두리 크기",
|
["Unit Frame Border Size"] = "유닛프레임 테두리 크기",
|
||||||
["Unit Frame Layout"] = "유닛프레임 레이아웃",
|
["Unit Frame Layout"] = "유닛프레임 레이아웃",
|
||||||
["Unit Frames"] = "유닛프레임",
|
["Unit Frames"] = "유닛프레임",
|
||||||
|
|||||||
Vendored
+11
-10
@@ -8,7 +8,6 @@ pfUI_translation["ruRU"] = {
|
|||||||
["Actionbar"] = "Панель действий",
|
["Actionbar"] = "Панель действий",
|
||||||
["Action Bar"] = "Панель действий",
|
["Action Bar"] = "Панель действий",
|
||||||
["Action Bar Border Size"] = "Размер границы панели действий",
|
["Action Bar Border Size"] = "Размер границы панели действий",
|
||||||
["Action Bars"] = nil,
|
|
||||||
["Active Addons"] = "Активные аддоны",
|
["Active Addons"] = "Активные аддоны",
|
||||||
["Add button to the frame"] = "Добавить кнопку в окно",
|
["Add button to the frame"] = "Добавить кнопку в окно",
|
||||||
["Added button"] = "Добавлена кнопка",
|
["Added button"] = "Добавлена кнопка",
|
||||||
@@ -77,11 +76,11 @@ pfUI_translation["ruRU"] = {
|
|||||||
["Bottom"] = "Снизу",
|
["Bottom"] = "Снизу",
|
||||||
["Bottom Left"] = "Снизу слева",
|
["Bottom Left"] = "Снизу слева",
|
||||||
["Bottom Right"] = "Снизу справа",
|
["Bottom Right"] = "Снизу справа",
|
||||||
|
["Buff And Debuff Timers"] = nil,
|
||||||
["Buffbar Height"] = "Высота панели баффов",
|
["Buffbar Height"] = "Высота панели баффов",
|
||||||
["Buffbar Width"] = "Ширина панели баффов",
|
["Buffbar Width"] = "Ширина панели баффов",
|
||||||
["Buff/Debuff Icons"] = "Иконки баффов/дебаффов",
|
["Buff/Debuff Icons"] = "Иконки баффов/дебаффов",
|
||||||
["Buff/Debuff Indicators"] = "Индикаторы баффов/дебаффов",
|
["Buff/Debuff Indicators"] = "Индикаторы баффов/дебаффов",
|
||||||
["Buff Indicators"] = nil,
|
|
||||||
["Buff Limit"] = "Предел баффов",
|
["Buff Limit"] = "Предел баффов",
|
||||||
["Buff Position"] = "Расположение баффов",
|
["Buff Position"] = "Расположение баффов",
|
||||||
["Buffs"] = "Баффы",
|
["Buffs"] = "Баффы",
|
||||||
@@ -106,6 +105,15 @@ pfUI_translation["ruRU"] = {
|
|||||||
["Center Text"] = "Текст по центру",
|
["Center Text"] = "Текст по центру",
|
||||||
["Center Text X Offset"] = nil,
|
["Center Text X Offset"] = nil,
|
||||||
["Center Text Y Offset"] = nil,
|
["Center Text Y Offset"] = nil,
|
||||||
|
["Cooldown Timers"] = nil,
|
||||||
|
["Debuff Timers"] = nil,
|
||||||
|
["Duration Timers"] = nil,
|
||||||
|
["Indicator Timers"] = nil,
|
||||||
|
["Numbers"] = nil,
|
||||||
|
["Numbers And Sweep"] = nil,
|
||||||
|
["Sweep"] = nil,
|
||||||
|
["Timers"] = nil,
|
||||||
|
["Unit Buff Timers"] = nil,
|
||||||
["|cff33ffccBlizzard: \"Interface Options\"|r\n\nDo you want me to set up the recommended Blizzard UI settings? This will enable settings that can be found in the Interface section of your client. Options like Buff Durations, Instant Quest Text, Auto Selfcast and others will be set."] = "|cff33ffccBlizzard: \"Настройки интерфейса\"|r\n\nВы хотите, чтобы я установил рекомендуемые настройки пользовательского интерфейса Blizzard? Это позволит настроить параметры, которые можно найти в разделе \"Интерфейс\" вашего клиента. Будут установлены такие параметры, как Срок действия эффектов, Мгновенное отображение текста, Автовыбор себя и другие.",
|
["|cff33ffccBlizzard: \"Interface Options\"|r\n\nDo you want me to set up the recommended Blizzard UI settings? This will enable settings that can be found in the Interface section of your client. Options like Buff Durations, Instant Quest Text, Auto Selfcast and others will be set."] = "|cff33ffccBlizzard: \"Настройки интерфейса\"|r\n\nВы хотите, чтобы я установил рекомендуемые настройки пользовательского интерфейса Blizzard? Это позволит настроить параметры, которые можно найти в разделе \"Интерфейс\" вашего клиента. Будут установлены такие параметры, как Срок действия эффектов, Мгновенное отображение текста, Автовыбор себя и другие.",
|
||||||
["|cff33ffccChat: \"Channels\"|r\n\nDo you want me to setup the chat channels of your chatframes? This would set important or personal messages to the left chat and world channels and lootinformation to the right chat."] = "|cff33ffccЧат: \"Каналы\"|r\n\nВы хотите, чтобы я настраивал каналы для вашего чата? Это установило бы важные или личные сообщения в левый чат, а мировые каналы и информацию о добыче в правый чат.",
|
["|cff33ffccChat: \"Channels\"|r\n\nDo you want me to setup the chat channels of your chatframes? This would set important or personal messages to the left chat and world channels and lootinformation to the right chat."] = "|cff33ffccЧат: \"Каналы\"|r\n\nВы хотите, чтобы я настраивал каналы для вашего чата? Это установило бы важные или личные сообщения в левый чат, а мировые каналы и информацию о добыче в правый чат.",
|
||||||
["|cff33ffccChat: \"Layout\"|r\n\nDo you want me to adjust the layout of your chatframes? This would make sure, that every window is placed on its dedicated position."] = "|cff33ffccЧат: \"Макет\"|r\n\nВы хотите, чтобы я скорректировал макет вашего чата? Это обеспечило бы уверенность, что каждое окно будет помещено в его выделенное положение.",
|
["|cff33ffccChat: \"Layout\"|r\n\nDo you want me to adjust the layout of your chatframes? This would make sure, that every window is placed on its dedicated position."] = "|cff33ffccЧат: \"Макет\"|r\n\nВы хотите, чтобы я скорректировал макет вашего чата? Это обеспечило бы уверенность, что каждое окно будет помещено в его выделенное положение.",
|
||||||
@@ -359,6 +367,7 @@ pfUI_translation["ruRU"] = {
|
|||||||
["Group Options"] = "Настройки группы",
|
["Group Options"] = "Настройки группы",
|
||||||
["Group-Pet"] = "Группа-питомец",
|
["Group-Pet"] = "Группа-питомец",
|
||||||
["Group-Target"] = "Группа-цель",
|
["Group-Target"] = "Группа-цель",
|
||||||
|
["Grow Right To Left"] = nil,
|
||||||
["Gryphon"] = nil,
|
["Gryphon"] = nil,
|
||||||
["Gryphons"] = nil,
|
["Gryphons"] = nil,
|
||||||
["Guild Online"] = "Члены гильдии в сети",
|
["Guild Online"] = "Члены гильдии в сети",
|
||||||
@@ -515,7 +524,6 @@ pfUI_translation["ruRU"] = {
|
|||||||
["Name | Health Missing"] = "Имя | Отсутствующее здоровье",
|
["Name | Health Missing"] = "Имя | Отсутствующее здоровье",
|
||||||
["Name (Linebreak) -Health Missing"] = "Имя (разрыв линии) -Отсутствует здоровье",
|
["Name (Linebreak) -Health Missing"] = "Имя (разрыв линии) -Отсутствует здоровье",
|
||||||
["Nameplate Border Size"] = "Размер границы индикатора здоровья",
|
["Nameplate Border Size"] = "Размер границы индикатора здоровья",
|
||||||
["Nameplate Debuffs"] = nil,
|
|
||||||
["Nameplates"] = "Индикаторы здоровья",
|
["Nameplates"] = "Индикаторы здоровья",
|
||||||
["Nameplate Width"] = "Ширина индикатора здоровья",
|
["Nameplate Width"] = "Ширина индикатора здоровья",
|
||||||
["Name (Short)"] = "Короткое имя",
|
["Name (Short)"] = "Короткое имя",
|
||||||
@@ -583,7 +591,6 @@ pfUI_translation["ruRU"] = {
|
|||||||
["Pixel"] = "пиксель",
|
["Pixel"] = "пиксель",
|
||||||
["Player"] = "Игрок",
|
["Player"] = "Игрок",
|
||||||
["Player Buff Bar"] = "Панель баффов игрока",
|
["Player Buff Bar"] = "Панель баффов игрока",
|
||||||
["Player Buffs"] = nil,
|
|
||||||
["Player Castbar"] = "Панель применения игрока",
|
["Player Castbar"] = "Панель применения игрока",
|
||||||
["Player Debuff Bar"] = "Панель дебаффов игрока",
|
["Player Debuff Bar"] = "Панель дебаффов игрока",
|
||||||
["Player SP/Haste Display"] = nil,
|
["Player SP/Haste Display"] = nil,
|
||||||
@@ -650,7 +657,6 @@ pfUI_translation["ruRU"] = {
|
|||||||
["Resting"] = "Отдыхающий",
|
["Resting"] = "Отдыхающий",
|
||||||
["Reveal Unexplored Areas"] = "Показывать неисследованные области",
|
["Reveal Unexplored Areas"] = "Показывать неисследованные области",
|
||||||
["Switch to current zone"] = "Перейти к текущей зоне",
|
["Switch to current zone"] = "Перейти к текущей зоне",
|
||||||
["Reverse Sweep On"] = nil,
|
|
||||||
["Right"] = "Справа",
|
["Right"] = "Справа",
|
||||||
["Right Actionbar"] = "Правая",
|
["Right Actionbar"] = "Правая",
|
||||||
["Right Anchor"] = nil,
|
["Right Anchor"] = nil,
|
||||||
@@ -732,7 +738,6 @@ pfUI_translation["ruRU"] = {
|
|||||||
["Show Loot Icon"] = "Показать иконку добычи",
|
["Show Loot Icon"] = "Показать иконку добычи",
|
||||||
["Show Macro Text"] = "Показать текст макросов",
|
["Show Macro Text"] = "Показать текст макросов",
|
||||||
["Show Meters By Default"] = "Показать счетчики по умолчанию",
|
["Show Meters By Default"] = "Показать счетчики по умолчанию",
|
||||||
["Show Numbers On"] = nil,
|
|
||||||
["Show On Friendly Units"] = "Показать на дружественных юнитах",
|
["Show On Friendly Units"] = "Показать на дружественных юнитах",
|
||||||
["Show On Hostile Units"] = "Показать на вражеских юнитах",
|
["Show On Hostile Units"] = "Показать на вражеских юнитах",
|
||||||
["Show Procs Indicators"] = "Показать проки (Procs)",
|
["Show Procs Indicators"] = "Показать проки (Procs)",
|
||||||
@@ -750,7 +755,6 @@ pfUI_translation["ruRU"] = {
|
|||||||
["Show Spell Icon"] = "Показать иконку заклинания",
|
["Show Spell Icon"] = "Показать иконку заклинания",
|
||||||
["Show Spell Name"] = "Показать название заклинания",
|
["Show Spell Name"] = "Показать название заклинания",
|
||||||
["Show Stacks"] = "Показать стаки",
|
["Show Stacks"] = "Показать стаки",
|
||||||
["Show Sweep On"] = nil,
|
|
||||||
["Show Tenths Below 5 Seconds"] = nil,
|
["Show Tenths Below 5 Seconds"] = nil,
|
||||||
["Show Text"] = nil,
|
["Show Text"] = nil,
|
||||||
["Show Timer"] = "Показать таймер",
|
["Show Timer"] = "Показать таймер",
|
||||||
@@ -818,7 +822,6 @@ pfUI_translation["ruRU"] = {
|
|||||||
["Tiny (PixelPerfect)"] = "Крошечный (идеальный пиксель)",
|
["Tiny (PixelPerfect)"] = "Крошечный (идеальный пиксель)",
|
||||||
["Toggle as Tank"] = "Переключить как танк",
|
["Toggle as Tank"] = "Переключить как танк",
|
||||||
["Tooltip"] = "Подсказка",
|
["Tooltip"] = "Подсказка",
|
||||||
["Tooltip Auras"] = nil,
|
|
||||||
["Tooltip Position"] = "Расположение подсказки",
|
["Tooltip Position"] = "Расположение подсказки",
|
||||||
["Tooltip Text Font"] = nil,
|
["Tooltip Text Font"] = nil,
|
||||||
["Tooltip Text Font Size"] = nil,
|
["Tooltip Text Font Size"] = nil,
|
||||||
@@ -830,13 +833,11 @@ pfUI_translation["ruRU"] = {
|
|||||||
["Total Gold"] = "Всего золота",
|
["Total Gold"] = "Всего золота",
|
||||||
["Totem Direction"] = "Направление тотемов",
|
["Totem Direction"] = "Направление тотемов",
|
||||||
["Totem Icons"] = "Иконки тотемов",
|
["Totem Icons"] = "Иконки тотемов",
|
||||||
["Totems"] = nil,
|
|
||||||
["Tracked Reputation"] = "Отслеживаемая репутация",
|
["Tracked Reputation"] = "Отслеживаемая репутация",
|
||||||
["Tracking Icon Size"] = "Размер иконки отслеживания",
|
["Tracking Icon Size"] = "Размер иконки отслеживания",
|
||||||
["Trigger Actions On Key Down"] = "Активация действий при нажатии клавиши (а не ее отпускании)",
|
["Trigger Actions On Key Down"] = "Активация действий при нажатии клавиши (а не ее отпускании)",
|
||||||
["UI-Scale"] = "Масштаб пользовательского интерфейса",
|
["UI-Scale"] = "Масштаб пользовательского интерфейса",
|
||||||
["Unbuffed"] = "Без баффа",
|
["Unbuffed"] = "Без баффа",
|
||||||
["Unit Frame Auras"] = nil,
|
|
||||||
["Unit Frame Border Size"] = "Размер границы окна юнита",
|
["Unit Frame Border Size"] = "Размер границы окна юнита",
|
||||||
["Unit Frame Layout"] = "Макет окна юнита",
|
["Unit Frame Layout"] = "Макет окна юнита",
|
||||||
["Unit Frames"] = "Окна юнита",
|
["Unit Frames"] = "Окна юнита",
|
||||||
|
|||||||
Vendored
+11
-10
@@ -8,7 +8,6 @@ pfUI_translation["zhCN"] = {
|
|||||||
["Actionbar"] = "动作条",
|
["Actionbar"] = "动作条",
|
||||||
["Action Bar"] = "动作条",
|
["Action Bar"] = "动作条",
|
||||||
["Action Bar Border Size"] = "动作条边框大小",
|
["Action Bar Border Size"] = "动作条边框大小",
|
||||||
["Action Bars"] = nil,
|
|
||||||
["Active Addons"] = "激活的插件",
|
["Active Addons"] = "激活的插件",
|
||||||
["Add button to the frame"] = "添加按钮到框架",
|
["Add button to the frame"] = "添加按钮到框架",
|
||||||
["Added button"] = "已添加按钮",
|
["Added button"] = "已添加按钮",
|
||||||
@@ -77,11 +76,11 @@ pfUI_translation["zhCN"] = {
|
|||||||
["Bottom"] = "底部",
|
["Bottom"] = "底部",
|
||||||
["Bottom Left"] = "左下方",
|
["Bottom Left"] = "左下方",
|
||||||
["Bottom Right"] = "右下方",
|
["Bottom Right"] = "右下方",
|
||||||
|
["Buff And Debuff Timers"] = nil,
|
||||||
["Buffbar Height"] = "Buff条高度",
|
["Buffbar Height"] = "Buff条高度",
|
||||||
["Buffbar Width"] = "Buff条宽度",
|
["Buffbar Width"] = "Buff条宽度",
|
||||||
["Buff/Debuff Icons"] = "Buff/Debuff图标",
|
["Buff/Debuff Icons"] = "Buff/Debuff图标",
|
||||||
["Buff/Debuff Indicators"] = "Buff/Debuff指示器",
|
["Buff/Debuff Indicators"] = "Buff/Debuff指示器",
|
||||||
["Buff Indicators"] = nil,
|
|
||||||
["Buff Limit"] = "Buff总数量",
|
["Buff Limit"] = "Buff总数量",
|
||||||
["Buff Position"] = "Buff显示的位置",
|
["Buff Position"] = "Buff显示的位置",
|
||||||
["Buffs"] = "Buff(增益)",
|
["Buffs"] = "Buff(增益)",
|
||||||
@@ -106,6 +105,15 @@ pfUI_translation["zhCN"] = {
|
|||||||
["Center Text"] = "中间文字",
|
["Center Text"] = "中间文字",
|
||||||
["Center Text X Offset"] = "中心文本水平偏移量",
|
["Center Text X Offset"] = "中心文本水平偏移量",
|
||||||
["Center Text Y Offset"] = "中心文本垂直偏移量",
|
["Center Text Y Offset"] = "中心文本垂直偏移量",
|
||||||
|
["Cooldown Timers"] = nil,
|
||||||
|
["Debuff Timers"] = nil,
|
||||||
|
["Duration Timers"] = nil,
|
||||||
|
["Indicator Timers"] = nil,
|
||||||
|
["Numbers"] = nil,
|
||||||
|
["Numbers And Sweep"] = nil,
|
||||||
|
["Sweep"] = nil,
|
||||||
|
["Timers"] = nil,
|
||||||
|
["Unit Buff Timers"] = nil,
|
||||||
["|cff33ffccBlizzard: \"Interface Options\"|r\n\nDo you want me to set up the recommended Blizzard UI settings? This will enable settings that can be found in the Interface section of your client. Options like Buff Durations, Instant Quest Text, Auto Selfcast and others will be set."] = "|cff33ffcc暴雪: \"界面选项\"|r\n\n你要我安装暴雪UI设置建议? 启用此设置可以在客户端的接口部分找到。 像buff持续时间选项,即时任务文本,自动施法和其他功能将被设置。",
|
["|cff33ffccBlizzard: \"Interface Options\"|r\n\nDo you want me to set up the recommended Blizzard UI settings? This will enable settings that can be found in the Interface section of your client. Options like Buff Durations, Instant Quest Text, Auto Selfcast and others will be set."] = "|cff33ffcc暴雪: \"界面选项\"|r\n\n你要我安装暴雪UI设置建议? 启用此设置可以在客户端的接口部分找到。 像buff持续时间选项,即时任务文本,自动施法和其他功能将被设置。",
|
||||||
["|cff33ffccChat: \"Channels\"|r\n\nDo you want me to setup the chat channels of your chatframes? This would set important or personal messages to the left chat and world channels and lootinformation to the right chat."] = "|cff33ffcc聊天框架: \"聊天频道\"|r\n\n你想建立聊天框架中新的聊天频道? 这将设置重要或个人信息到左侧聊天。 和世界频道和信息到正确的聊天窗口。",
|
["|cff33ffccChat: \"Channels\"|r\n\nDo you want me to setup the chat channels of your chatframes? This would set important or personal messages to the left chat and world channels and lootinformation to the right chat."] = "|cff33ffcc聊天框架: \"聊天频道\"|r\n\n你想建立聊天框架中新的聊天频道? 这将设置重要或个人信息到左侧聊天。 和世界频道和信息到正确的聊天窗口。",
|
||||||
["|cff33ffccChat: \"Layout\"|r\n\nDo you want me to adjust the layout of your chatframes? This would make sure, that every window is placed on its dedicated position."] = "|cff33ffcc聊天框架: \"聊天窗口布局\"|r\n\n你要我调整聊天框架的布局吗? 这将确保每个窗口都放在其专用位置上。",
|
["|cff33ffccChat: \"Layout\"|r\n\nDo you want me to adjust the layout of your chatframes? This would make sure, that every window is placed on its dedicated position."] = "|cff33ffcc聊天框架: \"聊天窗口布局\"|r\n\n你要我调整聊天框架的布局吗? 这将确保每个窗口都放在其专用位置上。",
|
||||||
@@ -359,6 +367,7 @@ pfUI_translation["zhCN"] = {
|
|||||||
["Group Options"] = "队伍选项",
|
["Group Options"] = "队伍选项",
|
||||||
["Group-Pet"] = "小队宠物",
|
["Group-Pet"] = "小队宠物",
|
||||||
["Group-Target"] = "小队目标",
|
["Group-Target"] = "小队目标",
|
||||||
|
["Grow Right To Left"] = nil,
|
||||||
["Gryphon"] = "狮鹫",
|
["Gryphon"] = "狮鹫",
|
||||||
["Gryphons"] = "狮鹫(多个)",
|
["Gryphons"] = "狮鹫(多个)",
|
||||||
["Guild Online"] = "公会在线",
|
["Guild Online"] = "公会在线",
|
||||||
@@ -515,7 +524,6 @@ pfUI_translation["zhCN"] = {
|
|||||||
["Name | Health Missing"] = "名字 | 失去的生命值",
|
["Name | Health Missing"] = "名字 | 失去的生命值",
|
||||||
["Name (Linebreak) -Health Missing"] = "名字 (换行符) -失去的生命值",
|
["Name (Linebreak) -Health Missing"] = "名字 (换行符) -失去的生命值",
|
||||||
["Nameplate Border Size"] = "姓名板边框尺寸",
|
["Nameplate Border Size"] = "姓名板边框尺寸",
|
||||||
["Nameplate Debuffs"] = nil,
|
|
||||||
["Nameplates"] = "姓名板",
|
["Nameplates"] = "姓名板",
|
||||||
["Nameplate Width"] = "姓名板宽度",
|
["Nameplate Width"] = "姓名板宽度",
|
||||||
["Name (Short)"] = "名字 (短)",
|
["Name (Short)"] = "名字 (短)",
|
||||||
@@ -583,7 +591,6 @@ pfUI_translation["zhCN"] = {
|
|||||||
["Pixel"] = "像素",
|
["Pixel"] = "像素",
|
||||||
["Player"] = "玩家",
|
["Player"] = "玩家",
|
||||||
["Player Buff Bar"] = "玩家Buffs条",
|
["Player Buff Bar"] = "玩家Buffs条",
|
||||||
["Player Buffs"] = nil,
|
|
||||||
["Player Castbar"] = "玩家施法条",
|
["Player Castbar"] = "玩家施法条",
|
||||||
["Player Debuff Bar"] = "玩家Debuffs条",
|
["Player Debuff Bar"] = "玩家Debuffs条",
|
||||||
["Player SP/Haste Display"] = nil,
|
["Player SP/Haste Display"] = nil,
|
||||||
@@ -650,7 +657,6 @@ pfUI_translation["zhCN"] = {
|
|||||||
["Resting"] = "休息中",
|
["Resting"] = "休息中",
|
||||||
["Reveal Unexplored Areas"] = "展示未勘探的地区",
|
["Reveal Unexplored Areas"] = "展示未勘探的地区",
|
||||||
["Switch to current zone"] = nil,
|
["Switch to current zone"] = nil,
|
||||||
["Reverse Sweep On"] = nil,
|
|
||||||
["Right"] = "右边",
|
["Right"] = "右边",
|
||||||
["Right Actionbar"] = "右侧动作条",
|
["Right Actionbar"] = "右侧动作条",
|
||||||
["Right Anchor"] = "右锚点",
|
["Right Anchor"] = "右锚点",
|
||||||
@@ -733,7 +739,6 @@ pfUI_translation["zhCN"] = {
|
|||||||
["Show Loot Icon"] = "显示拾取权图标",
|
["Show Loot Icon"] = "显示拾取权图标",
|
||||||
["Show Macro Text"] = "显示宏的名字",
|
["Show Macro Text"] = "显示宏的名字",
|
||||||
["Show Meters By Default"] = "由默认显示其他接口表",
|
["Show Meters By Default"] = "由默认显示其他接口表",
|
||||||
["Show Numbers On"] = nil,
|
|
||||||
["Show On Friendly Units"] = "显示友好单位姓名板",
|
["Show On Friendly Units"] = "显示友好单位姓名板",
|
||||||
["Show On Hostile Units"] = "显示敌对单位姓名板",
|
["Show On Hostile Units"] = "显示敌对单位姓名板",
|
||||||
["Show Procs Indicators"] = "显示触发效果计时器",
|
["Show Procs Indicators"] = "显示触发效果计时器",
|
||||||
@@ -751,7 +756,6 @@ pfUI_translation["zhCN"] = {
|
|||||||
["Show Spell Icon"] = "显示技能图标",
|
["Show Spell Icon"] = "显示技能图标",
|
||||||
["Show Spell Name"] = "显示技能名称",
|
["Show Spell Name"] = "显示技能名称",
|
||||||
["Show Stacks"] = "显示堆叠",
|
["Show Stacks"] = "显示堆叠",
|
||||||
["Show Sweep On"] = nil,
|
|
||||||
["Show Tenths Below 5 Seconds"] = nil,
|
["Show Tenths Below 5 Seconds"] = nil,
|
||||||
["Show Text"] = "显示文本",
|
["Show Text"] = "显示文本",
|
||||||
["Show Timer"] = "显示计时器",
|
["Show Timer"] = "显示计时器",
|
||||||
@@ -819,7 +823,6 @@ pfUI_translation["zhCN"] = {
|
|||||||
["Tiny (PixelPerfect)"] = "极小(像素完美)",
|
["Tiny (PixelPerfect)"] = "极小(像素完美)",
|
||||||
["Toggle as Tank"] = "切换成为坦克",
|
["Toggle as Tank"] = "切换成为坦克",
|
||||||
["Tooltip"] = "信息提示框",
|
["Tooltip"] = "信息提示框",
|
||||||
["Tooltip Auras"] = nil,
|
|
||||||
["Tooltip Position"] = "信息提示框位置",
|
["Tooltip Position"] = "信息提示框位置",
|
||||||
["Tooltip Text Font"] = "鼠标提示框字体",
|
["Tooltip Text Font"] = "鼠标提示框字体",
|
||||||
["Tooltip Text Font Size"] ="鼠标提示框字体大小",
|
["Tooltip Text Font Size"] ="鼠标提示框字体大小",
|
||||||
@@ -831,13 +834,11 @@ pfUI_translation["zhCN"] = {
|
|||||||
["Total Gold"] = "总黄金",
|
["Total Gold"] = "总黄金",
|
||||||
["Totem Direction"] = "图腾方向",
|
["Totem Direction"] = "图腾方向",
|
||||||
["Totem Icons"] = "图腾图标",
|
["Totem Icons"] = "图腾图标",
|
||||||
["Totems"] = nil,
|
|
||||||
["Tracked Reputation"] = "被追踪的声望",
|
["Tracked Reputation"] = "被追踪的声望",
|
||||||
["Tracking Icon Size"] = "追踪图标大小",
|
["Tracking Icon Size"] = "追踪图标大小",
|
||||||
["Trigger Actions On Key Down"] = "按下即施法",
|
["Trigger Actions On Key Down"] = "按下即施法",
|
||||||
["UI-Scale"] = "UI缩放比例",
|
["UI-Scale"] = "UI缩放比例",
|
||||||
["Unbuffed"] = "该Buff缺失者",
|
["Unbuffed"] = "该Buff缺失者",
|
||||||
["Unit Frame Auras"] = nil,
|
|
||||||
["Unit Frame Border Size"] = "头像边框大小",
|
["Unit Frame Border Size"] = "头像边框大小",
|
||||||
["Unit Frame Layout"] = "头像框架样式",
|
["Unit Frame Layout"] = "头像框架样式",
|
||||||
["Unit Frames"] = "头像框架",
|
["Unit Frames"] = "头像框架",
|
||||||
|
|||||||
Vendored
+11
-10
@@ -8,7 +8,6 @@ pfUI_translation["zhTW"] = {
|
|||||||
["Actionbar"] = "動作條",
|
["Actionbar"] = "動作條",
|
||||||
["Action Bar"] = nil,
|
["Action Bar"] = nil,
|
||||||
["Action Bar Border Size"] = "動作條邊框大小",
|
["Action Bar Border Size"] = "動作條邊框大小",
|
||||||
["Action Bars"] = nil,
|
|
||||||
["Active Addons"] = "啟動的外掛程式",
|
["Active Addons"] = "啟動的外掛程式",
|
||||||
["Add button to the frame"] = nil,
|
["Add button to the frame"] = nil,
|
||||||
["Added button"] = nil,
|
["Added button"] = nil,
|
||||||
@@ -77,11 +76,11 @@ pfUI_translation["zhTW"] = {
|
|||||||
["Bottom"] = "底部",
|
["Bottom"] = "底部",
|
||||||
["Bottom Left"] = "左下方",
|
["Bottom Left"] = "左下方",
|
||||||
["Bottom Right"] = "右下方",
|
["Bottom Right"] = "右下方",
|
||||||
|
["Buff And Debuff Timers"] = nil,
|
||||||
["Buffbar Height"] = "Buff高度",
|
["Buffbar Height"] = "Buff高度",
|
||||||
["Buffbar Width"] = "Buff寬度",
|
["Buffbar Width"] = "Buff寬度",
|
||||||
["Buff/Debuff Icons"] = nil,
|
["Buff/Debuff Icons"] = nil,
|
||||||
["Buff/Debuff Indicators"] = nil,
|
["Buff/Debuff Indicators"] = nil,
|
||||||
["Buff Indicators"] = nil,
|
|
||||||
["Buff Limit"] = "Buff總數量",
|
["Buff Limit"] = "Buff總數量",
|
||||||
["Buff Position"] = "Buff顯示的位置",
|
["Buff Position"] = "Buff顯示的位置",
|
||||||
["Buffs"] = "Buff(增益)",
|
["Buffs"] = "Buff(增益)",
|
||||||
@@ -106,6 +105,15 @@ pfUI_translation["zhTW"] = {
|
|||||||
["Center Text"] = "中間文字",
|
["Center Text"] = "中間文字",
|
||||||
["Center Text X Offset"] = nil,
|
["Center Text X Offset"] = nil,
|
||||||
["Center Text Y Offset"] = nil,
|
["Center Text Y Offset"] = nil,
|
||||||
|
["Cooldown Timers"] = nil,
|
||||||
|
["Debuff Timers"] = nil,
|
||||||
|
["Duration Timers"] = nil,
|
||||||
|
["Indicator Timers"] = nil,
|
||||||
|
["Numbers"] = nil,
|
||||||
|
["Numbers And Sweep"] = nil,
|
||||||
|
["Sweep"] = nil,
|
||||||
|
["Timers"] = nil,
|
||||||
|
["Unit Buff Timers"] = nil,
|
||||||
["|cff33ffccBlizzard: \"Interface Options\"|r\n\nDo you want me to set up the recommended Blizzard UI settings? This will enable settings that can be found in the Interface section of your client. Options like Buff Durations, Instant Quest Text, Auto Selfcast and others will be set."] = "|cff33ffcc暴雪: \"介面選項\"|r\n\n你要我安裝暴雪UI設置建議? 啟用此設置可以在用戶端的介面部分找到。 像buff持續時間選項,即時任務文本,自動施法和其他功能將被設置。",
|
["|cff33ffccBlizzard: \"Interface Options\"|r\n\nDo you want me to set up the recommended Blizzard UI settings? This will enable settings that can be found in the Interface section of your client. Options like Buff Durations, Instant Quest Text, Auto Selfcast and others will be set."] = "|cff33ffcc暴雪: \"介面選項\"|r\n\n你要我安裝暴雪UI設置建議? 啟用此設置可以在用戶端的介面部分找到。 像buff持續時間選項,即時任務文本,自動施法和其他功能將被設置。",
|
||||||
["|cff33ffccChat: \"Channels\"|r\n\nDo you want me to setup the chat channels of your chatframes? This would set important or personal messages to the left chat and world channels and lootinformation to the right chat."] = "|cff33ffcc聊天框架: \"聊天頻道\"|r\n\n你想建立聊天框架中新的聊天頻道? 這將設置重要或個人資訊到左側聊天。 和世界頻道和資訊到正確的聊天視窗。",
|
["|cff33ffccChat: \"Channels\"|r\n\nDo you want me to setup the chat channels of your chatframes? This would set important or personal messages to the left chat and world channels and lootinformation to the right chat."] = "|cff33ffcc聊天框架: \"聊天頻道\"|r\n\n你想建立聊天框架中新的聊天頻道? 這將設置重要或個人資訊到左側聊天。 和世界頻道和資訊到正確的聊天視窗。",
|
||||||
["|cff33ffccChat: \"Layout\"|r\n\nDo you want me to adjust the layout of your chatframes? This would make sure, that every window is placed on its dedicated position."] = "|cff33ffcc聊天框架: \"聊天視窗佈局\"|r\n\n你要我調整聊天框架的佈局嗎? 這將確保每個視窗都放在其專用位置上。",
|
["|cff33ffccChat: \"Layout\"|r\n\nDo you want me to adjust the layout of your chatframes? This would make sure, that every window is placed on its dedicated position."] = "|cff33ffcc聊天框架: \"聊天視窗佈局\"|r\n\n你要我調整聊天框架的佈局嗎? 這將確保每個視窗都放在其專用位置上。",
|
||||||
@@ -359,6 +367,7 @@ pfUI_translation["zhTW"] = {
|
|||||||
["Group Options"] = nil,
|
["Group Options"] = nil,
|
||||||
["Group-Pet"] = "小隊寵物",
|
["Group-Pet"] = "小隊寵物",
|
||||||
["Group-Target"] = "小隊目標",
|
["Group-Target"] = "小隊目標",
|
||||||
|
["Grow Right To Left"] = nil,
|
||||||
["Gryphon"] = nil,
|
["Gryphon"] = nil,
|
||||||
["Gryphons"] = nil,
|
["Gryphons"] = nil,
|
||||||
["Guild Online"] = "公會線上",
|
["Guild Online"] = "公會線上",
|
||||||
@@ -515,7 +524,6 @@ pfUI_translation["zhTW"] = {
|
|||||||
["Name | Health Missing"] = nil,
|
["Name | Health Missing"] = nil,
|
||||||
["Name (Linebreak) -Health Missing"] = nil,
|
["Name (Linebreak) -Health Missing"] = nil,
|
||||||
["Nameplate Border Size"] = nil,
|
["Nameplate Border Size"] = nil,
|
||||||
["Nameplate Debuffs"] = nil,
|
|
||||||
["Nameplates"] = "姓名板",
|
["Nameplates"] = "姓名板",
|
||||||
["Nameplate Width"] = "姓名板高度",
|
["Nameplate Width"] = "姓名板高度",
|
||||||
["Name (Short)"] = "名字 (短)",
|
["Name (Short)"] = "名字 (短)",
|
||||||
@@ -583,7 +591,6 @@ pfUI_translation["zhTW"] = {
|
|||||||
["Pixel"] = nil,
|
["Pixel"] = nil,
|
||||||
["Player"] = "玩家",
|
["Player"] = "玩家",
|
||||||
["Player Buff Bar"] = nil,
|
["Player Buff Bar"] = nil,
|
||||||
["Player Buffs"] = nil,
|
|
||||||
["Player Castbar"] = nil,
|
["Player Castbar"] = nil,
|
||||||
["Player Debuff Bar"] = nil,
|
["Player Debuff Bar"] = nil,
|
||||||
["Player SP/Haste Display"] = nil,
|
["Player SP/Haste Display"] = nil,
|
||||||
@@ -650,7 +657,6 @@ pfUI_translation["zhTW"] = {
|
|||||||
["Resting"] = "休息中",
|
["Resting"] = "休息中",
|
||||||
["Reveal Unexplored Areas"] = "展示未勘探的地區",
|
["Reveal Unexplored Areas"] = "展示未勘探的地區",
|
||||||
["Switch to current zone"] = nil,
|
["Switch to current zone"] = nil,
|
||||||
["Reverse Sweep On"] = nil,
|
|
||||||
["Right"] = "右邊",
|
["Right"] = "右邊",
|
||||||
["Right Actionbar"] = nil,
|
["Right Actionbar"] = nil,
|
||||||
["Right Anchor"] = nil,
|
["Right Anchor"] = nil,
|
||||||
@@ -732,7 +738,6 @@ pfUI_translation["zhTW"] = {
|
|||||||
["Show Loot Icon"] = nil,
|
["Show Loot Icon"] = nil,
|
||||||
["Show Macro Text"] = "顯示巨集的名字",
|
["Show Macro Text"] = "顯示巨集的名字",
|
||||||
["Show Meters By Default"] = "由默認顯示其他介面表",
|
["Show Meters By Default"] = "由默認顯示其他介面表",
|
||||||
["Show Numbers On"] = nil,
|
|
||||||
["Show On Friendly Units"] = nil,
|
["Show On Friendly Units"] = nil,
|
||||||
["Show On Hostile Units"] = nil,
|
["Show On Hostile Units"] = nil,
|
||||||
["Show Procs Indicators"] = nil,
|
["Show Procs Indicators"] = nil,
|
||||||
@@ -750,7 +755,6 @@ pfUI_translation["zhTW"] = {
|
|||||||
["Show Spell Icon"] = nil,
|
["Show Spell Icon"] = nil,
|
||||||
["Show Spell Name"] = nil,
|
["Show Spell Name"] = nil,
|
||||||
["Show Stacks"] = nil,
|
["Show Stacks"] = nil,
|
||||||
["Show Sweep On"] = nil,
|
|
||||||
["Show Tenths Below 5 Seconds"] = nil,
|
["Show Tenths Below 5 Seconds"] = nil,
|
||||||
["Show Text"] = nil,
|
["Show Text"] = nil,
|
||||||
["Show Timer"] = nil,
|
["Show Timer"] = nil,
|
||||||
@@ -818,7 +822,6 @@ pfUI_translation["zhTW"] = {
|
|||||||
["Tiny (PixelPerfect)"] = "極小(像素完美)",
|
["Tiny (PixelPerfect)"] = "極小(像素完美)",
|
||||||
["Toggle as Tank"] = "切換成為坦克",
|
["Toggle as Tank"] = "切換成為坦克",
|
||||||
["Tooltip"] = "滑鼠提示框",
|
["Tooltip"] = "滑鼠提示框",
|
||||||
["Tooltip Auras"] = nil,
|
|
||||||
["Tooltip Position"] = "滑鼠提示框位置",
|
["Tooltip Position"] = "滑鼠提示框位置",
|
||||||
["Tooltip Text Font"] = nil,
|
["Tooltip Text Font"] = nil,
|
||||||
["Tooltip Text Font Size"] = nil,
|
["Tooltip Text Font Size"] = nil,
|
||||||
@@ -830,13 +833,11 @@ pfUI_translation["zhTW"] = {
|
|||||||
["Total Gold"] = "總金量",
|
["Total Gold"] = "總金量",
|
||||||
["Totem Direction"] = nil,
|
["Totem Direction"] = nil,
|
||||||
["Totem Icons"] = nil,
|
["Totem Icons"] = nil,
|
||||||
["Totems"] = nil,
|
|
||||||
["Tracked Reputation"] = nil,
|
["Tracked Reputation"] = nil,
|
||||||
["Tracking Icon Size"] = "追蹤圖示大小",
|
["Tracking Icon Size"] = "追蹤圖示大小",
|
||||||
["Trigger Actions On Key Down"] = nil,
|
["Trigger Actions On Key Down"] = nil,
|
||||||
["UI-Scale"] = "UI縮放比例",
|
["UI-Scale"] = "UI縮放比例",
|
||||||
["Unbuffed"] = "該Buff缺失者",
|
["Unbuffed"] = "該Buff缺失者",
|
||||||
["Unit Frame Auras"] = nil,
|
|
||||||
["Unit Frame Border Size"] = "頭像邊框大小",
|
["Unit Frame Border Size"] = "頭像邊框大小",
|
||||||
["Unit Frame Layout"] = "頭像框架樣式",
|
["Unit Frame Layout"] = "頭像框架樣式",
|
||||||
["Unit Frames"] = "頭像框架",
|
["Unit Frames"] = "頭像框架",
|
||||||
|
|||||||
+54
-86
@@ -25,7 +25,7 @@ setfenv(1, pfUI:GetEnvironment())
|
|||||||
-- return instantly when another libpredict is already active
|
-- return instantly when another libpredict is already active
|
||||||
if pfUI.api.libpredict then return end
|
if pfUI.api.libpredict then return end
|
||||||
|
|
||||||
local heals, events, hots = {}, {}, {}
|
local heals, hots = {}, {}
|
||||||
local spell_queue = { "DUMMY", "DUMMYRank 9", "TARGET" }
|
local spell_queue = { "DUMMY", "DUMMYRank 9", "TARGET" }
|
||||||
local player = UnitName("player")
|
local player = UnitName("player")
|
||||||
local cache, gear_string = {}, ""
|
local cache, gear_string = {}, ""
|
||||||
@@ -134,19 +134,6 @@ local function OnOwnCastStart(spellId, castGUID)
|
|||||||
local amount = cache[spell_queue[2]][1]
|
local amount = cache[spell_queue[2]][1]
|
||||||
local casttime = castTime
|
local casttime = castTime
|
||||||
|
|
||||||
if spellName == REGROWTH then
|
|
||||||
local fullSpell = spell_queue[2]
|
|
||||||
local _, _, rankStr = fullSpell and string.find(fullSpell, "Rank (%d+)")
|
|
||||||
local rankNum = rankStr and tonumber(rankStr) or nil
|
|
||||||
if libpredict.sender.regrowth_timer then
|
|
||||||
libpredict.sender.regrowth_target_next = target
|
|
||||||
libpredict.sender.regrowth_rank_next = rankNum
|
|
||||||
else
|
|
||||||
libpredict.sender.regrowth_target = target
|
|
||||||
libpredict.sender.regrowth_rank = rankNum
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if spellName == PRAYER_OF_HEALING then
|
if spellName == PRAYER_OF_HEALING then
|
||||||
-- target is already correctly set from spell_queue[3]:
|
-- target is already correctly set from spell_queue[3]:
|
||||||
-- selfcast (ALT) = player, otherwise = current target
|
-- selfcast (ALT) = player, otherwise = current target
|
||||||
@@ -207,34 +194,35 @@ local function OnOwnCastSucceeded(spellId, castGUID)
|
|||||||
|
|
||||||
libpredict:HealStop(player)
|
libpredict:HealStop(player)
|
||||||
local spellName = C_Spell.GetSpellName(spellId)
|
local spellName = C_Spell.GetSpellName(spellId)
|
||||||
if spellName == REGROWTH then
|
|
||||||
local now = pfUI.uf.now or GetTime()
|
|
||||||
if libpredict.sender.regrowth_timer then
|
|
||||||
libpredict.sender.regrowth_start_next = now
|
|
||||||
else
|
|
||||||
libpredict.sender.regrowth_start = now
|
|
||||||
end
|
|
||||||
libpredict.sender.regrowth_timer = now + 0.1
|
|
||||||
end
|
|
||||||
libpredict.sender.castGUID = nil
|
libpredict.sender.castGUID = nil
|
||||||
libpredict.sender.current_cast = nil
|
libpredict.sender.current_cast = nil
|
||||||
libpredict.sender.current_cast_target = nil
|
libpredict.sender.current_cast_target = nil
|
||||||
|
|
||||||
if not target then return end
|
if not target then return end
|
||||||
|
|
||||||
-- Instant HoTs — classify by name (rank-independent) instead of a
|
-- HoTs — classify by name (rank-independent) instead of a hardcoded
|
||||||
-- hardcoded per-rank ID table.
|
-- per-rank ID table.
|
||||||
local hotType
|
local hotType
|
||||||
if spellName == REJUVENATION then hotType = "Reju"
|
if spellName == REJUVENATION then hotType = "Reju"
|
||||||
elseif spellName == RENEW then hotType = "Renew"
|
elseif spellName == RENEW then hotType = "Renew"
|
||||||
|
elseif spellName == REGROWTH then hotType = "Regr"
|
||||||
end
|
end
|
||||||
if hotType then
|
if hotType then
|
||||||
local duration = hotType == "Reju" and rejuvDuration or renewDuration
|
|
||||||
local rank = 0
|
local rank = 0
|
||||||
local rankSub = C_Spell.GetSpellSubtext(spellId)
|
local rankSub = C_Spell.GetSpellSubtext(spellId)
|
||||||
if rankSub and rankSub ~= "" then
|
if rankSub and rankSub ~= "" then
|
||||||
rank = tonumber((string.gsub(rankSub, "Rank ", ""))) or 0
|
rank = tonumber((string.gsub(rankSub, "Rank ", ""))) or 0
|
||||||
end
|
end
|
||||||
|
if hotType == "Regr" then
|
||||||
|
-- Regrowth's HoT follows its direct heal a moment later
|
||||||
|
local start = GetTime()
|
||||||
|
C_Timer.After(0.1, function()
|
||||||
|
libpredict:Hot(player, target, hotType, 20, start, "UNIT_SPELLCAST_SUCCEEDED", rank)
|
||||||
|
libpredict.sender:SendHealCommMsg(hotType .. "/" .. target .. "/20/" .. rank .. "/")
|
||||||
|
end)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
local duration = hotType == "Reju" and rejuvDuration or renewDuration
|
||||||
libpredict:Hot(player, target, hotType, duration, nil, "UNIT_SPELLCAST_SUCCEEDED", rank)
|
libpredict:Hot(player, target, hotType, duration, nil, "UNIT_SPELLCAST_SUCCEEDED", rank)
|
||||||
libpredict.sender:SendHealCommMsg(hotType .. "/" .. target .. "/" .. duration .. "/" .. rank .. "/")
|
libpredict.sender:SendHealCommMsg(hotType .. "/" .. target .. "/" .. duration .. "/" .. rank .. "/")
|
||||||
end
|
end
|
||||||
@@ -326,20 +314,11 @@ local function RefreshResFrames(guid)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
libpredict:SetScript("OnUpdate", function()
|
-- Drop resurrection offers the target accepted or let run out. Nothing reports
|
||||||
-- throttle cleanup - no need to check every frame
|
-- either, so a ticker checks while any offer is open.
|
||||||
local now = pfUI.uf.now or GetTime()
|
local resTicker
|
||||||
if (this.tick or 0) > now then return end
|
local function CheckResOffers()
|
||||||
this.tick = now + pfUI.throttle:Get("libpredict") -- Default: Normal (10 FPS)
|
local now = GetTime()
|
||||||
|
|
||||||
-- update on timeout events
|
|
||||||
for timestamp, targets in pairs(events) do
|
|
||||||
if now >= timestamp then
|
|
||||||
events[timestamp] = nil
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- drop resurrection offers the target accepted or let run out
|
|
||||||
for guid, expiry in pairs(resOffers) do
|
for guid, expiry in pairs(resOffers) do
|
||||||
local unit = UnitTokenFromGUID(guid)
|
local unit = UnitTokenFromGUID(guid)
|
||||||
if now >= expiry or not (unit and UnitIsDeadOrGhost(unit)) then
|
if now >= expiry or not (unit and UnitIsDeadOrGhost(unit)) then
|
||||||
@@ -347,7 +326,11 @@ libpredict:SetScript("OnUpdate", function()
|
|||||||
RefreshResFrames(guid)
|
RefreshResFrames(guid)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end)
|
if not next(resOffers) then
|
||||||
|
resTicker:Cancel()
|
||||||
|
resTicker = nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
function libpredict:ParseComm(sender, msg)
|
function libpredict:ParseComm(sender, msg)
|
||||||
local msgtype, target, heal, time, rank
|
local msgtype, target, heal, time, rank
|
||||||
@@ -496,11 +479,6 @@ function libpredict:ParseChatMessage(sender, msg)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function libpredict:AddEvent(time, target)
|
|
||||||
events[time] = events[time] or {}
|
|
||||||
table.insert(events[time], target)
|
|
||||||
end
|
|
||||||
|
|
||||||
function libpredict:Heal(sender, target, amount, duration, senderGuid)
|
function libpredict:Heal(sender, target, amount, duration, senderGuid)
|
||||||
if not sender or not target or not amount or not duration then
|
if not sender or not target or not amount or not duration then
|
||||||
return
|
return
|
||||||
@@ -511,7 +489,6 @@ function libpredict:Heal(sender, target, amount, duration, senderGuid)
|
|||||||
heals[target] = heals[target] or {}
|
heals[target] = heals[target] or {}
|
||||||
heals[target][sender] = { amount, timeout }
|
heals[target][sender] = { amount, timeout }
|
||||||
if senderGuid then healGuidToName[senderGuid] = sender end
|
if senderGuid then healGuidToName[senderGuid] = sender end
|
||||||
libpredict:AddEvent(timeout, target)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Debug flag
|
-- Debug flag
|
||||||
@@ -596,7 +573,6 @@ function libpredict:HealDelay(sender, delay)
|
|||||||
for tsender, amount in pairs(heals[target]) do
|
for tsender, amount in pairs(heals[target]) do
|
||||||
if sender == tsender then
|
if sender == tsender then
|
||||||
amount[2] = amount[2] + delay
|
amount[2] = amount[2] + delay
|
||||||
libpredict:AddEvent(amount[2], target)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -932,39 +908,33 @@ libpredict.sender.SendResCommMsg = function(self, msg)
|
|||||||
-- BG groups are handled by RAID channel
|
-- BG groups are handled by RAID channel
|
||||||
end
|
end
|
||||||
|
|
||||||
libpredict.sender:SetScript("OnUpdate", function()
|
-- Own casts arrive as "player". Other casters only matter as group members
|
||||||
-- trigger delayed regrowth timers
|
-- (the only names resolveNameFromGuid knows), so their events are filtered to
|
||||||
local now = pfUI.uf.now or GetTime()
|
-- the group's tokens, and solo nobody else's casts arrive at all. A member in
|
||||||
if this.regrowth_timer and now > this.regrowth_timer then
|
-- a raid also fires as raidN for its own casts; the handler drops those by
|
||||||
local target = this.regrowth_target or player
|
-- UnitIsUnit, and other repeats by castGUID.
|
||||||
local duration = 20
|
local GROUP_CAST_EVENTS = {
|
||||||
local startTime = this.regrowth_start
|
"UNIT_SPELLCAST_START", "UNIT_SPELLCAST_SUCCEEDED", "UNIT_SPELLCAST_INTERRUPTED",
|
||||||
local rank = this.regrowth_rank
|
}
|
||||||
|
local castunits = {}
|
||||||
libpredict:Hot(player, target, "Regr", duration, startTime, "OnUpdate", rank)
|
local function RegisterCastEvents()
|
||||||
local rankStr = rank and tostring(rank) or "0"
|
local n, token = 0, IsInRaid() and "raid" or "party"
|
||||||
libpredict.sender:SendHealCommMsg("Regr/"..target.."/"..duration.."/"..rankStr.."/")
|
castunits[1] = "player"
|
||||||
|
for i = 1, IsInRaid() and GetNumRaidMembers() or GetNumPartyMembers() do
|
||||||
-- Apply next queued Regrowth if available
|
castunits[i + 1] = token .. i
|
||||||
this.regrowth_target = this.regrowth_target_next
|
n = i
|
||||||
this.regrowth_start = this.regrowth_start_next
|
|
||||||
this.regrowth_rank = this.regrowth_rank_next
|
|
||||||
this.regrowth_target_next = nil
|
|
||||||
this.regrowth_start_next = nil
|
|
||||||
this.regrowth_rank_next = nil
|
|
||||||
this.regrowth_timer = nil
|
|
||||||
end
|
end
|
||||||
end)
|
for i = table.getn(castunits), n + 2, -1 do castunits[i] = nil end
|
||||||
|
for i = 1, table.getn(GROUP_CAST_EVENTS) do
|
||||||
-- Own casts arrive as "player"; every other caster fires once per unit token
|
libpredict.sender:RegisterUnitEvent(GROUP_CAST_EVENTS[i], unpack(castunits))
|
||||||
-- it currently holds (raidN, target, nameplateN, ...), so other-unit handlers
|
end
|
||||||
-- drop the repeats by castGUID.
|
end
|
||||||
libpredict.sender:RegisterEvent("UNIT_SPELLCAST_SENT")
|
RegisterCastEvents()
|
||||||
libpredict.sender:RegisterEvent("UNIT_SPELLCAST_START")
|
libpredict.sender:RegisterUnitEvent("UNIT_SPELLCAST_SENT", "player")
|
||||||
libpredict.sender:RegisterEvent("UNIT_SPELLCAST_DELAYED")
|
libpredict.sender:RegisterUnitEvent("UNIT_SPELLCAST_DELAYED", "player")
|
||||||
libpredict.sender:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED")
|
libpredict.sender:RegisterUnitEvent("UNIT_SPELLCAST_FAILED", "player")
|
||||||
libpredict.sender:RegisterEvent("UNIT_SPELLCAST_FAILED")
|
libpredict.sender:RegisterEvent("PARTY_MEMBERS_CHANGED")
|
||||||
libpredict.sender:RegisterEvent("UNIT_SPELLCAST_INTERRUPTED")
|
libpredict.sender:RegisterEvent("RAID_ROSTER_UPDATE")
|
||||||
libpredict.sender:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
|
libpredict.sender:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
|
||||||
|
|
||||||
-- Shared cleanup helper for failed/interrupted casts
|
-- Shared cleanup helper for failed/interrupted casts
|
||||||
@@ -980,12 +950,6 @@ local function onCastFailed()
|
|||||||
s:SendResCommMsg("RESNO " .. (target or ""))
|
s:SendResCommMsg("RESNO " .. (target or ""))
|
||||||
s.resurrecting = nil
|
s.resurrecting = nil
|
||||||
end
|
end
|
||||||
if s.current_cast == REGROWTH then
|
|
||||||
s.regrowth_timer = nil
|
|
||||||
s.regrowth_start = nil
|
|
||||||
s.regrowth_target_next = nil
|
|
||||||
s.regrowth_start_next = nil
|
|
||||||
end
|
|
||||||
s.castGUID = nil
|
s.castGUID = nil
|
||||||
s.current_cast = nil
|
s.current_cast = nil
|
||||||
s.current_cast_target = nil
|
s.current_cast_target = nil
|
||||||
@@ -1032,6 +996,7 @@ local function OnResurrect()
|
|||||||
-- arg8=destGUID
|
-- arg8=destGUID
|
||||||
resOffers[arg8] = GetTime() + RES_OFFER_TIMEOUT
|
resOffers[arg8] = GetTime() + RES_OFFER_TIMEOUT
|
||||||
RefreshResFrames(arg8)
|
RefreshResFrames(arg8)
|
||||||
|
resTicker = resTicker or C_Timer.NewTicker(.1, CheckResOffers)
|
||||||
end
|
end
|
||||||
|
|
||||||
local lastOtherCast = {} -- [event] = castGUID of the last other-unit event handled
|
local lastOtherCast = {} -- [event] = castGUID of the last other-unit event handled
|
||||||
@@ -1041,6 +1006,9 @@ libpredict.sender:SetScript("OnEvent", function()
|
|||||||
if arg2 == "SPELL_HEAL" then OnHeal()
|
if arg2 == "SPELL_HEAL" then OnHeal()
|
||||||
elseif arg2 == "SPELL_RESURRECT" then OnResurrect() end
|
elseif arg2 == "SPELL_RESURRECT" then OnResurrect() end
|
||||||
return
|
return
|
||||||
|
elseif event == "PARTY_MEMBERS_CHANGED" or event == "RAID_ROSTER_UPDATE" then
|
||||||
|
RegisterCastEvents()
|
||||||
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
-- UNIT_SPELLCAST_SENT: arg1=unit, arg2=target token, arg3=castGUID, arg4=spellID
|
-- UNIT_SPELLCAST_SENT: arg1=unit, arg2=target token, arg3=castGUID, arg4=spellID
|
||||||
|
|||||||
@@ -31,10 +31,7 @@ libthrottle.presetNames = {
|
|||||||
|
|
||||||
-- Default throttle categories
|
-- Default throttle categories
|
||||||
libthrottle.defaults = {
|
libthrottle.defaults = {
|
||||||
nameplates = "custom",
|
|
||||||
nameplates_target = "custom",
|
|
||||||
nameplates_castbar = "custom",
|
nameplates_castbar = "custom",
|
||||||
nameplates_mass = "custom",
|
|
||||||
tooltip_cursor = "fastest",
|
tooltip_cursor = "fastest",
|
||||||
chat_tab = "custom",
|
chat_tab = "custom",
|
||||||
swingtimer = "custom",
|
swingtimer = "custom",
|
||||||
@@ -158,10 +155,7 @@ libthrottle:SetScript("OnEvent", function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- Set defaults for custom fields if missing
|
-- Set defaults for custom fields if missing
|
||||||
if not _G.pfUI_throttle.nameplates_target_custom then _G.pfUI_throttle.nameplates_target_custom = "50" end
|
|
||||||
if not _G.pfUI_throttle.nameplates_custom then _G.pfUI_throttle.nameplates_custom = "10" end
|
|
||||||
if not _G.pfUI_throttle.nameplates_castbar_custom then _G.pfUI_throttle.nameplates_castbar_custom = "100" end
|
if not _G.pfUI_throttle.nameplates_castbar_custom then _G.pfUI_throttle.nameplates_castbar_custom = "100" end
|
||||||
if not _G.pfUI_throttle.nameplates_mass_custom then _G.pfUI_throttle.nameplates_mass_custom = "7" end
|
|
||||||
if not _G.pfUI_throttle.tooltip_cursor_custom then _G.pfUI_throttle.tooltip_cursor_custom = "10" end
|
if not _G.pfUI_throttle.tooltip_cursor_custom then _G.pfUI_throttle.tooltip_cursor_custom = "10" end
|
||||||
if not _G.pfUI_throttle.chat_tab_custom then _G.pfUI_throttle.chat_tab_custom = "10" end
|
if not _G.pfUI_throttle.chat_tab_custom then _G.pfUI_throttle.chat_tab_custom = "10" end
|
||||||
if not _G.pfUI_throttle.swingtimer_custom then _G.pfUI_throttle.swingtimer_custom = "50" end
|
if not _G.pfUI_throttle.swingtimer_custom then _G.pfUI_throttle.swingtimer_custom = "50" end
|
||||||
|
|||||||
@@ -1007,7 +1007,7 @@ pfUI:RegisterModule("actionbar", function ()
|
|||||||
f.slot = id
|
f.slot = id
|
||||||
|
|
||||||
-- cooldown
|
-- cooldown
|
||||||
f.cd = CreateCooldown(f, "actionbar", f:GetName() .. "Cooldown")
|
f.cd = CreateCooldown(f, "spell", C.bars, "timers", f:GetName() .. "Cooldown")
|
||||||
|
|
||||||
-- icon
|
-- icon
|
||||||
f.icon = f:CreateTexture(button_name .. "Icon", "BACKGROUND")
|
f.icon = f:CreateTexture(button_name .. "Icon", "BACKGROUND")
|
||||||
|
|||||||
+1
-1
@@ -415,7 +415,7 @@ pfUI:RegisterModule("bags", function ()
|
|||||||
-- reaches it after that
|
-- reaches it after that
|
||||||
local slotframe = pfUI.bags[bag].slots[slot].frame
|
local slotframe = pfUI.bags[bag].slots[slot].frame
|
||||||
local cdname = slotframe:GetName() .. "Cooldown"
|
local cdname = slotframe:GetName() .. "Cooldown"
|
||||||
slotframe.cd = CreateCooldown(slotframe, "bags", cdname)
|
slotframe.cd = CreateCooldown(slotframe, "spell", C.appearance.bags, "timers", cdname)
|
||||||
_G[cdname] = slotframe.cd
|
_G[cdname] = slotframe.cd
|
||||||
|
|
||||||
if not pfUI.bags[bag].slots[slot].frame.backdrop then
|
if not pfUI.bags[bag].slots[slot].frame.backdrop then
|
||||||
|
|||||||
+1
-1
@@ -152,7 +152,7 @@ pfUI:RegisterModule("buff", function ()
|
|||||||
|
|
||||||
-- the sweep and the duration numbers (the template covers the button and
|
-- the sweep and the duration numbers (the template covers the button and
|
||||||
-- starts hidden); RefreshBuffButton starts its timer
|
-- starts hidden); RefreshBuffButton starts its timer
|
||||||
buff.cd = CreateCooldown(buff, "buff", buttonName .. "Cooldown")
|
buff.cd = CreateCooldown(buff, "aura", C.buffs, "timers", buttonName .. "Cooldown")
|
||||||
buff.cd:SetFrameLevel(buff:GetFrameLevel() + 1)
|
buff.cd:SetFrameLevel(buff:GetFrameLevel() + 1)
|
||||||
buff.overlay:SetFrameLevel(buff:GetFrameLevel() + 2)
|
buff.overlay:SetFrameLevel(buff:GetFrameLevel() + 2)
|
||||||
|
|
||||||
|
|||||||
+11
-8
@@ -36,7 +36,7 @@ pfUI:RegisterModule("castbar", function ()
|
|||||||
cb.bar:SetValue(1)
|
cb.bar:SetValue(1)
|
||||||
end
|
end
|
||||||
if cb.bar.spark then cb.bar.spark:Hide() end
|
if cb.bar.spark then cb.bar.spark:Hide() end
|
||||||
if cb:GetAlpha() > 0 and not cb.fade:IsPlaying() then cb.fade:Play() end
|
if cb:IsShown() and not cb.fade:IsPlaying() then cb.fade:Play() end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- "Spellname (N)" label for an active tradeskill merge — N is the number
|
-- "Spellname (N)" label for an active tradeskill merge — N is the number
|
||||||
@@ -95,7 +95,7 @@ pfUI:RegisterModule("castbar", function ()
|
|||||||
cb.isTradeskill = isTradeskill
|
cb.isTradeskill = isTradeskill
|
||||||
cb.delay = (delayMs or 0) / 1000
|
cb.delay = (delayMs or 0) / 1000
|
||||||
cb.fade:Stop()
|
cb.fade:Stop()
|
||||||
cb:SetAlpha(1)
|
cb:Show()
|
||||||
|
|
||||||
-- Shield an uninterruptible cast. Not on the player's own bar: the flag is
|
-- Shield an uninterruptible cast. Not on the player's own bar: the flag is
|
||||||
-- measured against the reader's own interrupts and silences, so on your own
|
-- measured against the reader's own interrupts and silences, so on your own
|
||||||
@@ -247,12 +247,16 @@ pfUI:RegisterModule("castbar", function ()
|
|||||||
cb.bar.spark:SetPoint("BOTTOM", cb.bar, "BOTTOMLEFT", 0, 0)
|
cb.bar.spark:SetPoint("BOTTOM", cb.bar, "BOTTOMLEFT", 0, 0)
|
||||||
cb.bar.spark:Hide()
|
cb.bar.spark:Hide()
|
||||||
|
|
||||||
-- Fade-out after a cast ends. The bar stays at alpha 0 while idle.
|
-- Fade-out after a cast ends. The bar is hidden while idle, so its OnUpdate
|
||||||
|
-- only runs during a cast; unlock mode keeps it shown for dragging.
|
||||||
|
local function unlocked() return cb.drag and cb.drag:IsShown() end
|
||||||
cb.fade = cb:CreateAnimationGroup()
|
cb.fade = cb:CreateAnimationGroup()
|
||||||
local fade = cb.fade:CreateAnimation("Alpha")
|
local fade = cb.fade:CreateAnimation("Alpha")
|
||||||
fade:SetChange(-1)
|
fade:SetChange(-1)
|
||||||
fade:SetDuration(.4)
|
fade:SetDuration(.4)
|
||||||
cb.fade:SetScript("OnFinished", function() cb:SetAlpha(0) end)
|
cb.fade:SetScript("OnFinished", function()
|
||||||
|
if not unlocked() then cb:Hide() end
|
||||||
|
end)
|
||||||
|
|
||||||
-- OnUpdate animates the bar fill. All state transitions (cast start/stop/interrupt, channel start/stop,
|
-- OnUpdate animates the bar fill. All state transitions (cast start/stop/interrupt, channel start/stop,
|
||||||
-- pushback) come from the event handler below — we never poll C_Spell
|
-- pushback) come from the event handler below — we never poll C_Spell
|
||||||
@@ -261,16 +265,15 @@ pfUI:RegisterModule("castbar", function ()
|
|||||||
if (this.tick or 0) > GetTime() then return end
|
if (this.tick or 0) > GetTime() then return end
|
||||||
this.tick = GetTime() + 0.020 -- ~50 FPS
|
this.tick = GetTime() + 0.020 -- ~50 FPS
|
||||||
|
|
||||||
if this.drag and this.drag:IsShown() then
|
if unlocked() then
|
||||||
this.fade:Stop()
|
this.fade:Stop()
|
||||||
this:SetAlpha(1)
|
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
if this.fade:IsPlaying() then return end
|
if this.fade:IsPlaying() then return end
|
||||||
|
|
||||||
if not this.endTime then
|
if not this.endTime then
|
||||||
if this:GetAlpha() ~= 0 then this:SetAlpha(0) end
|
this:Hide()
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -443,7 +446,7 @@ pfUI:RegisterModule("castbar", function ()
|
|||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
cb:SetAlpha(0)
|
cb:Hide()
|
||||||
return cb
|
return cb
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
+150
-109
@@ -30,39 +30,6 @@ pfUI:RegisterModule("chat", function ()
|
|||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
local realm = GetRealmName()
|
|
||||||
local player = UnitName("player")
|
|
||||||
local history
|
|
||||||
local function SaveChatHistory(id, msg, r, g, b)
|
|
||||||
-- create cache tables if not existing
|
|
||||||
pfUI_cache = pfUI_cache or {}
|
|
||||||
pfUI_cache["chathistory"] = pfUI_cache["chathistory"] or {}
|
|
||||||
pfUI_cache["chathistory"][realm] = pfUI_cache["chathistory"][realm] or {}
|
|
||||||
pfUI_cache["chathistory"][realm][player] = pfUI_cache["chathistory"][realm][player] or {}
|
|
||||||
pfUI_cache["chathistory"][realm][player][id] = pfUI_cache["chathistory"][realm][player][id] or {}
|
|
||||||
|
|
||||||
if r and g and b then
|
|
||||||
local color = rgbhex(r*.5+.2, g*.5+.2, b*.5+.2)
|
|
||||||
msg = string.gsub(msg, "^", color)
|
|
||||||
msg = string.gsub(msg, "|r", "|r" .. color)
|
|
||||||
end
|
|
||||||
|
|
||||||
history = pfUI_cache["chathistory"][realm][player][id]
|
|
||||||
table.insert(history, 1, msg)
|
|
||||||
if history[30] then table.remove(history, 30) end
|
|
||||||
end
|
|
||||||
|
|
||||||
local function GetChatHistory(id)
|
|
||||||
-- create cache tables if not existing
|
|
||||||
pfUI_cache = pfUI_cache or {}
|
|
||||||
pfUI_cache["chathistory"] = pfUI_cache["chathistory"] or {}
|
|
||||||
pfUI_cache["chathistory"][realm] = pfUI_cache["chathistory"][realm] or {}
|
|
||||||
pfUI_cache["chathistory"][realm][player] = pfUI_cache["chathistory"][realm][player] or {}
|
|
||||||
pfUI_cache["chathistory"][realm][player][id] = pfUI_cache["chathistory"][realm][player][id] or {}
|
|
||||||
|
|
||||||
return pfUI_cache["chathistory"][realm][player][id]
|
|
||||||
end
|
|
||||||
|
|
||||||
-- [ Chat Panel Colors ]
|
-- [ Chat Panel Colors ]
|
||||||
-- The panels normally inherit pfUI's global appearance theme; custom colors let chat
|
-- The panels normally inherit pfUI's global appearance theme; custom colors let chat
|
||||||
-- deviate from it. CreateBackdrop is re-run first to restore the theme, so toggling
|
-- deviate from it. CreateBackdrop is re-run first to restore the theme, so toggling
|
||||||
@@ -456,15 +423,20 @@ pfUI:RegisterModule("chat", function ()
|
|||||||
|
|
||||||
if pfUI.chat.hideLock then return end
|
if pfUI.chat.hideLock then return end
|
||||||
|
|
||||||
|
-- the dock lays the tabs out again only when their bar comes back
|
||||||
if pfUI.chat.left:IsMouseOver(10, -10, -10, 10) then
|
if pfUI.chat.left:IsMouseOver(10, -10, -10, 10) then
|
||||||
pfUI.chat.left.panelTop:Show()
|
if not pfUI.chat.left.panelTop:IsShown() then
|
||||||
FCF_DockUpdate()
|
pfUI.chat.left.panelTop:Show()
|
||||||
|
FCF_DockUpdate()
|
||||||
|
end
|
||||||
elseif pfUI.chat.right:IsMouseOver(10, -10, -10, 10) then
|
elseif pfUI.chat.right:IsMouseOver(10, -10, -10, 10) then
|
||||||
-- disable while dock is active
|
-- disable while dock is active
|
||||||
if pfUI.chat.right:GetAlpha() == 0 then return end
|
if pfUI.chat.right:GetAlpha() == 0 then return end
|
||||||
|
|
||||||
pfUI.chat.right.panelTop:Show()
|
if not pfUI.chat.right.panelTop:IsShown() then
|
||||||
FCF_DockUpdate()
|
pfUI.chat.right.panelTop:Show()
|
||||||
|
FCF_DockUpdate()
|
||||||
|
end
|
||||||
else
|
else
|
||||||
pfUI.chat.left.panelTop:Hide()
|
pfUI.chat.left.panelTop:Hide()
|
||||||
pfUI.chat.right.panelTop:Hide()
|
pfUI.chat.right.panelTop:Hide()
|
||||||
@@ -587,6 +559,9 @@ pfUI:RegisterModule("chat", function ()
|
|||||||
end
|
end
|
||||||
|
|
||||||
for i=1, NUM_CHAT_WINDOWS do
|
for i=1, NUM_CHAT_WINDOWS do
|
||||||
|
-- ChatFrame_OnUpdate only blinks the flash of the bottom button hidden
|
||||||
|
-- below; the lines fade in the engine's own update
|
||||||
|
_G["ChatFrame" .. i]:SetScript("OnUpdate", nil)
|
||||||
_G["ChatFrame" .. i .. "UpButton"]:Hide()
|
_G["ChatFrame" .. i .. "UpButton"]:Hide()
|
||||||
_G["ChatFrame" .. i .. "UpButton"].Show = function() return end
|
_G["ChatFrame" .. i .. "UpButton"].Show = function() return end
|
||||||
_G["ChatFrame" .. i .. "DownButton"]:Hide()
|
_G["ChatFrame" .. i .. "DownButton"]:Hide()
|
||||||
@@ -732,6 +707,62 @@ pfUI:RegisterModule("chat", function ()
|
|||||||
return pfUI_playerDB[name].level
|
return pfUI_playerDB[name].level
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- the sender of the line AddMessage is reading, from its chat event
|
||||||
|
local lineSender, lineSenderClass, lineSenderRace, lineSenderSex
|
||||||
|
|
||||||
|
-- [ FormatPlayerLink ]
|
||||||
|
-- The gsub callback for a player link: the name in its class colour, with
|
||||||
|
-- the level and icons the settings ask for. Returns the link unchanged when
|
||||||
|
-- there is nothing to add, as a Lua 5.0 callback that returns nil deletes
|
||||||
|
-- the match.
|
||||||
|
local function FormatPlayerLink(link, name, shown)
|
||||||
|
local real = strsplit(":", name)
|
||||||
|
if shown ~= real then return link end
|
||||||
|
|
||||||
|
local color, icon = "", ""
|
||||||
|
if C.chat.text.classcolor == "1" then
|
||||||
|
local _, class, raceKey, sex
|
||||||
|
if lineSenderClass and real == lineSender then
|
||||||
|
class, raceKey, sex = lineSenderClass, lineSenderRace, lineSenderSex
|
||||||
|
else
|
||||||
|
_, class, _, raceKey, sex = C_PlayerCache.GetPlayerInfoByName(real)
|
||||||
|
end
|
||||||
|
if not class then
|
||||||
|
class = GetUnitInfo(real)
|
||||||
|
end
|
||||||
|
if class and class ~= UNKNOWN then
|
||||||
|
color = "|c" .. PFUI_CLASS_COLORS[class].colorStr
|
||||||
|
if C.chat.text.factionicons == "1" then
|
||||||
|
icon = GetFactionIcon(raceKey)
|
||||||
|
end
|
||||||
|
if C.chat.text.raceicons == "1" then
|
||||||
|
icon = icon .. GetRaceIcon(raceKey, sex)
|
||||||
|
end
|
||||||
|
elseif C.chat.text.tintunknown == "1" then
|
||||||
|
color = unknowncolorhex
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local suffix = ""
|
||||||
|
local level = C.chat.text.playerlevel == "1" and GetPlayerLevel(real)
|
||||||
|
if level and level > 0 then
|
||||||
|
suffix = " " .. rgbhex(GetDifficultyColor(level)) .. level .. "|r"
|
||||||
|
elseif level then
|
||||||
|
-- Show ?? for unknown levels (e.g. -1 from UnitLevel)
|
||||||
|
suffix = " |cffff0000??|r"
|
||||||
|
end
|
||||||
|
|
||||||
|
if color == "" and suffix == "" then return link end
|
||||||
|
return left .. icon .. color .. "|Hplayer:" .. name .. "|h" .. color .. real .. "|h|r" .. suffix .. right
|
||||||
|
end
|
||||||
|
|
||||||
|
-- the timestamp of the current second
|
||||||
|
local stampTime, stamp
|
||||||
|
|
||||||
|
-- the last chat line read and what it became. A line shown in several
|
||||||
|
-- frames is read once: nothing in the result depends on the frame.
|
||||||
|
local lastLineID, lastText, lastResult
|
||||||
|
|
||||||
-- Passes every argument after the text on: GetMessageInfo returns them all,
|
-- Passes every argument after the text on: GetMessageInfo returns them all,
|
||||||
-- and a hook that drops some loses them for every frame after it.
|
-- and a hook that drops some loses them for every frame after it.
|
||||||
local function AddMessage(frame, text, ...)
|
local function AddMessage(frame, text, ...)
|
||||||
@@ -744,76 +775,40 @@ pfUI:RegisterModule("chat", function ()
|
|||||||
|
|
||||||
-- payload of the CHAT_MSG event printing this line; nil for lines
|
-- payload of the CHAT_MSG event printing this line; nil for lines
|
||||||
-- that don't come from one (system text, addon output, history)
|
-- that don't come from one (system text, addon output, history)
|
||||||
local event, _, sender, _, _, _, _, _, _, _, _, _, guid = GetCurrentChatEvent()
|
local event, _, sender, _, _, _, _, _, _, _, _, lineID, guid = GetCurrentChatEvent()
|
||||||
|
|
||||||
-- Remove prat CLINKs
|
-- text emotes all have line 0
|
||||||
text = gsub(text, "{CLINK:(%x+):([%d-]-:[%d-]-:[%d-]-:[%d-]-:[%d-]-:[%d-]-:[%d-]-:[%d-]-):([^}]-)}", "|c%1|Hitem:%2|h[%3]|h|r") -- tbc
|
if lineID and lineID ~= 0 and lineID == lastLineID and text == lastText then
|
||||||
text = gsub(text, "{CLINK:(%x+):([%d-]-:[%d-]-:[%d-]-:[%d-]-):([^}]-)}", "|c%1|Hitem:%2|h[%3]|h|r") -- vanilla
|
return frame:HookAddMessage(lastResult, ...)
|
||||||
|
end
|
||||||
|
local input = text
|
||||||
|
|
||||||
-- Remove chatter CLINKs
|
-- Remove prat and chatter CLINKs
|
||||||
text = gsub(text, "{CLINK:item:(%x+):([%d-]-:[%d-]-:[%d-]-:[%d-]-:[%d-]-:[%d-]-:[%d-]-:[%d-]-):([^}]-)}", "|c%1|Hitem:%2|h[%3]|h|r")
|
if text:find("{CLINK:", 1, true) then
|
||||||
text = gsub(text, "{CLINK:enchant:(%x+):([%d-]-):([^}]-)}", "|c%1|Henchant:%2|h[%3]|h|r")
|
text = gsub(text, "{CLINK:(%x+):([%d-]-:[%d-]-:[%d-]-:[%d-]-:[%d-]-:[%d-]-:[%d-]-:[%d-]-):([^}]-)}", "|c%1|Hitem:%2|h[%3]|h|r") -- tbc
|
||||||
text = gsub(text, "{CLINK:spell:(%x+):([%d-]-):([^}]-)}", "|c%1|Hspell:%2|h[%3]|h|r")
|
text = gsub(text, "{CLINK:(%x+):([%d-]-:[%d-]-:[%d-]-:[%d-]-):([^}]-)}", "|c%1|Hitem:%2|h[%3]|h|r") -- vanilla
|
||||||
text = gsub(text, "{CLINK:quest:(%x+):([%d-]-):([%d-]-):([^}]-)}", "|c%1|Hquest:%2:%3|h[%4]|h|r")
|
text = gsub(text, "{CLINK:item:(%x+):([%d-]-:[%d-]-:[%d-]-:[%d-]-:[%d-]-:[%d-]-:[%d-]-:[%d-]-):([^}]-)}", "|c%1|Hitem:%2|h[%3]|h|r")
|
||||||
|
text = gsub(text, "{CLINK:enchant:(%x+):([%d-]-):([^}]-)}", "|c%1|Henchant:%2|h[%3]|h|r")
|
||||||
|
text = gsub(text, "{CLINK:spell:(%x+):([%d-]-):([^}]-)}", "|c%1|Hspell:%2|h[%3]|h|r")
|
||||||
|
text = gsub(text, "{CLINK:quest:(%x+):([%d-]-):([%d-]-):([^}]-)}", "|c%1|Hquest:%2:%3|h[%4]|h|r")
|
||||||
|
end
|
||||||
|
|
||||||
-- detect urls
|
-- detect urls; every pattern needs a dot between name characters or a "://"
|
||||||
if C.chat.text.detecturl == "1" then
|
if C.chat.text.detecturl == "1" and (text:find("[%w_-]%.[%w_-]") or text:find("://", 1, true)) then
|
||||||
text = pfUI.chat:HandleLink(text)
|
text = pfUI.chat:HandleLink(text)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- display class colors and player levels if already indexed
|
-- display class colors and player levels if already indexed
|
||||||
local classcolor = C.chat.text.classcolor == "1"
|
local classcolor = C.chat.text.classcolor == "1"
|
||||||
local playerlevel = C.chat.text.playerlevel == "1"
|
if classcolor or C.chat.text.playerlevel == "1" then
|
||||||
if classcolor or playerlevel then
|
|
||||||
-- the engine name-queries a chat sender before the event fires,
|
-- the engine name-queries a chat sender before the event fires,
|
||||||
-- so the sender's GUID always resolves; other names in the text
|
-- so the sender's GUID always resolves; other names in the text
|
||||||
-- fall back to the name-keyed lookups
|
-- fall back to the name-keyed lookups
|
||||||
local _, senderClass, senderRace, senderSex
|
lineSender, lineSenderClass, lineSenderRace, lineSenderSex = sender, nil, nil, nil
|
||||||
if classcolor and guid and guid ~= "" then
|
if classcolor and guid and guid ~= "" then
|
||||||
_, senderClass, _, senderRace, senderSex = GetPlayerInfoByGUID(guid)
|
_, lineSenderClass, _, lineSenderRace, lineSenderSex = GetPlayerInfoByGUID(guid)
|
||||||
end
|
|
||||||
|
|
||||||
for name in gfind(text, "|Hplayer:(.-)|h") do
|
|
||||||
local real, _ = strsplit(":", name)
|
|
||||||
local color, icon = "", ""
|
|
||||||
|
|
||||||
if classcolor then
|
|
||||||
local class, raceKey, sex
|
|
||||||
if senderClass and real == sender then
|
|
||||||
class, raceKey, sex = senderClass, senderRace, senderSex
|
|
||||||
else
|
|
||||||
_, class, _, raceKey, sex = C_PlayerCache.GetPlayerInfoByName(real)
|
|
||||||
end
|
|
||||||
if not class then
|
|
||||||
class = GetUnitInfo(real)
|
|
||||||
end
|
|
||||||
if class and class ~= UNKNOWN then
|
|
||||||
color = "|c" .. PFUI_CLASS_COLORS[class].colorStr
|
|
||||||
if C.chat.text.factionicons == "1" then
|
|
||||||
icon = GetFactionIcon(raceKey)
|
|
||||||
end
|
|
||||||
if C.chat.text.raceicons == "1" then
|
|
||||||
icon = icon .. GetRaceIcon(raceKey, sex)
|
|
||||||
end
|
|
||||||
elseif C.chat.text.tintunknown == "1" then
|
|
||||||
color = unknowncolorhex
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local suffix = ""
|
|
||||||
local level = playerlevel and GetPlayerLevel(real)
|
|
||||||
if level and level > 0 then
|
|
||||||
suffix = " " .. rgbhex(GetDifficultyColor(level)) .. level .. "|r"
|
|
||||||
elseif level then
|
|
||||||
-- Show ?? for unknown levels (e.g. -1 from UnitLevel)
|
|
||||||
suffix = " |cffff0000??|r"
|
|
||||||
end
|
|
||||||
|
|
||||||
if color ~= "" or suffix ~= "" then
|
|
||||||
text = string.gsub(text, "|Hplayer:"..name.."|h%["..real.."%]|h(.-:-)",
|
|
||||||
left..icon..color.."|Hplayer:"..name.."|h" .. color .. real .. "|h|r"..suffix..right.."%1")
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
text = text:gsub("(|Hplayer:([^|]*)|h%[([^%]]*)%]|h)", FormatPlayerLink)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- reduce channel name to number
|
-- reduce channel name to number
|
||||||
@@ -823,9 +818,7 @@ pfUI:RegisterModule("chat", function ()
|
|||||||
|
|
||||||
-- detect the whisper prefix BEFORE prepending a timestamp; the timestamp
|
-- detect the whisper prefix BEFORE prepending a timestamp; the timestamp
|
||||||
-- pushes the whisper colour code off position 1 and the find below fails
|
-- pushes the whisper colour code off position 1 and the find below fails
|
||||||
local isWhisper = C.chat.global.whispermod == "1" and string.find(text, wcol, 1) == 1
|
if C.chat.global.whispermod == "1" and string.find(text, wcol, 1) == 1 then
|
||||||
|
|
||||||
if isWhisper then
|
|
||||||
-- patch incoming whisper string to match the colors, before the
|
-- patch incoming whisper string to match the colors, before the
|
||||||
-- timestamp so it keeps the form StripTimestamp looks for
|
-- timestamp so it keeps the form StripTimestamp looks for
|
||||||
text = string.gsub(text, "|r", "|r" .. wcol)
|
text = string.gsub(text, "|r", "|r" .. wcol)
|
||||||
@@ -833,19 +826,66 @@ pfUI:RegisterModule("chat", function ()
|
|||||||
|
|
||||||
-- show timestamp in chat
|
-- show timestamp in chat
|
||||||
if C.chat.text.time == "1" then
|
if C.chat.text.time == "1" then
|
||||||
text = timestampStart .. date(C.chat.text.timeformat) .. timestampEnd .. text
|
local now = time()
|
||||||
end
|
if now ~= stampTime then
|
||||||
|
stampTime, stamp = now, timestampStart .. date(C.chat.text.timeformat) .. timestampEnd
|
||||||
-- save chat history
|
end
|
||||||
if isWhisper then
|
text = stamp .. text
|
||||||
SaveChatHistory(frame:GetID(), string.gsub(text, wcol, ""), cr, cg, cb)
|
|
||||||
else
|
|
||||||
SaveChatHistory(frame:GetID(), text, ...)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
lastLineID, lastText, lastResult = lineID, input, text
|
||||||
frame:HookAddMessage(text, ...)
|
frame:HookAddMessage(text, ...)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- [ Chat History ]
|
||||||
|
-- The newest lines of each chat frame, kept per character and written back
|
||||||
|
-- at login, newest first and dimmed. They are read from the frames when
|
||||||
|
-- leaving the world, which logout and reload both do before the saved
|
||||||
|
-- variables are written.
|
||||||
|
local HISTORY_LINES = 30
|
||||||
|
|
||||||
|
local function GetChatHistory()
|
||||||
|
local realm, player = GetRealmName(), UnitName("player")
|
||||||
|
pfUI_cache["chathistory"] = pfUI_cache["chathistory"] or {}
|
||||||
|
pfUI_cache["chathistory"][realm] = pfUI_cache["chathistory"][realm] or {}
|
||||||
|
pfUI_cache["chathistory"][realm][player] = pfUI_cache["chathistory"][realm][player] or {}
|
||||||
|
return pfUI_cache["chathistory"][realm][player]
|
||||||
|
end
|
||||||
|
|
||||||
|
-- a line dimmed in its colour, which also comes back after every |r in it
|
||||||
|
local function DimHistoryLine(text, r, g, b)
|
||||||
|
local color = rgbhex(r*.5+.2, g*.5+.2, b*.5+.2)
|
||||||
|
return color .. text:gsub("|r", "|r" .. color)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function SaveChatHistory()
|
||||||
|
local history = GetChatHistory()
|
||||||
|
for i=1, NUM_CHAT_WINDOWS do
|
||||||
|
local frame = _G["ChatFrame"..i]
|
||||||
|
if not frame.pfCombatLog then
|
||||||
|
local lines = {}
|
||||||
|
local num = frame:GetNumMessages()
|
||||||
|
for index = num, math.max(1, num - HISTORY_LINES + 1), -1 do
|
||||||
|
local text, r, g, b, _, restored = frame:GetMessageInfo(index)
|
||||||
|
-- lines written back from the history are dimmed already
|
||||||
|
if not restored then
|
||||||
|
-- an incoming whisper is in the whisper colour, not its own
|
||||||
|
if C.chat.global.whispermod == "1" and pfUI.chat.StripTimestamp(text):sub(1, #wcol) == wcol then
|
||||||
|
text, r, g, b = text:gsub(wcol, ""), cr, cg, cb
|
||||||
|
end
|
||||||
|
text = DimHistoryLine(text, r, g, b)
|
||||||
|
end
|
||||||
|
table.insert(lines, text)
|
||||||
|
end
|
||||||
|
history[i] = lines
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if C.chat.text.history == "1" then
|
||||||
|
pfUI.events:RegisterFrameEventAndCallback("PLAYER_LEAVING_WORLD", SaveChatHistory)
|
||||||
|
end
|
||||||
|
|
||||||
for i=1,NUM_CHAT_WINDOWS do
|
for i=1,NUM_CHAT_WINDOWS do
|
||||||
if C.chat.global.maxlines ~= "128" then
|
if C.chat.global.maxlines ~= "128" then
|
||||||
_G["ChatFrame"..i]:SetMaxLines(tonumber(C.chat.global.maxlines) or 128)
|
_G["ChatFrame"..i]:SetMaxLines(tonumber(C.chat.global.maxlines) or 128)
|
||||||
@@ -853,13 +893,14 @@ pfUI:RegisterModule("chat", function ()
|
|||||||
|
|
||||||
if not _G["ChatFrame"..i].HookAddMessage then
|
if not _G["ChatFrame"..i].HookAddMessage then
|
||||||
if C.chat.text.history == "1" then
|
if C.chat.text.history == "1" then
|
||||||
-- write history to chat, newest first, above the lines already there
|
-- write history to chat, newest first, above the lines already there;
|
||||||
for _, msg in ipairs(GetChatHistory(i)) do
|
-- after the colour come the id slot and the mark SaveChatHistory reads
|
||||||
_G["ChatFrame"..i]:BackFillMessage(msg, .7,.7,.7)
|
for _, msg in ipairs(GetChatHistory()[i] or {}) do
|
||||||
|
_G["ChatFrame"..i]:BackFillMessage(msg, .7,.7,.7, nil, true)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- add chat parse and history hooks
|
-- add chat parse hooks
|
||||||
_G["ChatFrame"..i].HookAddMessage = _G["ChatFrame"..i].AddMessage
|
_G["ChatFrame"..i].HookAddMessage = _G["ChatFrame"..i].AddMessage
|
||||||
_G["ChatFrame"..i].AddMessage = AddMessage
|
_G["ChatFrame"..i].AddMessage = AddMessage
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -85,10 +85,16 @@ pfUI:RegisterModule("chatcopy", function ()
|
|||||||
|
|
||||||
scroll:SetFont(frame:GetFont())
|
scroll:SetFont(frame:GetFont())
|
||||||
scroll:SetText(text)
|
scroll:SetText(text)
|
||||||
|
|
||||||
-- the cursor at the end scrolls the box to the newest line
|
|
||||||
scroll:SetFocus()
|
scroll:SetFocus()
|
||||||
scroll:SetCursorPosition(#text)
|
scroll:SetCursorPosition(#text)
|
||||||
|
|
||||||
|
-- the edit box lays the text out in this frame's update, so scroll to
|
||||||
|
-- the newest line after it; the caret only scrolls the focused box
|
||||||
|
RunNextFrame(function()
|
||||||
|
local scrollBox = scroll:GetScrollBox()
|
||||||
|
scrollBox:FullUpdate(ScrollBoxConstants.UpdateImmediately)
|
||||||
|
scrollBox:ScrollToEnd(ScrollBoxConstants.NoScrollInterpolation)
|
||||||
|
end)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
frame.scroll = scroll
|
frame.scroll = scroll
|
||||||
|
|||||||
+4
-3
@@ -17,9 +17,10 @@ pfUI:RegisterModule("focus", function ()
|
|||||||
-- PLAYER_FOCUS_CHANGED drives immediate refresh on focus assign / clear.
|
-- PLAYER_FOCUS_CHANGED drives immediate refresh on focus assign / clear.
|
||||||
-- Between events, ClassicAPI fires UNIT_* (health/mana/aura/...) with
|
-- Between events, ClassicAPI fires UNIT_* (health/mana/aura/...) with
|
||||||
-- arg1 == "focus", so the bars update event-driven like target.
|
-- arg1 == "focus", so the bars update event-driven like target.
|
||||||
-- focustarget is a chained unit like targettarget: UNIT_TARGET follows the
|
-- focustarget is a chained unit like targettarget, but ClassicAPI fires its
|
||||||
-- focus retargeting, and a new focus only needs its visibility re-checked,
|
-- UNIT_* as "focustarget", and UNIT_TARGET on "focus" follows the focus
|
||||||
-- which queues the full refresh when its target is a different unit.
|
-- retargeting. A new focus only needs its visibility re-checked, which
|
||||||
|
-- queues the full refresh when its target is a different unit.
|
||||||
pfUI.events:RegisterFrameEventAndCallback("PLAYER_FOCUS_CHANGED", function()
|
pfUI.events:RegisterFrameEventAndCallback("PLAYER_FOCUS_CHANGED", function()
|
||||||
pfUI.uf:RefreshUnit(pfUI.uf.focus, "all")
|
pfUI.uf:RefreshUnit(pfUI.uf.focus, "all")
|
||||||
pfUI.uf.focustarget:UpdateVisibility()
|
pfUI.uf.focustarget:UpdateVisibility()
|
||||||
|
|||||||
+40
-196
@@ -981,6 +981,12 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
"BOTTOMRIGHT:" .. T["Bottom Right"],
|
"BOTTOMRIGHT:" .. T["Bottom Right"],
|
||||||
"off:" .. T["Disabled"]
|
"off:" .. T["Disabled"]
|
||||||
},
|
},
|
||||||
|
["cooldown_timers"] = {
|
||||||
|
"off:" .. T["None"],
|
||||||
|
"text:" .. T["Numbers"],
|
||||||
|
"sweep:" .. T["Sweep"],
|
||||||
|
"both:" .. T["Numbers And Sweep"]
|
||||||
|
},
|
||||||
["uf_debuff_indicator"] = {
|
["uf_debuff_indicator"] = {
|
||||||
"0:" .. T["Disabled"],
|
"0:" .. T["Disabled"],
|
||||||
"1:" .. T["Legacy"],
|
"1:" .. T["Legacy"],
|
||||||
@@ -1597,23 +1603,6 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
CreateGUIEntry(T["Settings"], T["Cooldown"], function()
|
CreateGUIEntry(T["Settings"], T["Cooldown"], function()
|
||||||
-- every kind of cooldown CreateCooldown makes, as C.cooldown groups.
|
|
||||||
-- Other addons' cooldowns only lose numbers or sweep (see
|
|
||||||
-- api/cooldown.lua), so giving them back takes a reload
|
|
||||||
local kinds = {
|
|
||||||
{ "actionbar", T["Action Bars"] },
|
|
||||||
{ "bags", T["Bags"] },
|
|
||||||
{ "blizzard", T["Spellbook And Character"] },
|
|
||||||
{ "unitframe", T["Unit Frame Auras"] },
|
|
||||||
{ "indicator", T["Buff Indicators"] },
|
|
||||||
{ "nameplate", T["Nameplate Debuffs"] },
|
|
||||||
{ "buff", T["Player Buffs"] },
|
|
||||||
{ "tooltip", T["Tooltip Auras"] },
|
|
||||||
{ "totem", T["Totems"] },
|
|
||||||
{ "lossofcontrol", T["Loss Of Control"] },
|
|
||||||
{ "foreign", T["Other Addons"] },
|
|
||||||
}
|
|
||||||
|
|
||||||
CreateConfig(nil, COUNTDOWN_FOR_COOLDOWNS_TEXT, "CVAR", "countdownForCooldowns", "checkbox")
|
CreateConfig(nil, COUNTDOWN_FOR_COOLDOWNS_TEXT, "CVAR", "countdownForCooldowns", "checkbox")
|
||||||
CreateConfig(UpdateCooldowns, T["Font"], C.cooldown, "font", "dropdown", pfUI.gui.dropdowns.fonts)
|
CreateConfig(UpdateCooldowns, T["Font"], C.cooldown, "font", "dropdown", pfUI.gui.dropdowns.fonts)
|
||||||
CreateConfig(nil, T["Font Size"], C.cooldown, "font_size")
|
CreateConfig(nil, T["Font Size"], C.cooldown, "font_size")
|
||||||
@@ -1626,22 +1615,14 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
CreateConfig(UpdateCooldowns, T["Cooldown Color (Hours)"], C.cooldown, "hourcolor", "color")
|
CreateConfig(UpdateCooldowns, T["Cooldown Color (Hours)"], C.cooldown, "hourcolor", "color")
|
||||||
CreateConfig(UpdateCooldowns, T["Cooldown Color (Days)"], C.cooldown, "daycolor", "color")
|
CreateConfig(UpdateCooldowns, T["Cooldown Color (Days)"], C.cooldown, "daycolor", "color")
|
||||||
|
|
||||||
CreateConfig(nil, T["Show Numbers On"], nil, nil, "header")
|
-- the timers of cooldowns no other page covers. Other addons' cooldowns
|
||||||
for _, kind in ipairs(kinds) do
|
-- only lose numbers or sweep (see api/cooldown.lua), so giving them
|
||||||
CreateConfig(kind[1] ~= "foreign" and UpdateCooldowns or nil, kind[2], C.cooldown[kind[1]], "text", "checkbox")
|
-- back takes a reload
|
||||||
end
|
local timers = pfUI.gui.dropdowns.cooldown_timers
|
||||||
|
CreateConfig(nil, T["Timers"], nil, nil, "header")
|
||||||
CreateConfig(nil, T["Show Sweep On"], nil, nil, "header")
|
CreateConfig(UpdateCooldowns, T["Spellbook And Character"], C.cooldown, "blizzard_timers", "dropdown", timers)
|
||||||
for _, kind in ipairs(kinds) do
|
CreateConfig(UpdateCooldowns, T["Loss Of Control"], C.cooldown, "lossofcontrol_timers", "dropdown", timers)
|
||||||
CreateConfig(kind[1] ~= "foreign" and UpdateCooldowns or nil, kind[2], C.cooldown[kind[1]], "animation", "checkbox")
|
CreateConfig(nil, T["Other Addons"], C.cooldown, "foreign_timers", "dropdown", timers)
|
||||||
end
|
|
||||||
|
|
||||||
CreateConfig(nil, T["Reverse Sweep On"], nil, nil, "header")
|
|
||||||
for _, kind in ipairs(kinds) do
|
|
||||||
if kind[1] ~= "foreign" then
|
|
||||||
CreateConfig(UpdateCooldowns, kind[2], C.cooldown[kind[1]], "reverse", "checkbox")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
CreateGUIEntry(T["Settings"], T["Screenshot"], function()
|
CreateGUIEntry(T["Settings"], T["Screenshot"], function()
|
||||||
@@ -1670,115 +1651,6 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
header:GetParent().objectCount = header:GetParent().objectCount - 1
|
header:GetParent().objectCount = header:GetParent().objectCount - 1
|
||||||
header:SetHeight(20)
|
header:SetHeight(20)
|
||||||
|
|
||||||
local targetCustom -- declare first so callback can use it
|
|
||||||
|
|
||||||
CreateConfig(function()
|
|
||||||
-- Callback when dropdown changes - update custom field immediately
|
|
||||||
if targetCustom and targetCustom.input then
|
|
||||||
local isCustom = pfUI.throttle:IsCustom("nameplates_target")
|
|
||||||
if not isCustom then
|
|
||||||
-- Preset selected - show FPS from preset, make readonly
|
|
||||||
targetCustom.input:EnableMouse(false)
|
|
||||||
targetCustom.input:EnableKeyboard(false)
|
|
||||||
targetCustom.input:ClearFocus()
|
|
||||||
targetCustom.input:SetTextColor(.5,.5,.5,1)
|
|
||||||
targetCustom.input:SetText(tostring(pfUI.throttle:GetFps("nameplates_target")))
|
|
||||||
else
|
|
||||||
-- Custom selected - make editable
|
|
||||||
targetCustom.input:EnableMouse(true)
|
|
||||||
targetCustom.input:EnableKeyboard(true)
|
|
||||||
targetCustom.input:SetTextColor(.2,1,.8,1)
|
|
||||||
if _G.pfUI_throttle.nameplates_target_custom then
|
|
||||||
targetCustom.input:SetText(_G.pfUI_throttle.nameplates_target_custom)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end, T["Target Plates"], _G.pfUI_throttle, "nameplates_target", "dropdown", {
|
|
||||||
"very_slow:" .. T["Very Slow"] .. " (2 FPS)",
|
|
||||||
"slow:" .. T["Slow"] .. " (5 FPS)",
|
|
||||||
"normal:" .. T["Normal"] .. " (10 FPS)",
|
|
||||||
"fast:" .. T["Fast"] .. " (20 FPS)",
|
|
||||||
"very_fast:" .. T["Very Fast"] .. " (30 FPS)",
|
|
||||||
"fastest:" .. T["Fastest"] .. " (50 FPS)",
|
|
||||||
"custom:" .. T["Custom"],
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Now create custom field AFTER dropdown
|
|
||||||
targetCustom = CreateConfig(nil, T["Custom FPS"], _G.pfUI_throttle, "nameplates_target_custom")
|
|
||||||
|
|
||||||
-- Set initial state
|
|
||||||
local isCustom = pfUI.throttle:IsCustom("nameplates_target")
|
|
||||||
if not isCustom then
|
|
||||||
targetCustom.input:EnableMouse(false)
|
|
||||||
targetCustom.input:EnableKeyboard(false)
|
|
||||||
targetCustom.input:SetTextColor(.5,.5,.5,1)
|
|
||||||
targetCustom.input:SetText(tostring(pfUI.throttle:GetFps("nameplates_target")))
|
|
||||||
else
|
|
||||||
targetCustom.input:EnableMouse(true)
|
|
||||||
targetCustom.input:EnableKeyboard(true)
|
|
||||||
targetCustom.input:SetTextColor(.2,1,.8,1)
|
|
||||||
if _G.pfUI_throttle.nameplates_target_custom then
|
|
||||||
targetCustom.input:SetText(_G.pfUI_throttle.nameplates_target_custom)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Spacer after custom field
|
|
||||||
local spacer1 = CreateConfig(nil, " ", nil, nil, "header")
|
|
||||||
spacer1:GetParent().objectCount = spacer1:GetParent().objectCount - 1
|
|
||||||
spacer1:SetHeight(5)
|
|
||||||
|
|
||||||
local normalCustom
|
|
||||||
|
|
||||||
CreateConfig(function()
|
|
||||||
if normalCustom and normalCustom.input then
|
|
||||||
local isCustom = pfUI.throttle:IsCustom("nameplates")
|
|
||||||
if not isCustom then
|
|
||||||
normalCustom.input:EnableMouse(false)
|
|
||||||
normalCustom.input:EnableKeyboard(false)
|
|
||||||
normalCustom.input:ClearFocus()
|
|
||||||
normalCustom.input:SetTextColor(.5,.5,.5,1)
|
|
||||||
normalCustom.input:SetText(tostring(pfUI.throttle:GetFps("nameplates")))
|
|
||||||
else
|
|
||||||
normalCustom.input:EnableMouse(true)
|
|
||||||
normalCustom.input:EnableKeyboard(true)
|
|
||||||
normalCustom.input:SetTextColor(.2,1,.8,1)
|
|
||||||
if _G.pfUI_throttle.nameplates_custom then
|
|
||||||
normalCustom.input:SetText(_G.pfUI_throttle.nameplates_custom)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end, T["Normal Plates"], _G.pfUI_throttle, "nameplates", "dropdown", {
|
|
||||||
"very_slow:" .. T["Very Slow"] .. " (2 FPS)",
|
|
||||||
"slow:" .. T["Slow"] .. " (5 FPS)",
|
|
||||||
"normal:" .. T["Normal"] .. " (10 FPS)",
|
|
||||||
"fast:" .. T["Fast"] .. " (20 FPS)",
|
|
||||||
"very_fast:" .. T["Very Fast"] .. " (30 FPS)",
|
|
||||||
"fastest:" .. T["Fastest"] .. " (50 FPS)",
|
|
||||||
"custom:" .. T["Custom"],
|
|
||||||
})
|
|
||||||
|
|
||||||
normalCustom = CreateConfig(nil, T["Custom FPS"], _G.pfUI_throttle, "nameplates_custom")
|
|
||||||
|
|
||||||
local isCustom2 = pfUI.throttle:IsCustom("nameplates")
|
|
||||||
if not isCustom2 then
|
|
||||||
normalCustom.input:EnableMouse(false)
|
|
||||||
normalCustom.input:EnableKeyboard(false)
|
|
||||||
normalCustom.input:SetTextColor(.5,.5,.5,1)
|
|
||||||
normalCustom.input:SetText(tostring(pfUI.throttle:GetFps("nameplates")))
|
|
||||||
else
|
|
||||||
normalCustom.input:EnableMouse(true)
|
|
||||||
normalCustom.input:EnableKeyboard(true)
|
|
||||||
normalCustom.input:SetTextColor(.2,1,.8,1)
|
|
||||||
if _G.pfUI_throttle.nameplates_custom then
|
|
||||||
normalCustom.input:SetText(_G.pfUI_throttle.nameplates_custom)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Spacer after custom field
|
|
||||||
local spacer2 = CreateConfig(nil, " ", nil, nil, "header")
|
|
||||||
spacer2:GetParent().objectCount = spacer2:GetParent().objectCount - 1
|
|
||||||
spacer2:SetHeight(5)
|
|
||||||
|
|
||||||
local castbarCustom
|
local castbarCustom
|
||||||
|
|
||||||
CreateConfig(function()
|
CreateConfig(function()
|
||||||
@@ -1811,54 +1683,18 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
|
|
||||||
castbarCustom = CreateConfig(nil, T["Custom FPS"], _G.pfUI_throttle, "nameplates_castbar_custom")
|
castbarCustom = CreateConfig(nil, T["Custom FPS"], _G.pfUI_throttle, "nameplates_castbar_custom")
|
||||||
|
|
||||||
local spacer3 = CreateConfig(nil, " ", nil, nil, "header")
|
local isCustom = pfUI.throttle:IsCustom("nameplates_castbar")
|
||||||
spacer3:GetParent().objectCount = spacer3:GetParent().objectCount - 1
|
if not isCustom then
|
||||||
spacer3:SetHeight(5)
|
castbarCustom.input:EnableMouse(false)
|
||||||
|
castbarCustom.input:EnableKeyboard(false)
|
||||||
local massCustom
|
castbarCustom.input:SetTextColor(.5,.5,.5,1)
|
||||||
|
castbarCustom.input:SetText(tostring(pfUI.throttle:GetFps("nameplates_castbar")))
|
||||||
CreateConfig(function()
|
|
||||||
if massCustom and massCustom.input then
|
|
||||||
local isCustom = pfUI.throttle:IsCustom("nameplates_mass")
|
|
||||||
if not isCustom then
|
|
||||||
massCustom.input:EnableMouse(false)
|
|
||||||
massCustom.input:EnableKeyboard(false)
|
|
||||||
massCustom.input:ClearFocus()
|
|
||||||
massCustom.input:SetTextColor(.5,.5,.5,1)
|
|
||||||
massCustom.input:SetText(tostring(pfUI.throttle:GetFps("nameplates_mass")))
|
|
||||||
else
|
|
||||||
massCustom.input:EnableMouse(true)
|
|
||||||
massCustom.input:EnableKeyboard(true)
|
|
||||||
massCustom.input:SetTextColor(.2,1,.8,1)
|
|
||||||
if _G.pfUI_throttle.nameplates_mass_custom then
|
|
||||||
massCustom.input:SetText(_G.pfUI_throttle.nameplates_mass_custom)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end, T["Mass Pulls (20+ Plates)"], _G.pfUI_throttle, "nameplates_mass", "dropdown", {
|
|
||||||
"very_slow:" .. T["Very Slow"] .. " (2 FPS)",
|
|
||||||
"slow:" .. T["Slow"] .. " (5 FPS)",
|
|
||||||
"normal:" .. T["Normal"] .. " (10 FPS)",
|
|
||||||
"fast:" .. T["Fast"] .. " (20 FPS)",
|
|
||||||
"very_fast:" .. T["Very Fast"] .. " (30 FPS)",
|
|
||||||
"fastest:" .. T["Fastest"] .. " (50 FPS)",
|
|
||||||
"custom:" .. T["Custom"],
|
|
||||||
})
|
|
||||||
|
|
||||||
massCustom = CreateConfig(nil, T["Custom FPS"], _G.pfUI_throttle, "nameplates_mass_custom")
|
|
||||||
|
|
||||||
local isCustom3 = pfUI.throttle:IsCustom("nameplates_mass")
|
|
||||||
if not isCustom3 then
|
|
||||||
massCustom.input:EnableMouse(false)
|
|
||||||
massCustom.input:EnableKeyboard(false)
|
|
||||||
massCustom.input:SetTextColor(.5,.5,.5,1)
|
|
||||||
massCustom.input:SetText(tostring(pfUI.throttle:GetFps("nameplates_mass")))
|
|
||||||
else
|
else
|
||||||
massCustom.input:EnableMouse(true)
|
castbarCustom.input:EnableMouse(true)
|
||||||
massCustom.input:EnableKeyboard(true)
|
castbarCustom.input:EnableKeyboard(true)
|
||||||
massCustom.input:SetTextColor(.2,1,.8,1)
|
castbarCustom.input:SetTextColor(.2,1,.8,1)
|
||||||
if _G.pfUI_throttle.nameplates_mass_custom then
|
if _G.pfUI_throttle.nameplates_castbar_custom then
|
||||||
massCustom.input:SetText(_G.pfUI_throttle.nameplates_mass_custom)
|
castbarCustom.input:SetText(_G.pfUI_throttle.nameplates_castbar_custom)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -1869,13 +1705,8 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
|
|
||||||
-- Reset to defaults button
|
-- Reset to defaults button
|
||||||
CreateConfig(nil, T["Reset to Defaults"], nil, nil, "button", function()
|
CreateConfig(nil, T["Reset to Defaults"], nil, nil, "button", function()
|
||||||
pfUI.throttle:ResetToDefault("nameplates_target")
|
pfUI.throttle:ResetToDefault("nameplates_castbar")
|
||||||
pfUI.throttle:ResetToDefault("nameplates")
|
_G.pfUI_throttle.nameplates_castbar_custom = "100"
|
||||||
pfUI.throttle:ResetToDefault("nameplates_mass")
|
|
||||||
-- Also reset custom fields to their default FPS values
|
|
||||||
_G.pfUI_throttle.nameplates_target_custom = "50"
|
|
||||||
_G.pfUI_throttle.nameplates_custom = "10"
|
|
||||||
_G.pfUI_throttle.nameplates_mass_custom = "7"
|
|
||||||
Reload()
|
Reload()
|
||||||
end, true)
|
end, true)
|
||||||
end)
|
end)
|
||||||
@@ -2294,6 +2125,7 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
CreateConfig(U["raid"], T["Raid Padding"], C.unitframes[c], "raidpadding")
|
CreateConfig(U["raid"], T["Raid Padding"], C.unitframes[c], "raidpadding")
|
||||||
CreateConfig(U["raid"], T["Raid Layout"], C.unitframes[c], "raidlayout", "dropdown", pfUI.gui.dropdowns.uf_raidlayout)
|
CreateConfig(U["raid"], T["Raid Layout"], C.unitframes[c], "raidlayout", "dropdown", pfUI.gui.dropdowns.uf_raidlayout)
|
||||||
CreateConfig(U["raid"], T["Raid Fill Direction"], C.unitframes[c], "raidfill", "dropdown", pfUI.gui.dropdowns.orientation)
|
CreateConfig(U["raid"], T["Raid Fill Direction"], C.unitframes[c], "raidfill", "dropdown", pfUI.gui.dropdowns.orientation)
|
||||||
|
CreateConfig(U["raid"], T["Grow Right To Left"], C.unitframes[c], "raidgrowleft", "checkbox")
|
||||||
CreateConfig(U["raid"], T["Collapse Empty Slots"], C.unitframes[c], "collapse", "checkbox")
|
CreateConfig(U["raid"], T["Collapse Empty Slots"], C.unitframes[c], "collapse", "checkbox")
|
||||||
elseif c == "raidpet" then
|
elseif c == "raidpet" then
|
||||||
CreateConfig(U[c], T["Layout"], nil, nil, "header")
|
CreateConfig(U[c], T["Layout"], nil, nil, "header")
|
||||||
@@ -2355,11 +2187,14 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
CreateConfig(U[c], T["Automatic Class Text Color"], C.unitframes[c], "classcolor", "checkbox")
|
CreateConfig(U[c], T["Automatic Class Text Color"], C.unitframes[c], "classcolor", "checkbox")
|
||||||
|
|
||||||
CreateConfig(U[c], T["Buffs"], nil, nil, "header")
|
CreateConfig(U[c], T["Buffs"], nil, nil, "header")
|
||||||
|
CreateConfig(UpdateCooldowns, T["Buff And Debuff Timers"], C.unitframes[c], "aura_timers", "dropdown", pfUI.gui.dropdowns.cooldown_timers)
|
||||||
CreateConfig(U[c], T["Buff Position"], C.unitframes[c], "buffs", "dropdown", pfUI.gui.dropdowns.uf_buff_position)
|
CreateConfig(U[c], T["Buff Position"], C.unitframes[c], "buffs", "dropdown", pfUI.gui.dropdowns.uf_buff_position)
|
||||||
CreateConfig(U[c], T["Buff Size"], C.unitframes[c], "buffsize")
|
CreateConfig(U[c], T["Buff Size"], C.unitframes[c], "buffsize")
|
||||||
CreateConfig(U[c], T["Buff Limit"], C.unitframes[c], "bufflimit")
|
CreateConfig(U[c], T["Buff Limit"], C.unitframes[c], "bufflimit")
|
||||||
CreateConfig(U[c], T["Buffs Per Row"], C.unitframes[c], "buffperrow")
|
CreateConfig(U[c], T["Buffs Per Row"], C.unitframes[c], "buffperrow")
|
||||||
CreateConfig(U[c], T["Own Buff Size"], C.unitframes[c], "ownbuffsize")
|
CreateConfig(U[c], T["Own Buff Size"], C.unitframes[c], "ownbuffsize")
|
||||||
|
CreateConfig(U[c], T["Buff X-Offset"], C.unitframes[c], "buffoffx")
|
||||||
|
CreateConfig(U[c], T["Buff Y-Offset"], C.unitframes[c], "buffoffy")
|
||||||
CreateConfig(U[c], T["Buff X-Spacing"], C.unitframes[c], "buffspacingx")
|
CreateConfig(U[c], T["Buff X-Spacing"], C.unitframes[c], "buffspacingx")
|
||||||
CreateConfig(U[c], T["Buff Y-Spacing"], C.unitframes[c], "buffspacingy")
|
CreateConfig(U[c], T["Buff Y-Spacing"], C.unitframes[c], "buffspacingy")
|
||||||
|
|
||||||
@@ -2369,6 +2204,8 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
CreateConfig(U[c], T["Debuff Limit"], C.unitframes[c], "debufflimit")
|
CreateConfig(U[c], T["Debuff Limit"], C.unitframes[c], "debufflimit")
|
||||||
CreateConfig(U[c], T["Debuffs Per Row"], C.unitframes[c], "debuffperrow")
|
CreateConfig(U[c], T["Debuffs Per Row"], C.unitframes[c], "debuffperrow")
|
||||||
CreateConfig(U[c], T["Own Debuff Size"], C.unitframes[c], "owndebuffsize")
|
CreateConfig(U[c], T["Own Debuff Size"], C.unitframes[c], "owndebuffsize")
|
||||||
|
CreateConfig(U[c], T["Debuff X-Offset"], C.unitframes[c], "debuffoffx")
|
||||||
|
CreateConfig(U[c], T["Debuff Y-Offset"], C.unitframes[c], "debuffoffy")
|
||||||
CreateConfig(U[c], T["Debuff X-Spacing"], C.unitframes[c], "debuffspacingx")
|
CreateConfig(U[c], T["Debuff X-Spacing"], C.unitframes[c], "debuffspacingx")
|
||||||
CreateConfig(U[c], T["Debuff Y-Spacing"], C.unitframes[c], "debuffspacingy")
|
CreateConfig(U[c], T["Debuff Y-Spacing"], C.unitframes[c], "debuffspacingy")
|
||||||
|
|
||||||
@@ -2384,6 +2221,7 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
CreateConfig(U[c], T["Buff/Debuff Indicators"], nil, nil, "header")
|
CreateConfig(U[c], T["Buff/Debuff Indicators"], nil, nil, "header")
|
||||||
CreateConfig(U[c], T["Enable Indicators"], C.unitframes[c], "buff_indicator", "checkbox")
|
CreateConfig(U[c], T["Enable Indicators"], C.unitframes[c], "buff_indicator", "checkbox")
|
||||||
CreateConfig(U[c], T["Show Stacks"], C.unitframes[c], "indicator_stacks", "checkbox")
|
CreateConfig(U[c], T["Show Stacks"], C.unitframes[c], "indicator_stacks", "checkbox")
|
||||||
|
CreateConfig(UpdateCooldowns, T["Indicator Timers"], C.unitframes[c], "indicator_timers", "dropdown", pfUI.gui.dropdowns.cooldown_timers)
|
||||||
CreateConfig(U[c], T["Indicator Size"], C.unitframes[c], "indicator_size")
|
CreateConfig(U[c], T["Indicator Size"], C.unitframes[c], "indicator_size")
|
||||||
CreateConfig(U[c], T["Indicator Spacing"], C.unitframes[c], "indicator_spacing", "dropdown", pfUI.gui.dropdowns.spacing)
|
CreateConfig(U[c], T["Indicator Spacing"], C.unitframes[c], "indicator_spacing", "dropdown", pfUI.gui.dropdowns.spacing)
|
||||||
CreateConfig(U[c], T["Indicator Position"], C.unitframes[c], "indicator_pos", "dropdown", pfUI.gui.dropdowns.positions)
|
CreateConfig(U[c], T["Indicator Position"], C.unitframes[c], "indicator_pos", "dropdown", pfUI.gui.dropdowns.positions)
|
||||||
@@ -2470,6 +2308,7 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
CreateConfig(nil, T["Bagslots Per Row"], C.appearance.bags, "bagrowlength")
|
CreateConfig(nil, T["Bagslots Per Row"], C.appearance.bags, "bagrowlength")
|
||||||
CreateConfig(nil, T["Bankslots Per Row"], C.appearance.bags, "bankrowlength")
|
CreateConfig(nil, T["Bankslots Per Row"], C.appearance.bags, "bankrowlength")
|
||||||
CreateConfig(nil, T["Item Slot Size"], C.appearance.bags, "icon_size")
|
CreateConfig(nil, T["Item Slot Size"], C.appearance.bags, "icon_size")
|
||||||
|
CreateConfig(UpdateCooldowns, T["Cooldown Timers"], C.appearance.bags, "timers", "dropdown", pfUI.gui.dropdowns.cooldown_timers)
|
||||||
CreateConfig(nil, T["Auto Sell Grey Items"], C.global, "autosell", "checkbox")
|
CreateConfig(nil, T["Auto Sell Grey Items"], C.global, "autosell", "checkbox")
|
||||||
CreateConfig(nil, T["Auto Repair Items"], C.global, "autorepair", "checkbox")
|
CreateConfig(nil, T["Auto Repair Items"], C.global, "autorepair", "checkbox")
|
||||||
CreateConfig(nil, T["Auto Sort When Opening Bags"], C.appearance.bags, "autoSortOnOpen", "checkbox")
|
CreateConfig(nil, T["Auto Sort When Opening Bags"], C.appearance.bags, "autoSortOnOpen", "checkbox")
|
||||||
@@ -2518,6 +2357,7 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
CreateConfig(U["buff"], T["Number Of Weapon Buffs Per Row"], C.buffs, "wepbuffrowsize")
|
CreateConfig(U["buff"], T["Number Of Weapon Buffs Per Row"], C.buffs, "wepbuffrowsize")
|
||||||
CreateConfig(U["buff"], T["Number Of Buffs Per Row"], C.buffs, "buffrowsize")
|
CreateConfig(U["buff"], T["Number Of Buffs Per Row"], C.buffs, "buffrowsize")
|
||||||
CreateConfig(U["buff"], T["Number Of Debuffs Per Row"], C.buffs, "debuffrowsize")
|
CreateConfig(U["buff"], T["Number Of Debuffs Per Row"], C.buffs, "debuffrowsize")
|
||||||
|
CreateConfig(UpdateCooldowns, T["Duration Timers"], C.buffs, "timers", "dropdown", pfUI.gui.dropdowns.cooldown_timers)
|
||||||
CreateConfig(U["buff"], T["Show Duration Inside Buff"], C.buffs, "textinside", "checkbox")
|
CreateConfig(U["buff"], T["Show Duration Inside Buff"], C.buffs, "textinside", "checkbox")
|
||||||
CreateConfig(U["buff"], T["Stack Count Font Size"], C.buffs, "fontsize")
|
CreateConfig(U["buff"], T["Stack Count Font Size"], C.buffs, "fontsize")
|
||||||
end)
|
end)
|
||||||
@@ -2527,6 +2367,7 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
CreateConfig(U["totems"], T["Icon Size"], C.totems, "iconsize")
|
CreateConfig(U["totems"], T["Icon Size"], C.totems, "iconsize")
|
||||||
CreateConfig(U["totems"], T["Spacing"], C.totems, "spacing", "dropdown", pfUI.gui.dropdowns.spacing)
|
CreateConfig(U["totems"], T["Spacing"], C.totems, "spacing", "dropdown", pfUI.gui.dropdowns.spacing)
|
||||||
CreateConfig(U["totems"], T["Show Background"], C.totems, "showbg", "checkbox")
|
CreateConfig(U["totems"], T["Show Background"], C.totems, "showbg", "checkbox")
|
||||||
|
CreateConfig(UpdateCooldowns, T["Duration Timers"], C.totems, "timers", "dropdown", pfUI.gui.dropdowns.cooldown_timers)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
CreateGUIEntry(T["Buffs"], T["Player Buff Bar"], function()
|
CreateGUIEntry(T["Buffs"], T["Player Buff Bar"], function()
|
||||||
@@ -2593,6 +2434,7 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
CreateConfig(U["bars"], T["Self Cast: Right Click"], C.bars, "rightself", "checkbox")
|
CreateConfig(U["bars"], T["Self Cast: Right Click"], C.bars, "rightself", "checkbox")
|
||||||
CreateConfig(U["bars"], T["Button Animation"], C.bars, "animation", "dropdown", pfUI.gui.dropdowns.actionbuttonanimations)
|
CreateConfig(U["bars"], T["Button Animation"], C.bars, "animation", "dropdown", pfUI.gui.dropdowns.actionbuttonanimations)
|
||||||
CreateConfig(U["bars"], T["Button Animation Trigger"], C.bars, "animmode", "dropdown", pfUI.gui.dropdowns.animationmode)
|
CreateConfig(U["bars"], T["Button Animation Trigger"], C.bars, "animmode", "dropdown", pfUI.gui.dropdowns.animationmode)
|
||||||
|
CreateConfig(UpdateCooldowns, T["Cooldown Timers"], C.bars, "timers", "dropdown", pfUI.gui.dropdowns.cooldown_timers)
|
||||||
CreateConfig(U["bars"], T["Show Animation On Hidden Bars"], C.bars, "animalways", "checkbox")
|
CreateConfig(U["bars"], T["Show Animation On Hidden Bars"], C.bars, "animalways", "checkbox")
|
||||||
CreateConfig(U["bars"], T["Show Reagent Count"], C.bars, "reagents", "checkbox")
|
CreateConfig(U["bars"], T["Show Reagent Count"], C.bars, "reagents", "checkbox")
|
||||||
CreateConfig(U["bars"], T["Highlight Equipped Items"], C.bars, "showequipped", "checkbox")
|
CreateConfig(U["bars"], T["Highlight Equipped Items"], C.bars, "showequipped", "checkbox")
|
||||||
@@ -2822,6 +2664,7 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
CreateConfig(nil, T["Always Show Health In Percent"], C.tooltip, "alwaysperc", "checkbox")
|
CreateConfig(nil, T["Always Show Health In Percent"], C.tooltip, "alwaysperc", "checkbox")
|
||||||
CreateConfig(nil, T["Show Movement Speed"], C.tooltip, "movespeed", "checkbox")
|
CreateConfig(nil, T["Show Movement Speed"], C.tooltip, "movespeed", "checkbox")
|
||||||
CreateConfig(nil, T["Show Unit Buffs"], C.tooltip, "showbuffs", "checkbox")
|
CreateConfig(nil, T["Show Unit Buffs"], C.tooltip, "showbuffs", "checkbox")
|
||||||
|
CreateConfig(UpdateCooldowns, T["Unit Buff Timers"], C.tooltip, "aura_timers", "dropdown", pfUI.gui.dropdowns.cooldown_timers)
|
||||||
CreateConfig(nil, T["Show Unit IDs"], C.tooltip, "unitid", "checkbox")
|
CreateConfig(nil, T["Show Unit IDs"], C.tooltip, "unitid", "checkbox")
|
||||||
end)
|
end)
|
||||||
|
|
||||||
@@ -2985,6 +2828,7 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
CreateConfig(U["nameplates"], T["Debuff Icon Offset"], C.nameplates, "debuffoffset")
|
CreateConfig(U["nameplates"], T["Debuff Icon Offset"], C.nameplates, "debuffoffset")
|
||||||
CreateConfig(U["nameplates"], T["Debuff Icon Size"], C.nameplates, "debuffsize")
|
CreateConfig(U["nameplates"], T["Debuff Icon Size"], C.nameplates, "debuffsize")
|
||||||
CreateConfig(U["nameplates"], T["Show Debuff Stacks"], C.nameplates.debuffs, "showstacks", "checkbox")
|
CreateConfig(U["nameplates"], T["Show Debuff Stacks"], C.nameplates.debuffs, "showstacks", "checkbox")
|
||||||
|
CreateConfig(UpdateCooldowns, T["Debuff Timers"], C.nameplates, "debuff_timers", "dropdown", pfUI.gui.dropdowns.cooldown_timers)
|
||||||
|
|
||||||
CreateConfig(U["nameplates"], T["Filter Mode"], C.nameplates.debuffs, "filter", "dropdown", pfUI.gui.dropdowns.buffbarfilter)
|
CreateConfig(U["nameplates"], T["Filter Mode"], C.nameplates.debuffs, "filter", "dropdown", pfUI.gui.dropdowns.buffbarfilter)
|
||||||
CreateConfig(U["nameplates"], T["Blacklist"], C.nameplates.debuffs, "blacklist", "list")
|
CreateConfig(U["nameplates"], T["Blacklist"], C.nameplates.debuffs, "blacklist", "list")
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ pfUI:RegisterModule("lossofcontrol", function ()
|
|||||||
frame.icon.tex = frame.icon:CreateTexture(nil, "ARTWORK")
|
frame.icon.tex = frame.icon:CreateTexture(nil, "ARTWORK")
|
||||||
HandleIcon(frame.icon, frame.icon.tex)
|
HandleIcon(frame.icon, frame.icon.tex)
|
||||||
|
|
||||||
frame.cd = CreateCooldown(frame.icon, "lossofcontrol")
|
frame.cd = CreateCooldown(frame.icon, "timer", C.cooldown, "lossofcontrol_timers")
|
||||||
frame.cd:SetAllPoints(frame.icon.tex)
|
frame.cd:SetAllPoints(frame.icon.tex)
|
||||||
|
|
||||||
frame.label = frame:CreateFontString(nil, "OVERLAY")
|
frame.label = frame:CreateFontString(nil, "OVERLAY")
|
||||||
|
|||||||
+1227
-1431
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -85,7 +85,7 @@ pfUI:RegisterModule("radar", function ()
|
|||||||
for _, yards in ipairs(RANGES) do
|
for _, yards in ipairs(RANGES) do
|
||||||
rootDescription:CreateRadio(yards .. " yd", IsRange, SetRange, yards)
|
rootDescription:CreateRadio(yards .. " yd", IsRange, SetRange, yards)
|
||||||
end
|
end
|
||||||
rootDescription:CreateDivider()
|
CreateMenuDivider(rootDescription)
|
||||||
rootDescription:CreateButton(HIDE, function() radar:Hide() end)
|
rootDescription:CreateButton(HIDE, function() radar:Hide() end)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
+15
-21
@@ -30,8 +30,8 @@ pfUI:RegisterModule("raid", function ()
|
|||||||
-- flat pool of pet frames, laid out by LayoutPets (mirror or collapsed)
|
-- flat pool of pet frames, laid out by LayoutPets (mirror or collapsed)
|
||||||
pfUI.uf.raid.pets = {}
|
pfUI.uf.raid.pets = {}
|
||||||
|
|
||||||
-- 1-based grid slot -> (row, col) for the current fill direction, matching
|
-- 1-based grid slot -> (col, row) for the current fill direction, shared by
|
||||||
-- the raid grid's own fill loops.
|
-- the raid and pet grids.
|
||||||
local function SlotToCoord(slot, fill, x, y)
|
local function SlotToCoord(slot, fill, x, y)
|
||||||
slot = slot - 1
|
slot = slot - 1
|
||||||
if fill == "VERTICAL" then
|
if fill == "VERTICAL" then
|
||||||
@@ -75,12 +75,12 @@ pfUI:RegisterModule("raid", function ()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local i = 1
|
|
||||||
local width = pfUI.uf.raid[1]:GetWidth()+2*default_border
|
local width = pfUI.uf.raid[1]:GetWidth()+2*default_border
|
||||||
local height = pfUI.uf.raid[1]:GetHeight()+2*default_border
|
local height = pfUI.uf.raid[1]:GetHeight()+2*default_border
|
||||||
local layout = pfUI.uf.raid[1].config.raidlayout
|
local layout = pfUI.uf.raid[1].config.raidlayout
|
||||||
local padding = tonumber(pfUI.uf.raid[1].config.raidpadding)*GetPerfectPixel()
|
local padding = tonumber(pfUI.uf.raid[1].config.raidpadding)*GetPerfectPixel()
|
||||||
local fill = pfUI.uf.raid[1].config.raidfill
|
local fill = pfUI.uf.raid[1].config.raidfill
|
||||||
|
local growleft = pfUI.uf.raid[1].config.raidgrowleft == "1"
|
||||||
local _, _, x, y = string.find(layout,"(.+)x(.+)")
|
local _, _, x, y = string.find(layout,"(.+)x(.+)")
|
||||||
x, y = tonumber(x), tonumber(y)
|
x, y = tonumber(x), tonumber(y)
|
||||||
|
|
||||||
@@ -95,24 +95,18 @@ pfUI:RegisterModule("raid", function ()
|
|||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
if fill == "VERTICAL" then
|
-- right to left mirrors across the columns maxraid can fill, so a smaller
|
||||||
for r=1, x do for g=1, y do
|
-- raid stays next to the anchor instead of the far edge of the layout
|
||||||
if pfUI.uf.raid[i] then
|
local cols = min(x, fill == "VERTICAL" and ceil(maxraid / y) or maxraid)
|
||||||
pfUI.uf.raid[i]:ClearAllPoints()
|
|
||||||
pfUI.uf.raid[i]:SetPoint("BOTTOMLEFT", (r-1)*(padding+width), (g-1)*(padding+height))
|
for i=1, x*y do
|
||||||
UpdateMovable(pfUI.uf.raid[i], true)
|
if pfUI.uf.raid[i] then
|
||||||
end
|
local r, g = SlotToCoord(i, fill, x, y)
|
||||||
i = i + 1
|
if growleft then r = cols - r + 1 end
|
||||||
end end
|
pfUI.uf.raid[i]:ClearAllPoints()
|
||||||
else
|
pfUI.uf.raid[i]:SetPoint("BOTTOMLEFT", (r-1)*(padding+width), (g-1)*(padding+height))
|
||||||
for g=1, y do for r=1, x do
|
UpdateMovable(pfUI.uf.raid[i], true)
|
||||||
if pfUI.uf.raid[i] then
|
end
|
||||||
pfUI.uf.raid[i]:ClearAllPoints()
|
|
||||||
pfUI.uf.raid[i]:SetPoint("BOTTOMLEFT", (r-1)*(padding+width), (g-1)*(padding+height))
|
|
||||||
UpdateMovable(pfUI.uf.raid[i], true)
|
|
||||||
end
|
|
||||||
i = i + 1
|
|
||||||
end end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
self:LayoutPets()
|
self:LayoutPets()
|
||||||
|
|||||||
+1
-1
@@ -216,7 +216,7 @@ pfUI:RegisterModule("tooltip", function ()
|
|||||||
icon.stacks:SetFont(C.tooltip.font_tooltip, C.tooltip.font_tooltip_size, "OUTLINE")
|
icon.stacks:SetFont(C.tooltip.font_tooltip, C.tooltip.font_tooltip_size, "OUTLINE")
|
||||||
icon.stacks:SetTextColor(1, 1, 1, 1)
|
icon.stacks:SetTextColor(1, 1, 1, 1)
|
||||||
|
|
||||||
icon.cd = CreateCooldown(icon, "tooltip")
|
icon.cd = CreateCooldown(icon, "aura", C.tooltip, "aura_timers")
|
||||||
return icon
|
return icon
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -113,7 +113,7 @@ pfUI:RegisterModule("totems", function ()
|
|||||||
self.bar[i].cdbg = self.bar[i].cdbg or CreateFrame("Frame", nil, self.bar[i])
|
self.bar[i].cdbg = self.bar[i].cdbg or CreateFrame("Frame", nil, self.bar[i])
|
||||||
self.bar[i].cdbg:SetSize(self.iconsize - 3, self.iconsize - 3)
|
self.bar[i].cdbg:SetSize(self.iconsize - 3, self.iconsize - 3)
|
||||||
self.bar[i].cdbg:SetPoint("CENTER", self.bar[i], "CENTER", 0, 0)
|
self.bar[i].cdbg:SetPoint("CENTER", self.bar[i], "CENTER", 0, 0)
|
||||||
self.bar[i].cd = self.bar[i].cd or CreateCooldown(self.bar[i].cdbg, "totem", "pfTotemsBar"..i.."Cooldown")
|
self.bar[i].cd = self.bar[i].cd or CreateCooldown(self.bar[i].cdbg, "aura", C.totems, "timers", "pfTotemsBar"..i.."Cooldown")
|
||||||
|
|
||||||
self.bar[i]:RegisterForClicks("LeftButtonUp", "RightButtonUp")
|
self.bar[i]:RegisterForClicks("LeftButtonUp", "RightButtonUp")
|
||||||
self.bar[i]:SetScript("OnClick", self.OnClick)
|
self.bar[i]:SetScript("OnClick", self.OnClick)
|
||||||
|
|||||||
@@ -345,14 +345,16 @@ function pfUI:RegisterSkin(name, func, arg3)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- an error in one module or skin goes to the error handler without
|
||||||
|
-- stopping the ones that load after it
|
||||||
function pfUI:LoadModule(m)
|
function pfUI:LoadModule(m)
|
||||||
setfenv(pfUI.module[m], pfUI:GetEnvironment())
|
setfenv(pfUI.module[m], pfUI:GetEnvironment())
|
||||||
pfUI.module[m]()
|
securecallfunction(pfUI.module[m])
|
||||||
end
|
end
|
||||||
|
|
||||||
function pfUI:LoadSkin(s)
|
function pfUI:LoadSkin(s)
|
||||||
setfenv(pfUI.skin[s], pfUI:GetEnvironment())
|
setfenv(pfUI.skin[s], pfUI:GetEnvironment())
|
||||||
pfUI.skin[s]()
|
securecallfunction(pfUI.skin[s])
|
||||||
end
|
end
|
||||||
|
|
||||||
pfUI:SetScript("OnEvent", function()
|
pfUI:SetScript("OnEvent", function()
|
||||||
|
|||||||
@@ -199,7 +199,7 @@ pfUI:RegisterSkin("Character", function ()
|
|||||||
-- name only while that global is unset, so the global is rebound by
|
-- name only while that global is unset, so the global is rebound by
|
||||||
-- hand; the Model starts hidden and nothing reaches it after that
|
-- hand; the Model starts hidden and nothing reaches it after that
|
||||||
local cdname = "Character"..slotName.."Cooldown"
|
local cdname = "Character"..slotName.."Cooldown"
|
||||||
_G[cdname] = CreateCooldown(frame, "blizzard", cdname)
|
_G[cdname] = CreateCooldown(frame, "spell", C.cooldown, "blizzard_timers", cdname)
|
||||||
|
|
||||||
CreateFontString(frame, "scoreText", "OVERLAY", 12)
|
CreateFontString(frame, "scoreText", "OVERLAY", 12)
|
||||||
frame.scoreText:SetPoint("TOPRIGHT", 0, 0)
|
frame.scoreText:SetPoint("TOPRIGHT", 0, 0)
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ pfUI:RegisterSkin("Spellbook", function ()
|
|||||||
-- the global is rebound by hand; the Model starts hidden and nothing
|
-- the global is rebound by hand; the Model starts hidden and nothing
|
||||||
-- reaches it after that
|
-- reaches it after that
|
||||||
local cdname = "SpellButton"..i.."Cooldown"
|
local cdname = "SpellButton"..i.."Cooldown"
|
||||||
_G[cdname] = CreateCooldown(button, "blizzard", cdname)
|
_G[cdname] = CreateCooldown(button, "spell", C.cooldown, "blizzard_timers", cdname)
|
||||||
|
|
||||||
_G["SpellButton"..i.."SubSpellName"]:SetTextColor(1, 1, 1)
|
_G["SpellButton"..i.."SubSpellName"]:SetTextColor(1, 1, 1)
|
||||||
_G["SpellButton"..i.."AutoCastable"]:SetTexture("Interface\\Buttons\\UI-AutoCastableOverlay")
|
_G["SpellButton"..i.."AutoCastable"]:SetTexture("Interface\\Buttons\\UI-AutoCastableOverlay")
|
||||||
|
|||||||
Reference in New Issue
Block a user