ESOUI SVN TaosGroupUltimate

[/] [trunk/] [TaosGroupUltimate/] [logic/] [SettingsHandler.lua] - Rev 56

Compare with Previous | Blame | View Log

--[[
        Addon: Taos Group Ultimate
        Author: TProg Taonnor
        Created by @Taonnor
]]--

--[[
        Local variables
]]--
local LOG_ACTIVE = false
local _logger = nil

local SETTINGS_VERSION = 5

--[[
        Table TGU_SettingsHandler
]]--
TGU_SettingsHandler = {}
TGU_SettingsHandler.__index = TGU_SettingsHandler

--[[
        Table Members
]]--
TGU_SettingsHandler.Name = "TGU-SettingsHandler"
TGU_SettingsHandler.SettingsName = "TaosGroupUltimateSettings"
TGU_SettingsHandler.SavedVariables = nil
TGU_SettingsHandler.Default = 
{
    ["PosX"] = 0,
    ["PosY"] = 0,
    ["SelectorPosX"] = 0,
    ["SelectorPosY"] = 0,
    ["OnlyAva"] = false,
    ["IsLgsActive"] = false,
    ["IsSortingActive"] = false,
    ["Movable"] = true,
    ["Style"] = 3,
    ["StaticUltimateID"] = 29861,
    ["SwimlaneUltimateGroupIds"] =
    {
        [1] = 29861,
        [2] = 27413,
        [3] = 86536,
        [4] = 86112,
        [5] = 46537,
        [6] = 46622,
    },
}

--[[
        Sets SetStyleSettings and fires TGU-StyleChanged callbacks
]]--
function TGU_SettingsHandler.SetStyleSettings(style)
    if (LOG_ACTIVE) then 
        _logger:logTrace("TGU_SettingsHandler.SetStyleSettings")
        _logger:logDebug("style", style)
    end

    local numberStyle = tonumber(style)

    if (numberStyle == 1 or numberStyle == 2 or numberStyle == 3) then
        TGU_SettingsHandler.SavedVariables.Style = numberStyle

        CALLBACK_MANAGER:FireCallbacks(TGU_STYLE_CHANGED)
    else
        _logger:logError("TGU_SettingsHandler.SetStyleSettings, invalid style " .. tostring(style))
    end
end

--[[
        Sets MovableSettings and fires TGU-MovableChanged callbacks
]]--
function TGU_SettingsHandler.SetStaticUltimateIDSettings(staticUltimateID)
    if (LOG_ACTIVE) then 
        _logger:logTrace("TGU_SettingsHandler.StaticUltimateIDSettings")
        _logger:logDebug("staticUltimateID", staticUltimateID)
    end

    TGU_SettingsHandler.SavedVariables.StaticUltimateID = staticUltimateID

    CALLBACK_MANAGER:FireCallbacks(TGU_STATIC_ULTIMATE_ID_CHANGED, staticUltimateID)
end

--[[
        Sets MovableSettings and fires TGU-MovableChanged callbacks
]]--
function TGU_SettingsHandler.SetSwimlaneUltimateGroupIdSettings(swimlane, ultimateGroup)
    if (LOG_ACTIVE) then 
        _logger:logTrace("TGU_SettingsHandler.StaticUltimateIDSettings")
        _logger:logDebug("swimlane", swimlane)
        _logger:logDebug("ultimateGroup", ultimateGroup)
    end

    TGU_SettingsHandler.SavedVariables.SwimlaneUltimateGroupIds[swimlane] = ultimateGroup.GroupAbilityId

    CALLBACK_MANAGER:FireCallbacks(TGU_SWIMLANE_ULTIMATE_GROUP_ID_CHANGED, swimlane, ultimateGroup)
end

--[[
        Sets MovableSettings and fires TGU-MovableChanged callbacks
]]--
function TGU_SettingsHandler.SetMovableSettings(movable)
    if (LOG_ACTIVE) then 
        _logger:logTrace("TGU_SettingsHandler.SetMovableSettings")
        _logger:logDebug("movable", movable)
    end

    TGU_SettingsHandler.SavedVariables.Movable = movable

    CALLBACK_MANAGER:FireCallbacks(TGU_MOVABLE_CHANGED, movable)
end

--[[
        Sets MovableSettings and fires TGU-MovableChanged callbacks
]]--
function TGU_SettingsHandler.SetOnlyAvaSettings(onlyAva)
    if (LOG_ACTIVE) then 
        _logger:logTrace("TGU_SettingsHandler.SetOnlyAvaSettings")
        _logger:logDebug("onlyAva", onlyAva)
    end

    TGU_SettingsHandler.SavedVariables.OnlyAva = onlyAva

    CALLBACK_MANAGER:FireCallbacks(TGU_IS_ZONE_CHANGED)
end

