forked from DennisRas/WeeklyKnowledge
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCore.lua
More file actions
109 lines (97 loc) · 3.17 KB
/
Core.lua
File metadata and controls
109 lines (97 loc) · 3.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
---@type string
local addonName = select(1, ...)
---@class WK_Addon
local addon = select(2, ...)
local Data = addon.Data
local Main = addon.Main
local Checklist = addon.Checklist
local LibDataBroker = LibStub("LibDataBroker-1.1")
local LibDBIcon = LibStub("LibDBIcon-1.0")
local Core = LibStub("AceAddon-3.0"):NewAddon(addonName, "AceConsole-3.0", "AceTimer-3.0", "AceEvent-3.0", "AceBucket-3.0")
addon.Core = Core
_G.WeeklyKnowledge = addon
function Core:Render()
Main:Render()
Checklist:Render()
end
function Core:OnInitialize()
_G["BINDING_NAME_WEEKLYKNOWLEDGE"] = "Show/Hide the window"
self:RegisterChatCommand("wk", function() Main:ToggleWindow() end)
self:RegisterChatCommand("weeklyknowledge", function() Main:ToggleWindow() end)
Data:InitDB()
Data:MigrateDB()
if Data:TaskWeeklyReset() then
self:Print("Weekly Reset: Good job! Progress of your characters have been reset for a new week.")
end
local WKLDB = LibDataBroker:NewDataObject(addonName, {
label = addonName,
type = "launcher",
icon = "Interface/AddOns/WeeklyKnowledge/Media/Icon.blp",
OnClick = function(...)
local _, b = ...
if b and b == "RightButton" then
Checklist:ToggleWindow()
else
Main:ToggleWindow()
end
end,
OnTooltipShow = function(tooltip)
tooltip:SetText(addonName, 1, 1, 1)
tooltip:AddLine("|cff00ff00Left click|r to open WeeklyKnowledge.", NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b)
tooltip:AddLine("|cff00ff00Right click|r to open the Checklist.", NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b)
local dragText = "|cff00ff00Drag|r to move this icon"
if Data.db.global.minimap.lock then
dragText = dragText .. " |cffff0000(locked)|r"
end
tooltip:AddLine(dragText .. ".", NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b)
end
})
LibDBIcon:Register(addonName, WKLDB, Data.db.global.minimap)
LibDBIcon:AddButtonToCompartment(addonName)
self:Render()
end
function Core:OnEnable()
self:RegisterEvent("PLAYER_REGEN_DISABLED", function()
Data.cache.inCombat = true
self:Render()
end)
self:RegisterEvent("PLAYER_REGEN_ENABLED", function()
Data.cache.inCombat = false
self:Render()
end)
self:RegisterBucketEvent(
{
"ACTIVE_TALENT_GROUP_CHANGED",
"BAG_UPDATE_DELAYED",
"CHAT_MSG_LOOT",
"ITEM_COUNT_CHANGED",
"PLAYER_SPECIALIZATION_CHANGED",
"PLAYER_TALENT_UPDATE",
"QUEST_COMPLETE",
"QUEST_TURNED_IN",
"SKILL_LINES_CHANGED",
"TRAIT_CONFIG_UPDATED",
"UNIT_INVENTORY_CHANGED",
},
3,
function()
Data.cache.weeklyProgress = {}
Data:ScanCharacter()
self:Render()
end
)
self:RegisterBucketEvent({"CALENDAR_UPDATE_EVENT_LIST",}, 1, function()
Data.cache.weeklyProgress = {}
Data:ScanCalendar()
self:Render()
end)
local currentCalendarTime = C_DateAndTime.GetCurrentCalendarTime()
C_Calendar.SetAbsMonth(currentCalendarTime.month, currentCalendarTime.year)
C_Calendar.OpenCalendar()
Data:ScanCharacter()
self:Render()
end
function Core:OnDisable()
self:UnregisterAllEvents()
self:UnregisterAllBuckets()
end