------------------------------------------------------------------
--FCOGuildBankQuickSelect.lua
--Author: Baertram
--v0.0.1
--[[
Quickly select the guild bank by numbers 1-5 (at an opened guild bank selection)
]]
------------------------------------------------------------------
--Array for all the variables
local locVars = {}
--Uncolored "FCOIS" pre chat text for the chat output
locVars.preChatText = "FCOGuildBankQuickSelect"
--Green colored "FCOIS" pre text for the chat output
locVars.preChatTextGreen = "|c22DD22"..locVars.preChatText.."|r "
--Red colored "FCOIS" pre text for the chat output
locVars.preChatTextRed = "|cDD2222"..locVars.preChatText.."|r "
--Blue colored "FCOIS" pre text for the chat output
locVars.preChatTextBlue = "|c2222DD"..locVars.preChatText.."|r "
--Addon variables
local addonVars = {}
addonVars.gAddonName = "FCOGuildBankQuickSelect"
addonVars.addonNameMenu = "FCO GuildBankQuickSelect"
addonVars.addonNameMenuDisplay = "|c00FF00FCO |cFFFF00GuildBankQuickSelect|r"
addonVars.addonAuthor = '|cFFFF00Baertram|r'
addonVars.addonVersion = 0.01 -- Changing this will reset SavedVariables!
addonVars.addonVersionOptions = '0.0.1' -- version shown in the settings panel
addonVars.addonSavedVariablesName = "FCOGuildBankQuickSelect_Settings"
addonVars.gAddonLoaded = false
--Original/Backup avriables
local origVars = {}
origVars.GuildBankSelectorOnKeyDown = nil
origVars.GuildBankSelectorOnKeyUp = nil
--Control names of ZO* standard controls etc.
local GUILDBANK_SELECT_POPUP = ZO_SelectGuildBankDialog
--local GUILDBANK_SELECT_POPUP_UNDERLAY = ZO_SelectGuildBankDialogModalUnderlay
local GUILDBANK_SELECT_POPUP_GUILD = ZO_SelectGuildBankDialogGuild
local GUILDBANK_SELECT_POPUP_GUILD_COMBOBOX = GUILDBANK_SELECT_POPUP_GUILD.m_comboBox
local GUILDBANK_SELECT_POPUP_ACCEPT = ZO_SelectGuildBankDialogAccept
local GUILDBANK_SELECT_POPUP_ABORT = ZO_SelectGuildBankDialogCancel
--===================== FUNCTIONS ==============================================
-- set handlers for keyboard events:
local function FCOGuildBankQuickSelect_HandleKeyboardEvents(self, key, hide)
if key == KEY_1 or key == KEY_NUMPAD1 then
if GUILDBANK_SELECT_POPUP_GUILD_COMBOBOX then
GUILDBANK_SELECT_POPUP_GUILD_COMBOBOX:SelectItemByIndex(1)
end
elseif key == KEY_2 or key == KEY_NUMPAD2 then
if GUILDBANK_SELECT_POPUP_GUILD_COMBOBOX then
GUILDBANK_SELECT_POPUP_GUILD_COMBOBOX:SelectItemByIndex(2)
end
elseif key == KEY_3 or key == KEY_NUMPAD3 then
if GUILDBANK_SELECT_POPUP_GUILD_COMBOBOX then
GUILDBANK_SELECT_POPUP_GUILD_COMBOBOX:SelectItemByIndex(3)
end
elseif key == KEY_4 or key == KEY_NUMPAD4 then
if GUILDBANK_SELECT_POPUP_GUILD_COMBOBOX then
GUILDBANK_SELECT_POPUP_GUILD_COMBOBOX:SelectItemByIndex(4)
end
elseif key == KEY_5 or key == KEY_NUMPAD5 then
if GUILDBANK_SELECT_POPUP_GUILD_COMBOBOX then
GUILDBANK_SELECT_POPUP_GUILD_COMBOBOX:SelectItemByIndex(5)
end
end
return false
end
--un/register guild bank selection popup tweaks
local function registerGuildBankSelectionTweaks(doRegister)
if doRegister then
GUILDBANK_SELECT_POPUP:SetKeyboardEnabled(true)
--Register the OnKeyPressed function for the guild bank select dialog
ZO_PreHookHandler(GUILDBANK_SELECT_POPUP, 'OnKeyUp', function(self, key, ctrl, alt, shift, command) FCOGuildBankQuickSelect_HandleKeyboardEvents(self, key, true) end)
else
--Unregister
GUILDBANK_SELECT_POPUP_GUILD:SetHandler("OnKeyUp", function(self, key, ctrl, alt, shift, command) origVars.GuildBankSelectorOnKeyUp(self, key, true) end)
end
end
--==============================================================================
--==================== START EVENT CALLBACK FUNCTIONS===========================
--==============================================================================
--Event function if guild bank is opened
local function FCOGuildBankQuickSelect_Open_Guild_Bank()
registerGuildBankSelectionTweaks(true)
end
--Event function if guild bank is closed
local function FCOGuildBankQuickSelect_Close_Guild_Bank()
registerGuildBankSelectionTweaks(false)
end
-- Fires each time after addons were loaded and player is ready to move (after each zone change too)
local function FCOGuildBankQuickSelect_Player_Activated(...)
--Prevent this event to be fired again and again upon each zone change
EVENT_MANAGER:UnregisterForEvent(addonVars.gAddonName, EVENT_PLAYER_ACTIVATED)
--Backup the original handler
origVars.GuildBankSelectorOnKeyDown = GUILDBANK_SELECT_POPUP:GetHandler("OnKeyDown")
origVars.GuildBankSelectorOnKeyUp = GUILDBANK_SELECT_POPUP:GetHandler("OnKeyUp")
--Set addon loaded = false
addonVars.gAddonLoaded = false
end
--==============================================================================
--===== HOOKS BEGIN ============================================================
--==============================================================================
--Create the hooks & pre-hooks
local function CreateHooks()
--nothing here atm
end
--Addon loads up
local function FCOGuildBankQuickSelect_Loaded(eventCode, addOnName)
--Is this addon found?
if(addOnName ~= addonVars.gAddonName) then
return
end
--Unregister this event again so it isn't fired again after this addon has beend reckognized
EVENT_MANAGER:UnregisterForEvent(addonVars.gAddonName, EVENT_ADD_ON_LOADED)
addonVars.gAddonLoaded = true
end
-- Register the event "addon loaded" for this addon
local function FCOGuildBankQuickSelect_Initialized()
EVENT_MANAGER:RegisterForEvent(addonVars.gAddonName, EVENT_ADD_ON_LOADED, FCOGuildBankQuickSelect_Loaded)
--Register for the zone change/player ready event
EVENT_MANAGER:RegisterForEvent(addonVars.gAddonName, EVENT_PLAYER_ACTIVATED, FCOGuildBankQuickSelect_Player_Activated)
--Register for Guild Bank opened & closed
EVENT_MANAGER:RegisterForEvent(addonVars.gAddonName, EVENT_OPEN_GUILD_BANK, FCOGuildBankQuickSelect_Open_Guild_Bank)
EVENT_MANAGER:RegisterForEvent(addonVars.gAddonName, EVENT_CLOSE_GUILD_BANK, FCOGuildBankQuickSelect_Close_Guild_Bank)
end
--------------------------------------------------------------------------------
--- Call the start function for this addon to register events etc.
--------------------------------------------------------------------------------
FCOGuildBankQuickSelect_Initialized()