ESOUI SVN TaosGroupUltimate

[/] [trunk/] [TaosGroupUltimate/] [ui/] [GroupUltimateSelector.lua] - Blame information for rev 58

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 14 Taonnor-14572
--[[
2 Taonnor-14572
        Addon: Taos Group Ultimate
3 Taonnor-14572
        Author: TProg Taonnor
4 Taonnor-14572
        Created by @Taonnor
5 Taonnor-14572
]]--
6 Taonnor-14572
 
7 Taonnor-14572
--[[
8 37 Taonnor-14572
        Local variables
9 14 Taonnor-14572
]]--
10 Taonnor-14572
local LOG_ACTIVE = false
11 46 Taonnor-14572
 
12 37 Taonnor-14572
local _logger = nil
13 46 Taonnor-14572
local _control = nil
14 14 Taonnor-14572
 
15 Taonnor-14572
--[[
16 37 Taonnor-14572
        Table GroupUltimateSelector
17 14 Taonnor-14572
]]--
18 37 Taonnor-14572
TGU_GroupUltimateSelector = {}
19 Taonnor-14572
TGU_GroupUltimateSelector.__index = TGU_GroupUltimateSelector
20 14 Taonnor-14572
 
21 Taonnor-14572
--[[
22 37 Taonnor-14572
        Table Members
23 14 Taonnor-14572
]]--
24 Taonnor-14572
 
25 Taonnor-14572
--[[
26 Taonnor-14572
        SetUltimateIcon sets the button icon in base of staticUltimateID
27 Taonnor-14572
]]--
28 37 Taonnor-14572
function TGU_GroupUltimateSelector.SetUltimateIcon(staticUltimateID)
29 14 Taonnor-14572
    if (LOG_ACTIVE) then
30 37 Taonnor-14572
        _logger:logTrace("TGU_GroupUltimateSelector.SetUltimateIcon")
31 Taonnor-14572
        _logger:logDebug("staticUltimateID", staticUltimateID)
32 14 Taonnor-14572
    end
33 Taonnor-14572
 
34 Taonnor-14572
    local icon = "/esoui/art/icons/icon_missing.dds"
35 Taonnor-14572
 
36 Taonnor-14572
    if (staticUltimateID ~= 0) then
37 Taonnor-14572
        icon = GetAbilityIcon(staticUltimateID)
38 Taonnor-14572
    end
39 Taonnor-14572
 
40 46 Taonnor-14572
    local iconControl = _control:GetNamedChild("SelectorButtonControl"):GetNamedChild("Icon")
41 14 Taonnor-14572
 
42 Taonnor-14572
    if (icon ~= nil and iconControl ~= nil) then
43 Taonnor-14572
        iconControl:SetTexture(icon)
44 Taonnor-14572
    else
45 37 Taonnor-14572
        _logger:logError("TGU_GroupUltimateSelector.SetUltimateIcon, icon is " .. tostring(icon) .. "; iconControl is " .. tostring(iconControl))
46 14 Taonnor-14572
    end
47 Taonnor-14572
end
48 Taonnor-14572
 
49 Taonnor-14572
--[[
50 Taonnor-14572
        SetControlMovable sets the Movable and MouseEnabled flag in UI elements
51 Taonnor-14572
]]--
52 37 Taonnor-14572
function TGU_GroupUltimateSelector.SetControlMovable(isMovable)
53 14 Taonnor-14572
    if (LOG_ACTIVE) then
54 37 Taonnor-14572
        _logger:logTrace("TGU_GroupUltimateSelector.SetControlMovable")
55 Taonnor-14572
        _logger:logDebug("isMovable", isMovable)
56 14 Taonnor-14572
    end
57 Taonnor-14572
 
58 46 Taonnor-14572
    _control:GetNamedChild("MovableControl"):SetHidden(isMovable == false)
59 14 Taonnor-14572
 
60 46 Taonnor-14572
    _control:SetMovable(isMovable)
61 Taonnor-14572
        _control:SetMouseEnabled(isMovable)
62 14 Taonnor-14572
end
63 Taonnor-14572
 
64 Taonnor-14572
--[[
65 37 Taonnor-14572
        RestorePosition sets TGU_GroupUltimateSelector on settings position
66 14 Taonnor-14572
]]--
67 37 Taonnor-14572
function TGU_GroupUltimateSelector.RestorePosition(posX, posY)
68 14 Taonnor-14572
    if (LOG_ACTIVE) then
69 37 Taonnor-14572
        _logger:logTrace("TGU_GroupUltimateSelector.RestorePosition")
70 Taonnor-14572
        _logger:logDebug("posX, posY", posX, posY)
71 14 Taonnor-14572
    end
72 Taonnor-14572
 
73 46 Taonnor-14572
        _control:ClearAnchors()
