ESOUI SVN TaosGroupUltimate

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

Go to most recent revision | Compare with Previous | Blame | View Log

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

--[[
        Global variables
]]--
local LOG_ACTIVE = false
local SETTINGS_VERSION = 3

--[[
        Class SettingsHandler
]]--
SettingsHandler = {}
SettingsHandler.__index = SettingsHandler

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

--[[
        Class Members
]]--

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

    local numberStyle = tonumber(style)

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

        CALLBACK_MANAGER:FireCallbacks("TGU-StyleChanged")
    else
        logError("SettingsHandler.SetStyleSettings, invalid style " .. tostring(style))
    end
end

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

    SettingsHandler.SavedVariables.StaticUltimateID = staticUltimateID

    CALLBACK_MANAGER:FireCallbacks("TGU-StaticUltimateIDChanged", staticUltimateID)
end

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

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

    CALLBACK_MANAGER:FireCallbacks("TGU-SwimlaneUltimateGroupIdChanged", swimlane, ultimateGroup)
end

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

    SettingsHandler.SavedVariables.Movable = movable

    CALLBACK_MANAGER:FireCallbacks("TGU-MovableChanged", movable)
end

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

    SettingsHandler.SavedVariables.OnlyAva = onlyAva

    CALLBACK_MANAGER:FireCallbacks("TGU-IsZoneChanged")
end

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

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

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

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

--[[
        UpdateZone sends IsZoneChanged event
]]--
function SettingsHandler.UpdateZone(eventCode)
    if (LOG_ACTIVE) then 
        TAPS_logTrace("SettingsHandler.UpdateZone")
    end

    CALLBACK_MANAGER:FireCallbacks("TGU-IsZoneChanged")
end

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

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

    -- Register
    EVENT_MANAGER:RegisterForEvent(SettingsHandler.Name, EVENT_PLAYER_ACTIVATED, SettingsHandler.UpdateZone)
end

Go to most recent revision | Compare with Previous | Blame