160 lines
5.6 KiB
Lua
Executable File
160 lines
5.6 KiB
Lua
Executable File
local addonName, addon = ...
|
|
local childName = addon['childName']
|
|
local child = addon[childName]
|
|
local db, dbr, dbp, L, lineIn, lineOut, session, faction, realm
|
|
local zzLDB = LibStub:GetLibrary("zzLDB")
|
|
local function cdbCheck(n,realm)
|
|
db[realm] = db[realm] or {}
|
|
db[realm][n] = db[realm][n] or { currentGold = 0 }
|
|
end
|
|
child.cdbCheck = cdbCheck
|
|
local function getSumToday(d)
|
|
if(faction=='Neutral') then return 0,0 end
|
|
local sumIn,sumOut = 0,0
|
|
d = d or 0
|
|
local day = child:getDateString() + d
|
|
for a,b in pairs(dbr['activity'][faction][tostring(day)] or {}) do
|
|
if(b < 0) then
|
|
sumOut = sumOut + b
|
|
else
|
|
sumIn = sumIn + b
|
|
end
|
|
end
|
|
return sumOut,sumIn
|
|
end
|
|
local function getSumWeek()
|
|
local sumIn, sumOut = 0,0
|
|
local sumWeekIn, sumWeekOut = 0,0
|
|
for a=0,6 do
|
|
sumOut, sumIn = getSumToday(a * -1)
|
|
sumWeekIn = sumWeekIn + sumIn
|
|
sumWeekOut = sumWeekOut + sumOut
|
|
end
|
|
return sumWeekOut,sumWeekIn
|
|
end
|
|
local connectedRealms
|
|
local function Helper_Tooltip3(realm)
|
|
if(not db['connectedRealms']) then return end
|
|
connectedRealms = connectedRealms or GetAutoCompleteRealms()
|
|
for k, v in pairs(GetAutoCompleteRealms()) do
|
|
if(v == realm) then
|
|
return true
|
|
end
|
|
end
|
|
end
|
|
child.Helper_Tooltip3 = Helper_Tooltip3
|
|
local function OnClick(self, button)
|
|
zzLDB:DefaultOnClick(self, button, addon, childName)
|
|
end
|
|
local function OnTooltipShow(tip)
|
|
tip:AddLine(childName)
|
|
if(faction == 'Neutral') then
|
|
tip:AddLine(L['neutral'])
|
|
return
|
|
end
|
|
local sessdiff = dbp['currentGold'] - session['start']
|
|
local sdr,sdg,sdb = 1, 1, 1
|
|
if(sessdiff<0) then
|
|
sdr,sdg,sdb = 1, 0, 0
|
|
end
|
|
tip:AddDoubleLine(L['Sitzung'], child:displayMoney(abs(sessdiff), db['shortMoneyTip']),1,1,0,sdr,sdg,sdb)
|
|
tip:AddDoubleLine(lineIn, child:displayMoney(session['income'], db['shortMoneyTip']),1,1,1,1,1,1)
|
|
tip:AddDoubleLine(lineOut, child:displayMoney(abs(session['expense']), db['shortMoneyTip']),1,1,1,1,1,1)
|
|
tip:AddLine(' ')
|
|
local sumOut,sumIn = getSumToday()
|
|
sessdiff = sumOut+sumIn
|
|
if(sessdiff<0) then
|
|
sdr,sdg,sdb = 1, 0, 0
|
|
else
|
|
sdr,sdg,sdb = 1, 1, 1
|
|
end
|
|
tip:AddDoubleLine(L['Heute'], child:displayMoney(abs(sessdiff), db['shortMoneyTip']),1,1,0,sdr,sdg,sdb)
|
|
tip:AddDoubleLine(lineIn, child:displayMoney(sumIn, db['shortMoneyTip']),1,1,1,1,1,1)
|
|
tip:AddDoubleLine(lineOut, child:displayMoney(abs(sumOut), db['shortMoneyTip']),1,1,1,1,1,1)
|
|
tip:AddLine(' ')
|
|
local sumOut,sumIn = getSumToday(-1)
|
|
sessdiff = sumOut+sumIn
|
|
if(sessdiff<0) then
|
|
sdr,sdg,sdb = 1, 0, 0
|
|
else
|
|
sdr,sdg,sdb = 1, 1, 1
|
|
end
|
|
tip:AddDoubleLine(L['Gestern'], child:displayMoney(abs(sessdiff), db['shortMoneyTip']),1,1,0,sdr,sdg,sdb)
|
|
tip:AddDoubleLine(lineIn, child:displayMoney(sumIn, db['shortMoneyTip']),1,1,1,1,1,1)
|
|
tip:AddDoubleLine(lineOut, child:displayMoney(abs(sumOut), db['shortMoneyTip']),1,1,1,1,1,1)
|
|
tip:AddLine(' ')
|
|
local sumOut,sumIn = getSumWeek()
|
|
sessdiff = sumOut+sumIn
|
|
if(sessdiff<0) then
|
|
sdr,sdg,sdb = 1, 0, 0
|
|
else
|
|
sdr,sdg,sdb = 1, 1, 1
|
|
end
|
|
tip:AddDoubleLine(L['7-Tage'], child:displayMoney(abs(sessdiff), db['shortMoneyTip']),1,1,0,sdr,sdg,sdb)
|
|
tip:AddDoubleLine(lineIn, child:displayMoney(sumIn, db['shortMoneyTip']),1,1,1,1,1,1)
|
|
tip:AddDoubleLine(lineOut, child:displayMoney(abs(sumOut), db['shortMoneyTip']),1,1,1,1,1,1)
|
|
tip:AddLine(' ')
|
|
local sum = 0
|
|
local ttlist = {}
|
|
if(addon['db']['sv']['profileKeys']) then
|
|
for k,v in pairs(addon['db']['sv']['profileKeys']) do
|
|
local n,_,m = strsplit(' ',k,3)
|
|
if(n) then
|
|
m = string.gsub(m, "%s+", "")
|
|
local cr = Helper_Tooltip3(m)
|
|
if(m == realm or cr) then
|
|
cdbCheck(n, m)
|
|
if( faction == db[m][n]['faction']) then
|
|
-- sum = sum + db[m][n]['currentGold']
|
|
ttlist[k] = db[m][n]['currentGold']
|
|
end
|
|
elseif(db['accountMoney']) then
|
|
|
|
-- sum = sum + db[m][n]['currentGold']
|
|
end
|
|
end
|
|
end
|
|
end
|
|
for _,v in pairs(child:sortArray(ttlist,db['sortDir'])) do
|
|
local n,_,m = strsplit(' ',v,3)
|
|
m = string.gsub(m, "%s+", "")
|
|
local cr = Helper_Tooltip3(m)
|
|
local rm = cr and m or realm
|
|
tip:AddDoubleLine(
|
|
child:classcolor(n,db[rm][n]['class']),
|
|
child:displayMoney(db[rm][n]['currentGold']+(db[rm][n]['incoming'] or 0), db['shortMoneyTip']),
|
|
0,1,0,
|
|
1,1,1
|
|
)
|
|
end
|
|
tip:AddLine(' ')
|
|
tip:AddDoubleLine(L['Gesamt'],child:displayMoney(child:GetGold(db['displaySelTT'] or 2), db['shortMoneyTip']),0,1,0,1,1,1)
|
|
end
|
|
child['ldb'] = { -- https://github.com/tekkub/libdatabroker-1-1/wiki/Data-Specifications
|
|
['type'] = 'data source', -- required: 'data source' or 'launcher'
|
|
['text'] = childName, -- required/optional for launcher
|
|
['icon'] = 'Interface\\Icons\\INV_Misc_Bag_10_Blue', -- optional/required for launcher
|
|
['OnClick'] = OnClick, -- optional/required for launcher
|
|
['OnTooltipShow'] = OnTooltipShow, -- optional
|
|
}
|
|
function child:OnText(objname, message)
|
|
local ldbobj = zzLDB:GetLDB(objname)
|
|
if(ldbobj['text'] ~= message) then
|
|
ldbobj['text'] = message
|
|
end
|
|
end
|
|
local init = {
|
|
Setup = function(self, childName, event)
|
|
L = child['storage']['L']
|
|
db = child['storage']['db']
|
|
dbr = child['storage']['dbr']
|
|
dbp = child['storage']['dbp']
|
|
session = child['storage']['session']
|
|
faction = child['storage']['faction']
|
|
realm = child['storage']['realm']
|
|
local folder = addonName ~= childName and format("Interface\\AddOns\\%s\\%s", addonName, childName) or format("Interface\\AddOns\\%s", childName)
|
|
lineIn = format("|T%s:0|t %s", format("%s\\in.tga", folder), L['Einnahmen'])
|
|
lineOut = format("|T%s:0|t %s", format("%s\\out.tga", folder), L['Ausgaben'])
|
|
end
|
|
}
|
|
addon.RegisterCallback(init, format("Init%s", childName), 'Setup', childName) |