Compare with Previous | Blame | View Log
--[[ Addon: Taos Group Tools Author: TProg Taonnor Created by @Taonnor ]]-- --[[ Local variables ]]-- local DEFAULT_ICON = "/esoui/art/icons/icon_missing.dds" local _logger = nil local _settingsHandler = TGT_SettingsHandler local _control = TGT_UltimateSelectorControl local _isActive = false --[[ Table GroupUltimateSelector ]]-- TGT_GroupUltimateSelector = {} TGT_GroupUltimateSelector.__index = TGT_GroupUltimateSelector --[[ =============== PRIVATE METHODS =============== ]]-- --[[ SetUltimateIcon sets the button icon in base of staticUltimateID ]]-- local function SetUltimateIcon(staticUltimateID) local icon = DEFAULT_ICON if (staticUltimateID ~= 0) then icon = GetAbilityIcon(staticUltimateID) end local iconControl = _control:GetNamedChild("SelectorButtonControl"):GetNamedChild("Icon") if (icon ~= nil and iconControl ~= nil) then iconControl:SetTexture(icon) end end --[[ SetControlMovable sets the Movable and MouseEnabled flag in UI elements ]]-- local function SetControlMovable() local isMovable = _settingsHandler.SavedVariables.Movable _control:GetNamedChild("MovableControl"):SetHidden(isMovable == false) _control:SetMovable(isMovable) _control:SetMouseEnabled(isMovable) end --[[ RestorePosition sets TGT_GroupUltimateSelector on settings position ]]-- local function RestorePosition() local posX = _settingsHandler.SavedVariables.Position[GROUP_ULTIMATE_SELECTOR].PosX local posY = _settingsHandler.SavedVariables.Position[GROUP_ULTIMATE_SELECTOR].PosY _control:ClearAnchors() _control:SetAnchor(TOPLEFT, GuiRoot, TOPLEFT, posX, posY) end --[[ OnSetUltimateGroup sets ultimate group for button ]]-- local function OnSetUltimateGroup(group) CALLBACK_MANAGER:UnregisterCallback(TGT_SET_ULTIMATE_GROUP, OnSetUltimateGroup) if (group ~= nil) then _settingsHandler.SetStaticUltimateIDSettings(group.GroupAbilityId) end end --[[ SetControlHidden sets hidden on control ]]-- local function SetControlHidden() -- Get isActive from settings if (_settingsHandler.SavedVariables.IsSendingDataActive) then if (GetIsUnitGrouped()) then _control:SetHidden(CurrentHudHiddenState()) else _control:SetHidden(true) end else _control:SetHidden(true) end end --[[ SetControlActive activates/deactivates control ]]-- local function SetControlActive() SetControlHidden() -- Get isActive from settings local isActive = _settingsHandler.SavedVariables.IsSendingDataActive if (_isActive ~= isActive) then _isActive = isActive if (isActive) then SetControlMovable() RestorePosition() SetUltimateIcon(_settingsHandler.GetStaticUltimateIDSettings()) CALLBACK_MANAGER:RegisterCallback(TGT_MOVABLE_CHANGED, SetControlMovable) CALLBACK_MANAGER:RegisterCallback(TGT_STATIC_ULTIMATE_ID_CHANGED, SetUltimateIcon) CALLBACK_MANAGER:RegisterCallback(TAO_HUD_HIDDEN_STATE_CHANGED, SetControlHidden) else CALLBACK_MANAGER:UnregisterCallback(TGT_MOVABLE_CHANGED, SetControlMovable) CALLBACK_MANAGER:UnregisterCallback(TGT_STATIC_ULTIMATE_ID_CHANGED, SetUltimateIcon) CALLBACK_MANAGER:UnregisterCallback(TAO_HUD_HIDDEN_STATE_CHANGED, SetControlHidden) end end end --[[ ============== PUBLIC METHODS ============== ]]-- --[[ OnTGT_GroupUltimateSelectorMoveStop saves current TGT_GroupUltimateSelector position to settings ]]-- function TGT_GroupUltimateSelector.OnGroupUltimateSelectorMoveStop() local left = _control:GetLeft() local top = _control:GetTop() _settingsHandler.SavedVariables.Position[GROUP_ULTIMATE_SELECTOR].PosX = left _settingsHandler.SavedVariables.Position[GROUP_ULTIMATE_SELECTOR].PosY = top end --[[ OnGroupUltimateSelectorClicked shows ultimate group menu ]]-- function TGT_GroupUltimateSelector.OnGroupUltimateSelectorClicked() local button = _control:GetNamedChild("SelectorButtonControl"):GetNamedChild("Button") if (button ~= nil) then CALLBACK_MANAGER:RegisterCallback(TGT_SET_ULTIMATE_GROUP, OnSetUltimateGroup) FireCallbacksAsync(TGT_SHOW_ULTIMATE_GROUP_MENU, button) end end --[[ Initialize initializes TGT_GroupUltimateSelector ]]-- function TGT_GroupUltimateSelector.Initialize() _logger = TGT_LOGGER SetUltimateIcon(staticUltimateID) SetControlActive() CALLBACK_MANAGER:RegisterCallback(TGT_IS_ZONE_CHANGED, SetControlActive) CALLBACK_MANAGER:RegisterCallback(TGT_SENDING_CHANGED, SetControlActive) CALLBACK_MANAGER:RegisterCallback(TGT_PLAYER_ACTIVATED, SetControlActive) CALLBACK_MANAGER:RegisterCallback(TAO_UNIT_GROUPED_CHANGED, SetControlActive) CALLBACK_MANAGER:RegisterCallback(TGT_GROUP_ULTIMATE_ENABLED_CHANGED, SetControlActive) _logger:logTrace("TGT_GroupUltimateSelector -> Initialized") end