74 Taonnor-14572
        _control:SetAnchor(TOPLEFT, GuiRoot, TOPLEFT, posX, posY)
75 14 Taonnor-14572
end
76 Taonnor-14572
 
77 Taonnor-14572
--[[
78 37 Taonnor-14572
        OnTGU_GroupUltimateSelectorMoveStop saves current TGU_GroupUltimateSelector position to settings
79 14 Taonnor-14572
]]--
80 37 Taonnor-14572
function TGU_GroupUltimateSelector.OnGroupUltimateSelectorMoveStop()
81 Taonnor-14572
    if (LOG_ACTIVE) then _logger:logTrace("TGU_GroupUltimateSelector.OnGroupUltimateSelectorMoveStop") end
82 14 Taonnor-14572
 
83 46 Taonnor-14572
        local left = _control:GetLeft()
84 Taonnor-14572
        local top = _control:GetTop()
85 14 Taonnor-14572
 
86 37 Taonnor-14572
    TGU_SettingsHandler.SavedVariables.SelectorPosX = left
87 Taonnor-14572
    TGU_SettingsHandler.SavedVariables.SelectorPosY = top
88 14 Taonnor-14572
 
89 Taonnor-14572
    if (LOG_ACTIVE) then
90 37 Taonnor-14572
        _logger:logDebug("PosX, PosY", TGU_SettingsHandler.SavedVariables.SelectorPosX, TGU_SettingsHandler.SavedVariables.SelectorPosY)
91 14 Taonnor-14572
    end
92 Taonnor-14572
end
93 Taonnor-14572
 
94 19 Taonnor-14572
--[[
95 Taonnor-14572
        OnGroupUltimateSelectorClicked shows ultimate group menu
96 Taonnor-14572
]]--
97 37 Taonnor-14572
function TGU_GroupUltimateSelector.OnGroupUltimateSelectorClicked()
98 Taonnor-14572
    if (LOG_ACTIVE) then _logger:logTrace("TGU_GroupUltimateSelector.OnGroupUltimateSelectorClicked") end
99 14 Taonnor-14572
 
100 46 Taonnor-14572
    local button = _control:GetNamedChild("SelectorButtonControl"):GetNamedChild("Button")
101 19 Taonnor-14572
 
102 Taonnor-14572
    if (button ~= nil) then
103 38 Taonnor-14572
        CALLBACK_MANAGER:RegisterCallback(TGU_SET_ULTIMATE_GROUP, TGU_GroupUltimateSelector.OnSetUltimateGroup)
104 Taonnor-14572
        CALLBACK_MANAGER:FireCallbacks(TGU_SHOW_ULTIMATE_GROUP_MENU, button)
105 19 Taonnor-14572
    else
106 37 Taonnor-14572
        _logger:logError("TGU_GroupUltimateSelector.OnGroupUltimateSelectorClicked, button nil")
107 19 Taonnor-14572
    end
108 14 Taonnor-14572
end
109 Taonnor-14572
 
110 Taonnor-14572
--[[
111 19 Taonnor-14572
        OnSetUltimateGroup sets ultimate group for button
112 Taonnor-14572
]]--
113 37 Taonnor-14572
function TGU_GroupUltimateSelector.OnSetUltimateGroup(group)
114 19 Taonnor-14572
    if (LOG_ACTIVE) then
115 37 Taonnor-14572
        _logger:logTrace("TGU_GroupUltimateSelector.OnSetUltimateGroup")
116 Taonnor-14572
        _logger:logDebug("group.GroupName", group.GroupName)
117 19 Taonnor-14572
    end
118 Taonnor-14572
 
119 38 Taonnor-14572
    CALLBACK_MANAGER:UnregisterCallback(TGU_SET_ULTIMATE_GROUP, TGU_GroupUltimateSelector.OnSetUltimateGroup)
120 19 Taonnor-14572
 
121 Taonnor-14572
    if (group ~= nil) then
122 37 Taonnor-14572
        TGU_SettingsHandler.SetStaticUltimateIDSettings(group.GroupAbilityId)
123 19 Taonnor-14572
    else
124 37 Taonnor-14572
        _logger:logError("TGU_UltimateGroupMenu.ShowUltimateGroupMenu, group nil")
125 19 Taonnor-14572
    end
126 Taonnor-14572
end
127 Taonnor-14572
 
128 Taonnor-14572
--[[
129 14 Taonnor-14572
        SetControlHidden sets hidden on control
130 Taonnor-14572
]]--
131 50 Taonnor-14572
function TGU_GroupUltimateSelector.SetControlHidden(isHidden)
132 14 Taonnor-14572
    if (LOG_ACTIVE) then
133 37 Taonnor-14572
        _logger:logTrace("TGU_GroupUltimateSelector.SetControlHidden")
