forked from phuein/UserScripts
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathNewAddon.lua
More file actions
84 lines (64 loc) · 2.95 KB
/
Copy pathNewAddon.lua
File metadata and controls
84 lines (64 loc) · 2.95 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
NewAddon = {
name = "NewAddon", -- Matches folder and Manifest file names.
-- version = "1.0", -- A nuisance to match to the Manifest.
author = "Developer",
color = "DDFFEE", -- Used in menu titles and so on.
menuName = "New Addon", -- A UNIQUE identifier for menu object.
-- Default settings.
savedVariables = {
FirstLoad = true, -- First time the addon is loaded ever.
},
}
-- Wraps text with a color.
function NewAddon.Colorize(text, color)
-- Default to addon's .color.
if not color then color = NewAddon.color end
text = "|c" .. color .. text .. "|r"
return text
end
function NewAddon.AnimateText()
-- Avoid playing the animation over itself.
if not NewAddonActive:IsHidden() then return end
local animation, timeline = CreateSimpleAnimation(ANIMATION_ALPHA, NewAddonActive)
NewAddonActive:SetHidden(false)
animation:SetAlphaValues(NewAddonActive:GetAlpha(), 1)
animation:SetDuration(3000)
-- Fade-out after fade-in.
timeline:SetHandler('OnStop', function()
local animation, timeline = CreateSimpleAnimation(ANIMATION_ALPHA, NewAddonActive)
animation:SetAlphaValues(NewAddonActive:GetAlpha(), 0)
animation:SetDuration(3000)
timeline:SetHandler('OnStop', function()
NewAddonActive:SetHidden(true)
end)
timeline:PlayFromStart()
end)
timeline:PlayFromStart()
end
-- Only show the loading message on first load ever.
function NewAddon.Activated(e)
EVENT_MANAGER:UnregisterForEvent(NewAddon.name, EVENT_PLAYER_ACTIVATED)
if NewAddon.savedVariables.FirstLoad then
NewAddon.savedVariables.FirstLoad = false
d(NewAddon.name .. GetString(SI_NEW_ADDON_MESSAGE)) -- Prints to chat.
ZO_AlertNoSuppression(UI_ALERT_CATEGORY_ALERT, nil,
NewAddon.name .. GetString(SI_NEW_ADDON_MESSAGE)) -- Top-right alert.
-- Animate the xml UI center text, after a delay.
zo_callLater(NewAddon.AnimateText, 3000)
end
end
-- When player is ready, after everything has been loaded.
EVENT_MANAGER:RegisterForEvent(NewAddon.name, EVENT_PLAYER_ACTIVATED, NewAddon.Activated)
function NewAddon.OnAddOnLoaded(event, addonName)
if addonName ~= NewAddon.name then return end
EVENT_MANAGER:UnregisterForEvent(NewAddon.name, EVENT_ADD_ON_LOADED)
NewAddon.savedVariables = ZO_SavedVars:New("NewAddonSavedVariables", 1, nil, NewAddon.savedVariables)
-- Settings menu in Settings.lua.
NewAddon.LoadSettings()
-- Slash commands must be lowercase!!! Set to nil to disable.
SLASH_COMMANDS["/newaddon"] = NewAddon.AnimateText
-- Reset autocomplete cache to update it.
SLASH_COMMAND_AUTO_COMPLETE:InvalidateSlashCommandCache()
end
-- When any addon is loaded, but before UI (Chat) is loaded.
EVENT_MANAGER:RegisterForEvent(NewAddon.name, EVENT_ADD_ON_LOADED, NewAddon.OnAddOnLoaded)