--[[
        Sets IsLgsActive settings
]]--
function TGU_SettingsHandler.SetIsLgsActiveSettings(isLgsActive)
    if (LOG_ACTIVE) then 
        _logger:logTrace("TGU_SettingsHandler.SetIsLgsActiveSettings")
        _logger:logDebug("isLgsActive", isLgsActive)
    end

    TGU_SettingsHandler.SavedVariables.IsLgsActive = isLgsActive
end

--[[
        Sets IsSortingActive settings
]]--
function TGU_SettingsHandler.SetIsSortingActiveSettings(isSortingActive)
    if (LOG_ACTIVE) then 
        _logger:logTrace("TGU_SettingsHandler.SetIsLgsActiveSettings")
        _logger:logDebug("isSortingActive", isSortingActive)
    end

    TGU_SettingsHandler.SavedVariables.IsSortingActive = isSortingActive
end

--[[
        Gets SimpleList visible in connection with selected style
]]--
function TGU_SettingsHandler.IsSimpleListVisible()
    if (LOG_ACTIVE) then _logger:logTrace("TGU_SettingsHandler.IsSimpleListVisible") end
    if (TGU_SettingsHandler.SavedVariables ~= nil) then
        if (LOG_ACTIVE) then _logger:logDebug("style", TGU_SettingsHandler.SavedVariables.Style) end
        return tonumber(TGU_SettingsHandler.SavedVariables.Style) == 1 and TGU_SettingsHandler.IsControlsVisible()
    else
        _logger:logError("TGU_SettingsHandler.SavedVariables is nil")
        return false
    end
end

--[[
        Gets SwimlaneList visible in connection with selected style
]]--
function TGU_SettingsHandler.IsSwimlaneListVisible()
    if (LOG_ACTIVE) then _logger:logTrace("TGU_SettingsHandler.IsSwimlaneListVisible") end
    if (TGU_SettingsHandler.SavedVariables ~= nil) then
        if (LOG_ACTIVE) then _logger:logDebug("style", TGU_SettingsHandler.SavedVariables.Style) end
        return tonumber(TGU_SettingsHandler.SavedVariables.Style) == 2 and TGU_SettingsHandler.IsControlsVisible()
    else
        _logger:logError("TGU_SettingsHandler.SavedVariables is nil")
        return false
    end
end

--[[
        Gets CompactSwimlaneList visible in connection with selected style
]]--
function TGU_SettingsHandler.IsCompactSwimlaneListVisible()
    if (LOG_ACTIVE) then _logger:logTrace("TGU_SettingsHandler.IsCompactSwimlaneListVisible") end
    if (TGU_SettingsHandler.SavedVariables ~= nil) then
        if (LOG_ACTIVE) then _logger:logDebug("style", TGU_SettingsHandler.SavedVariables.Style) end
        return tonumber(TGU_SettingsHandler.SavedVariables.Style) == 3 and TGU_SettingsHandler.IsControlsVisible()
    else
        _logger:logError("TGU_SettingsHandler.SavedVariables is nil")
        return false
    end
end

--[[
        Gets CompactSwimlaneList visible in connection with selected style
]]--
function TGU_SettingsHandler.IsControlsVisible()
    if (LOG_ACTIVE) then _logger:logTrace("TGU_SettingsHandler.IsControlsVisible") end
    if (TGU_SettingsHandler.SavedVariables ~= nil) then
        if (LOG_ACTIVE) then _logger:logDebug("onlyAvA", TGU_SettingsHandler.SavedVariables.OnlyAva) end
        if (TGU_SettingsHandler.SavedVariables.OnlyAva) then
            _logger:logDebug("isPlayerInAvAWorld", IsPlayerInAvAWorld())
            return IsPlayerInAvAWorld()
        else
            return true
        end
    else
        _logger:logError("TGU_SettingsHandler.SavedVariables is nil")
        return false
    end
end

--[[
        OnPlayerActivated sends IsZoneChanged event
]]--
function TGU_SettingsHandler.OnPlayerActivated(eventCode)
    if (LOG_ACTIVE) then 
        _logger:logTrace("TGU_SettingsHandler.OnPlayerActivated")
    end

    CALLBACK_MANAGER:FireCallbacks(TGU_IS_ZONE_CHANGED)
end

--[[
        Initialize loads SavedVariables
]]--
function TGU_SettingsHandler.Initialize(logger)
    if (LOG_ACTIVE) then logger:logTrace("TGU_SettingsHandler.Initialize") end

    _logger = logger

    TGU_SettingsHandler.SavedVariables = ZO_SavedVars:NewAccountWide(TGU_SettingsHandler.SettingsName, SETTINGS_VERSION, nil, TGU_SettingsHandler.Default)

    -- Register
    EVENT_MANAGER:RegisterForEvent(TGU_SettingsHandler.Name, EVENT_PLAYER_ACTIVATED, TGU_SettingsHandler.OnPlayerActivated)
end

Compare with Previous | Blame