134 50 Taonnor-14572
        _logger:logDebug("isHidden", isHidden)
135 14 Taonnor-14572
    end
136 Taonnor-14572
 
137 58 Taonnor-14572
    if (TGU_GroupHandler.IsGrouped) then
138 Taonnor-14572
        _control:SetHidden(isHidden)
139 Taonnor-14572
    else
140 Taonnor-14572
        _control:SetHidden(true)
141 Taonnor-14572
    end
142 50 Taonnor-14572
end
143 Taonnor-14572
 
144 Taonnor-14572
--[[
145 Taonnor-14572
        SetControlActive activates/deactivates control
146 Taonnor-14572
]]--
147 Taonnor-14572
function TGU_GroupUltimateSelector.SetControlActive()
148 Taonnor-14572
    if (LOG_ACTIVE) then
149 Taonnor-14572
        _logger:logTrace("TGU_GroupUltimateSelector.SetControlActive")
150 Taonnor-14572
    end
151 Taonnor-14572
 
152 37 Taonnor-14572
    local isHidden = TGU_SettingsHandler.IsControlsVisible() == false
153 Taonnor-14572
    if (LOG_ACTIVE) then _logger:logDebug("isHidden", isHidden) end
154 32 Taonnor-14572
 
155 58 Taonnor-14572
    TGU_GroupUltimateSelector.SetControlHidden(isHidden or CurrentHudHiddenState())
156 50 Taonnor-14572
 
157 37 Taonnor-14572
    if (isHidden) then
158 38 Taonnor-14572
        CALLBACK_MANAGER:UnregisterCallback(TGU_MOVABLE_CHANGED, TGU_GroupUltimateSelector.SetControlMovable)
159 Taonnor-14572
        CALLBACK_MANAGER:UnregisterCallback(TGU_STATIC_ULTIMATE_ID_CHANGED, TGU_GroupUltimateSelector.SetUltimateIcon)
160 50 Taonnor-14572
        CALLBACK_MANAGER:UnregisterCallback(TUI_HUD_HIDDEN_STATE_CHANGED, TGU_GroupUltimateSelector.SetControlHidden)
161 37 Taonnor-14572
    else
162 Taonnor-14572
        TGU_GroupUltimateSelector.SetControlMovable(TGU_SettingsHandler.SavedVariables.Movable)
163 Taonnor-14572
        TGU_GroupUltimateSelector.RestorePosition(TGU_SettingsHandler.SavedVariables.SelectorPosX, TGU_SettingsHandler.SavedVariables.SelectorPosY)
164 Taonnor-14572
        TGU_GroupUltimateSelector.SetUltimateIcon(TGU_SettingsHandler.SavedVariables.StaticUltimateID)
165 Taonnor-14572
 
166 38 Taonnor-14572
        CALLBACK_MANAGER:RegisterCallback(TGU_MOVABLE_CHANGED, TGU_GroupUltimateSelector.SetControlMovable)
167 Taonnor-14572
        CALLBACK_MANAGER:RegisterCallback(TGU_STATIC_ULTIMATE_ID_CHANGED, TGU_GroupUltimateSelector.SetUltimateIcon)
168 50 Taonnor-14572
        CALLBACK_MANAGER:RegisterCallback(TUI_HUD_HIDDEN_STATE_CHANGED, TGU_GroupUltimateSelector.SetControlHidden)
169 37 Taonnor-14572
    end
170 14 Taonnor-14572
end
171 Taonnor-14572
 
172 Taonnor-14572
--[[
173 37 Taonnor-14572
        Initialize initializes TGU_GroupUltimateSelector
174 14 Taonnor-14572
]]--
175 37 Taonnor-14572
function TGU_GroupUltimateSelector.Initialize(logger)
176 14 Taonnor-14572
    if (LOG_ACTIVE) then
177 37 Taonnor-14572
        logger:logTrace("TGU_GroupUltimateSelector.Initialize")
178 14 Taonnor-14572
    end
179 Taonnor-14572
 
180 37 Taonnor-14572
    _logger = logger
181 46 Taonnor-14572
    _control = TGU_UltimateSelectorControl
182 14 Taonnor-14572
 
183 37 Taonnor-14572
    TGU_GroupUltimateSelector.SetUltimateIcon(staticUltimateID)
184 Taonnor-14572
 
185 50 Taonnor-14572
    CALLBACK_MANAGER:RegisterCallback(TGU_IS_ZONE_CHANGED, TGU_GroupUltimateSelector.SetControlActive)
186 58 Taonnor-14572
    CALLBACK_MANAGER:RegisterCallback(TGU_UNIT_GROUPED_CHANGED, TGU_GroupUltimateSelector.SetControlActive)
187 14 Taonnor-14572
end