--[[ Addon: Taos Group Tools Author: TProg Taonnor Created by @Taonnor ]]-- --[[ Global callbacks ]]-- TGT_STYLE_CHANGED = "TGT-StyleChanged" TGT_MOVABLE_CHANGED = "TGT-MovableChanged" TGT_IS_ZONE_CHANGED = "TGT-IsZoneChanged" TGT_VISIBLE_OFFSET_CHANGED = "TGT-VisibleOffsetChanged" TGT_STATIC_ULTIMATE_ID_CHANGED = "TGT-StaticUltimateIDChanged" TGT_SWIMLANE_ULTIMATE_GROUP_ID_CHANGED = "TGT-SwimlaneUltimateGroupIdChanged" TGT_SWIMLANES_CHANGED = "TGT-SwimlanesChanged" TGT_SWIMLANE_SCALING_CHANGED = "TGT-SwimlaneScalingChanged" --[[ Local variables ]]-- local LOG_ACTIVE = false local _logger = nil local SETTINGS_VERSION = 6 --[[ Table TGT_SettingsHandler ]]-- TGT_SettingsHandler = {} TGT_SettingsHandler.__index = TGT_SettingsHandler --[[ Table Members ]]-- TGT_SettingsHandler.Name = "TGT-SettingsHandler" TGT_SettingsHandler.SettingsName = "TaosGroupToolSettings" TGT_SettingsHandler.SavedVariables = nil --[[ Sets SetStyleSettings and fires TGT_STYLE_CHANGED callbacks ]]-- function TGT_SettingsHandler.SetStyleSettings(style) if (LOG_ACTIVE) then _logger:logTrace("TGT_SettingsHandler.SetStyleSettings") _logger:logDebug("style", style) end local numberStyle = tonumber(style) if (numberStyle == 1 or numberStyle == 2 or numberStyle == 3) then TGT_SettingsHandler.SavedVariables.Style = numberStyle CALLBACK_MANAGER:FireCallbacks(TGT_STYLE_CHANGED) else _logger:logError("TGT_SettingsHandler.SetStyleSettings, invalid style " .. tostring(style)) end end --[[ Sets SetSoundSettings ]]-- function TGT_SettingsHandler.SetSoundSettings(index, sound) if (LOG_ACTIVE) then _logger:logTrace("TGT_SettingsHandler.SetSoundSettings") _logger:logDebug("index, sound", index, sound) end TGT_SettingsHandler.SavedVariables.Sound = { index, sound } end --[[ Sets StaticUltimateIDSettings and fires TGT_STATIC_ULTIMATE_ID_CHANGED callbacks ]]-- function TGT_SettingsHandler.SetStaticUltimateIDSettings(staticUltimateID) if (LOG_ACTIVE) then _logger:logTrace("TGT_SettingsHandler.StaticUltimateIDSettings") _logger:logDebug("staticUltimateID", staticUltimateID) end TGT_SettingsHandler.SavedVariables.StaticUltimateID[GetUnitName("player")] = staticUltimateID CALLBACK_MANAGER:FireCallbacks(TGT_STATIC_ULTIMATE_ID_CHANGED, staticUltimateID) end --[[ Gets StaticUltimateID ]]-- function TGT_SettingsHandler.GetStaticUltimateIDSettings() if (LOG_ACTIVE) then _logger:logTrace("TGT_SettingsHandler.GetStaticUltimateIDSettings") end foundUltimate = TGT_SettingsHandler.SavedVariables.StaticUltimateID[GetUnitName("player")] -- If not found, return default if (foundUltimate ~= nil) then return foundUltimate else return TGT_SettingsHandler.SavedVariables.StaticUltimateID["Default"] end end --[[ Sets StaticUltimateIDSettings and fires TGT_SWIMLANE_ULTIMATE_GROUP_ID_CHANGED callbacks ]]-- function TGT_SettingsHandler.SetSwimlaneUltimateGroupIdSettings(swimlane, ultimateGroup) if (LOG_ACTIVE) then _logger:logTrace("TGT_SettingsHandler.StaticUltimateIDSettings") _logger:logDebug("swimlane", swimlane) _logger:logDebug("ultimateGroup", ultimateGroup) end TGT_SettingsHandler.SavedVariables.SwimlaneUltimateGroupIds[swimlane] = ultimateGroup.GroupAbilityId CALLBACK_MANAGER:FireCallbacks(TGT_SWIMLANE_ULTIMATE_GROUP_ID_CHANGED, swimlane, ultimateGroup) end --[[ Sets StaticUltimateIDSettings and fires TGT_SWIMLANE_ULTIMATE_GROUP_ID_CHANGED callbacks ]]-- function TGT_SettingsHandler.SetSwimlanesSettings(swimlanes) if (LOG_ACTIVE) then _logger:logTrace("TGT_SettingsHandler.SetSwimlanesSettings") _logger:logDebug("swimlanes", swimlanes) end TGT_SettingsHandler.SavedVariables.Swimlanes = swimlanes CALLBACK_MANAGER:FireCallbacks(TGT_SWIMLANES_CHANGED, swimlanes) end --[[ Sets MovableSettings and fires TGT_MOVABLE_CHANGED callbacks ]]-- function TGT_SettingsHandler.SetMovableSettings(movable) if (LOG_ACTIVE) then _logger:logTrace("TGT_SettingsHandler.SetMovableSettings") _logger:logDebug("movable", movable) end TGT_SettingsHandler.SavedVariables.Movable = movable CALLBACK_MANAGER:FireCallbacks(TGT_MOVABLE_CHANGED, movable) end --[[ Sets SwimlaneScalingSettings and fires TGT_SWIMLANE_SCALING_CHANGED callbacks ]]-- function TGT_SettingsHandler.SetSwimlaneScalingSettings(scaling) if (LOG_ACTIVE) then _logger:logTrace("TGT_SettingsHandler.SetMovableSettings") _logger:logDebug("scaling", scaling) end TGT_SettingsHandler.SavedVariables.SwimlaneScaling = scaling CALLBACK_MANAGER:FireCallbacks(TGT_SWIMLANE_SCALING_CHANGED, scaling) end --[[ Sets OnlyAvaSettings and fires TGT_IS_ZONE_CHANGED callbacks ]]-- function TGT_SettingsHandler.SetOnlyAvaSettings(onlyAva) if (LOG_ACTIVE) then _logger:logTrace("TGT_SettingsHandler.SetOnlyAvaSettings") _logger:logDebug("onlyAva", onlyAva) end TGT_SettingsHandler.SavedVariables.OnlyAva = onlyAva CALLBACK_MANAGER:FireCallbacks(TGT_IS_ZONE_CHANGED) end --[[ Sets VisibleOffsetSettings and fires TGT_VISIBLE_OFFSET_CHANGED callbacks ]]-- function TGT_SettingsHandler.SetVisibleOffsetSettings(visibleOffset) if (LOG_ACTIVE) then _logger:logTrace("TGT_SettingsHandler.SetVisibleOffsetSettings") _logger:logDebug("visibleOffset", visibleOffset) end TGT_SettingsHandler.SavedVariables.VisibleOffset = visibleOffset CALLBACK_MANAGER:FireCallbacks(TGT_VISIBLE_OFFSET_CHANGED) end --[[ Sets IsSortingActiveSettings settings ]]-- function TGT_SettingsHandler.SetIsSortingActiveSettings(isSortingActive) if (LOG_ACTIVE) then _logger:logTrace("TGT_SettingsHandler.SetIsSortingActiveSettings") _logger:logDebug("isSortingActive", isSortingActive) end TGT_SettingsHandler.SavedVariables.IsSortingActive = isSortingActive end --[[ Gets SimpleList visible in connection with selected style ]]-- function TGT_SettingsHandler.IsSimpleListVisible() if (LOG_ACTIVE) then _logger:logTrace("TGT_SettingsHandler.IsSimpleListVisible") end if (TGT_SettingsHandler.SavedVariables ~= nil) then if (LOG_ACTIVE) then _logger:logDebug("style", TGT_SettingsHandler.SavedVariables.Style) end return tonumber(TGT_SettingsHandler.SavedVariables.Style) == 1 and TGT_SettingsHandler.IsControlsVisible() else _logger:logError("TGT_SettingsHandler.SavedVariables is nil") return false end end --[[ Gets SwimlaneList visible in connection with selected style ]]-- function TGT_SettingsHandler.IsSwimlaneListVisible() if (LOG_ACTIVE) then _logger:logTrace("TGT_SettingsHandler.IsSwimlaneListVisible") end if (TGT_SettingsHandler.SavedVariables ~= nil) then if (LOG_ACTIVE) then _logger:logDebug("style", TGT_SettingsHandler.SavedVariables.Style) end return tonumber(TGT_SettingsHandler.SavedVariables.Style) == 2 and TGT_SettingsHandler.IsControlsVisible() else _logger:logError("TGT_SettingsHandler.SavedVariables is nil") return false end end --[[ Gets CompactSwimlaneList visible in connection with selected style ]]-- function TGT_SettingsHandler.IsCompactSwimlaneListVisible() if (LOG_ACTIVE) then _logger:logTrace("TGT_SettingsHandler.IsCompactSwimlaneListVisible") end if (TGT_SettingsHandler.SavedVariables ~= nil) then if (LOG_ACTIVE) then _logger:logDebug("style", TGT_SettingsHandler.SavedVariables.Style) end return tonumber(TGT_SettingsHandler.SavedVariables.Style) == 3 and TGT_SettingsHandler.IsControlsVisible() else _logger:logError("TGT_SettingsHandler.SavedVariables is nil") return false end end --[[ Gets CompactSwimlaneList visible in connection with selected style ]]-- function TGT_SettingsHandler.IsControlsVisible() if (LOG_ACTIVE) then _logger:logTrace("TGT_SettingsHandler.IsControlsVisible") end if (TGT_SettingsHandler.SavedVariables ~= nil) then if (LOG_ACTIVE) then _logger:logDebug("onlyAvA", TGT_SettingsHandler.SavedVariables.OnlyAva) end if (TGT_SettingsHandler.SavedVariables.OnlyAva) then _logger:logDebug("isPlayerInAvAWorld", IsPlayerInAvAWorld()) return IsPlayerInAvAWorld() else return true end else _logger:logError("TGT_SettingsHandler.SavedVariables is nil") return false end end --[[ OnPlayerActivated fires TGT_IS_ZONE_CHANGED callbacks ]]-- function TGT_SettingsHandler.OnPlayerActivated(eventCode) if (LOG_ACTIVE) then _logger:logTrace("TGT_SettingsHandler.OnPlayerActivated") end CALLBACK_MANAGER:FireCallbacks(TGT_IS_ZONE_CHANGED) end --[[ Initialize loads SavedVariables ]]-- function TGT_SettingsHandler.Initialize(logger) if (LOG_ACTIVE) then logger:logTrace("TGT_SettingsHandler.Initialize") end _logger = logger TGT_SettingsHandler.SavedVariables = ZO_SavedVars:NewAccountWide(TGT_SettingsHandler.SettingsName, SETTINGS_VERSION, nil, TGT_DEFAULTS) -- Register EVENT_MANAGER:RegisterForEvent(TGT_SettingsHandler.Name, EVENT_PLAYER_ACTIVATED, TGT_SettingsHandler.OnPlayerActivated) end