Skip to content

Commit eb83944

Browse files
authored
Merge pull request #4 from ChronosSF/legion-updates
Legion updates
2 parents 15643eb + 5a86758 commit eb83944

File tree

5 files changed

+307
-11
lines changed

5 files changed

+307
-11
lines changed

Elements/Artifact.lua

Lines changed: 264 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,264 @@
1+
local SLDataText = LibStub("AceAddon-3.0"):GetAddon("SLDataText")
2+
local L = LibStub("AceLocale-3.0"):GetLocale("SLDataText")
3+
local media = LibStub("LibSharedMedia-3.0")
4+
local justTable, strataTable, pointTable = SLDataText.just, SLDataText.strata, SLDataText.point
5+
local db
6+
7+
local MODNAME = "Artifact"
8+
local Artifact = SLDataText:NewModule(MODNAME, "AceEvent-3.0")
9+
10+
local optGetter, optSetter
11+
do
12+
function optGetter(info)
13+
local key = info[#info]
14+
return db[key]
15+
end
16+
17+
function optSetter(info, value)
18+
local key = info[#info]
19+
db[key] = value
20+
SLDataText:RefreshModule(Artifact)
21+
end
22+
end
23+
24+
local options
25+
local function getOptions()
26+
if ( not options ) then options = {
27+
type = "group",
28+
name = L["Artifact"],
29+
arg = MODNAME,
30+
get = optGetter,
31+
set = optSetter,
32+
args = {
33+
genHeader = {
34+
type = "header",
35+
name = L["GenCorSet"],
36+
order = 25,
37+
},
38+
enabled = {
39+
type = "toggle",
40+
name = L["Enabled"],
41+
desc = L["EnabledDesc"],
42+
get = function() return SLDataText:GetModuleEnabled(MODNAME) end,
43+
set = function(info, value)
44+
SLDataText:SetModuleEnabled(MODNAME, value)
45+
if ( SLDataText:GetModuleEnabled(MODNAME) ) then
46+
Artifact:PLAYER_ENTERING_WORLD()
47+
end
48+
end,
49+
order = 50,
50+
},
51+
noCombatHide = {
52+
type = "toggle",
53+
name = L["SIC"],
54+
desc = L["SICDesc"],
55+
order = 100,
56+
},
57+
dispHeader = {
58+
type = "header",
59+
name = L["DispSet"],
60+
order = 275,
61+
},
62+
secText = {
63+
type = "input",
64+
name = L["SecText"],
65+
desc = L["SecTextDesc"],
66+
width = "double",
67+
order = 300,
68+
},
69+
useGlobalFont = {
70+
type = "toggle",
71+
name = L["UseGblFont"],
72+
desc = L["UseGblFontDesc"],
73+
order = 300,
74+
},
75+
useGlobalFontSize = {
76+
type = "toggle",
77+
name = L["UseGblFSize"],
78+
desc = L["UseGblFSizeDesc"],
79+
order = 350,
80+
},
81+
fontFace = {
82+
type = "select",
83+
name = L["Font"],
84+
desc = L["FontDesc"],
85+
disabled = function()
86+
local isTrue
87+
if ( db.useGlobalFont ) then isTrue = true else isTrue = false end
88+
return isTrue
89+
end,
90+
values = media:List("font"),
91+
get = function()
92+
for k, v in pairs(media:List("font")) do
93+
if db.fontFace == v then
94+
return k
95+
end
96+
end
97+
end,
98+
set = function(_, font)
99+
local list = media:List("font")
100+
db.fontFace = list[font]
101+
SLDataText:RefreshModule(Artifact)
102+
end,
103+
width = "double",
104+
order = 600,
105+
},
106+
fontSize = {
107+
type = "range",
108+
name = L["FontSize"],
109+
desc = L["FontSizeDesc"],
110+
disabled = function()
111+
local isTrue
112+
if ( db.useGlobalFontSize ) then isTrue = true else isTrue = false end
113+
return isTrue
114+
end,
115+
min = 6, max = 36, step = 1,
116+
width = "double",
117+
order = 650,
118+
},
119+
posHeader = {
120+
type = "header",
121+
name = L["LaySet"],
122+
order = 700,
123+
},
124+
justify = {
125+
type = "select",
126+
name = L["TextJust"],
127+
desc = L["TextJustDesc"],
128+
values = justTable,
129+
width = "double",
130+
order = 750,
131+
},
132+
anchor = {
133+
type = "input",
134+
name = L["ParFrm"],
135+
desc = L["ParFrmDesc"],
136+
get = function() return db.anchor end,
137+
width = "double",
138+
order = 800,
139+
},
140+
anchorFrom = {
141+
type = "select",
142+
name = L["AnchFrom"],
143+
desc = L["AnchFromDesc"],
144+
values = pointTable,
145+
get = function() return db.anchorFrom end,
146+
width = "double",
147+
order = 900,
148+
},
149+
offX = {
150+
type = "input",
151+
name = L["XOff"],
152+
desc = L["XOffDesc"],
153+
get = function() return tostring(db.offX) end,
154+
width = "double",
155+
order = 1000,
156+
},
157+
offY = {
158+
type = "input",
159+
name = L["YOff"],
160+
desc = L["YOffDesc"],
161+
get = function() return tostring(db.offY) end,
162+
width = "double",
163+
order = 1100,
164+
},
165+
strata = {
166+
type = "select",
167+
name = L["Strata"],
168+
desc = L["StrataDesc"],
169+
values = strataTable,
170+
width = "double",
171+
order = 1600,
172+
},
173+
},
174+
}
175+
end
176+
177+
return options
178+
end
179+
180+
local int = 1
181+
local f
182+
local function buildModule(self)
183+
if ( not f ) then f = CreateFrame("Frame") end
184+
if ( not self.frame ) then self.frame = CreateFrame("Frame", "SLDT_Artifact", UIParent) end
185+
if ( not self.string ) then self.string = self.frame:CreateFontString(nil, "OVERLAY") end
186+
187+
f:SetScript("OnUpdate", function(self, elapsed)
188+
int = int - elapsed
189+
if ( int <= 0 ) then
190+
Artifact:Refresh()
191+
int = 1
192+
end
193+
end)
194+
195+
Artifact:RegisterEvent("PLAYER_ENTERING_WORLD")
196+
end
197+
198+
function Artifact:PLAYER_ENTERING_WORLD()
199+
SLDataText:RefreshModule(self)
200+
self:UnregisterEvent("PLAYER_ENTERING_WORLD")
201+
end
202+
203+
function Artifact:OnInitialize()
204+
self.db = SLDataText.db:RegisterNamespace(MODNAME)
205+
self.db:RegisterDefaults({
206+
profile = {
207+
noCombatHide = true,
208+
fontFace = "Arial Narrow",
209+
useGlobalFont = true,
210+
fontSize = 12,
211+
useGlobalFontSize = false,
212+
justify = "CENTER",
213+
anchorPoint = "CENTER",
214+
anchor = "UIParent",
215+
anchorFrom = "CENTER",
216+
offX = 200,
217+
offY = -20,
218+
strata = "BACKGROUND",
219+
},
220+
})
221+
db = self.db.profile
222+
if ( not self.isMoving ) then self.isMoving = false end
223+
self:SetEnabledState(SLDataText:GetModuleEnabled(MODNAME))
224+
SLDataText:RegisterModuleOptions(MODNAME, getOptions)
225+
end
226+
227+
function Artifact:OnEnable()
228+
buildModule(self)
229+
if ( not self.frame:IsShown() ) then self.frame:Show() end
230+
end
231+
232+
function Artifact:OnDisable()
233+
self:UnregisterEvent("PLAYER_ENTERING_WORLD")
234+
f:SetScript("OnUpdate", nil)
235+
if ( self.frame:IsShown() ) then self.frame:Hide() end
236+
end
237+
238+
function Artifact:Refresh()
239+
if (not HasArtifactEquipped()) then
240+
return
241+
end
242+
local sec_text = db.secText
243+
local per_text
244+
local current_ap = select(5, C_ArtifactUI.GetEquippedArtifactInfo())
245+
local traits_spent = select(6, C_ArtifactUI.GetEquippedArtifactInfo())
246+
247+
local available = 0
248+
local next_rank_cost = C_ArtifactUI.GetCostForPointAtRank(traits_spent + available) or 0
249+
250+
while current_ap >= next_rank_cost do
251+
current_ap = current_ap - next_rank_cost
252+
available = available + 1
253+
next_rank_cost = C_ArtifactUI.GetCostForPointAtRank(traits_spent + available) or 0
254+
end
255+
256+
per_rnd = round((current_ap / next_rank_cost) * 100, 1)
257+
258+
if string.len(sec_text) > 0 then
259+
local color = SLDataText:GetColor()
260+
sec_text = "|cff" .. color .. sec_text .. "|r "
261+
end
262+
263+
self.string:SetFormattedText(sec_text..per_rnd.."%% ("..available..")")
264+
end

Elements/Experience.lua

Lines changed: 36 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,24 @@ local function getOptions()
7272
desc = L["shortXPDesc"],
7373
order = 220,
7474
},
75+
onlyPer = {
76+
type = "toggle",
77+
name = L["onlyPer"],
78+
desc = L["onlyPerDesc"],
79+
order = 230,
80+
},
7581
dispHeader = {
7682
type = "header",
7783
name = L["DispSet"],
7884
order = 275,
7985
},
86+
secText = {
87+
type = "input",
88+
name = L["SecText"],
89+
desc = L["SecTextDesc"],
90+
width = "double",
91+
order = 300,
92+
},
8093
useGlobalFont = {
8194
type = "toggle",
8295
name = L["UseGblFont"],
@@ -248,7 +261,9 @@ end
248261

249262
function Experience:Refresh()
250263
local p_level = UnitLevel("player")
251-
if (p_level < 90) then
264+
if (p_level < 110) then
265+
local sec_text = db.secText
266+
252267
--get data
253268
local exp_cur = UnitXP("player")
254269
local exp_max = UnitXPMax("player")
@@ -268,29 +283,29 @@ function Experience:Refresh()
268283
return math.floor(num * mult + 0.5) / mult
269284
end
270285

271-
local exp_rest_per = round(exp_rest_per,1)
286+
local exp_rest_per = round(exp_rest_per, 1)
272287
local exp_cur_per = round(exp_cur_per, 1)
273288

274289
--over 9000
275290
if (db.shortXP) then
276-
if(exp_max > 10000000) then
291+
if (exp_max > 10000000) then
277292
exp_max = exp_max/1000000
278293
exp_max = round(exp_max, 2) .." M"
279-
elseif(exp_max > 1000000) then
294+
elseif (exp_max > 1000000) then
280295
exp_max = exp_max/1000000
281296
exp_max = round(exp_max, 3) .." M"
282-
elseif(exp_max > 100000) then
297+
elseif (exp_max > 100000) then
283298
exp_max = exp_max/1000
284299
exp_max = round(exp_max, 0) .. " K"
285300
end
286301

287-
if(exp_cur > 10000000) then
302+
if (exp_cur > 10000000) then
288303
exp_cur = exp_cur/1000000
289304
exp_cur = round(exp_cur, 2) .." M"
290-
elseif(exp_cur > 1000000) then
305+
elseif (exp_cur > 1000000) then
291306
exp_cur = exp_cur/1000000
292307
exp_cur = round(exp_cur, 3) .." M"
293-
elseif(exp_cur > 100000) then
308+
elseif (exp_cur > 100000) then
294309
exp_cur = exp_cur/1000
295310
exp_cur = round(exp_cur, 0) .. " K"
296311
end
@@ -303,14 +318,25 @@ function Experience:Refresh()
303318
exp_rest_per = ""
304319
end
305320

306-
if (db.showPer) then
321+
if (db.showPer and not db.onlyPer) then
307322
exp_cur_per = "("..exp_cur_per.."%%) "
323+
elseif (db.onlyPer) then
324+
exp_cur_per = exp_cur_per.."%%"
308325
else
309326
exp_cur_per = ""
310327
end
311328

329+
if string.len(sec_text) > 0 then
330+
local color = SLDataText:GetColor()
331+
sec_text = "|cff" .. color .. sec_text .. "|r "
332+
end
333+
312334
--post it
313-
self.string:SetFormattedText(exp_cur_per..""..exp_cur.." / "..exp_max .."".. exp_rest_per)
335+
if (db.onlyPer) then
336+
self.string:SetFormattedText(sec_text..exp_cur_per)
337+
else
338+
self.string:SetFormattedText(sec_text..exp_cur_per..""..exp_cur.." / "..exp_max .."".. exp_rest_per)
339+
end
314340

315341
SLDataText:UpdateModule(self)
316342
end

Locale/enUS.lua

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,9 @@ L["Game"] = "Game"
9797
L["Faction"] = "Faction"
9898
L["Officer Note"] = "Officer Note"
9999

100+
-- Artifact Options
101+
L["Artifact"] = "Artifact"
102+
100103
-- Experience Options
101104
L["Experience"] = "Experience"
102105
L["showRest"] = "Rest XP"
@@ -105,6 +108,8 @@ L["showPer"] = "XP Percentage"
105108
L["showPerDesc"] = "When enabled, module will show the XP in percent."
106109
L["shortXP"] = "Short XP"
107110
L["shortXPDesc"] = "When enabled, module will show the XP in a short version. (11,33M instead of 11333444)."
111+
L["onlyPer"] = "Only Percentage"
112+
L["onlyPerDesc"] = "When enabled, module will show only the percentage portion of the XP."
108113

109114
-- Bag Options
110115
L["Bag"] = "Bag"

SLDataText.toc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
## Interface: 70000
22
## Title: |cff00ff00SLDT|r - Simple Light Data Text
33
## Notes: Text-based data display modules.
4-
## Version: 7.0.0
4+
## Version: 7.0.1
55
## Author: Taffu (fan update by Karaswa & ChronosSF)
66
## SavedVariables: SLDTDB
77
## OptionalDeps: Ace3, LibSharedMedia-3.0, TabletLib

0 commit comments

Comments
 (0)