-- Addon name string NUI = {} NUI.name = "NinjaInterface" function NUI:Initialize() self.SavedVariables = ZO_SavedVars:NewAccountWide("NinjaInterface", 1, nil, {}) self:CheckVariables() self:RegisterEvents() self:SetupSlashCommands() self:SetupUpdates() self:RestorePosition() end function NUI:CheckVariables() -- Check default location if self.SavedVariables.x == nil or self.SavedVariables.bHidePing == nil then local sv = self.SavedVariables sv.x = 0 sv.y = 0 sv.bMovable = true sv.bHidePing = false sv.bHideMount = false sv.bHideBag = false sv.bHideGold = false end end function NUI:RegisterEvents() NUI:HideInMenus() EVENT_MANAGER:RegisterForEvent(self.name, EVENT_PLAYER_COMBAT_STATE, self.OnPlayerCombatState) EVENT_MANAGER:RegisterForEvent(self.name, EVENT_CHATTER_BEGIN, self.OnPlayerChatterBegin) EVENT_MANAGER:RegisterForEvent(self.name, EVENT_CHATTER_END, self.OnPlayerChatterEnd) end function NUI:SetupSlashCommands() SLASH_COMMANDS["/nui"] = NUI.SlashCommands SLASH_COMMANDS["/rl"] = ReloadUI end function SlashCommands(Args) NUI.DisplayHelp() end function NUI:SetupUpdates() -- Timed updates EVENT_MANAGER:RegisterForUpdate("NinjaUpdate1", 1000, NUI.Update1) EVENT_MANAGER:RegisterForUpdate("NinjaUpdate1", 10000, NUI.Update2) EVENT_MANAGER:RegisterForUpdate("NinjaUpdate3", 60000, NUI.Update3) -- Inital call to all updates NUI:Update1() NUI:Update2() NUI:Update3() end function NUI:DisplayHelp() d("Ninja Panel") d("|cffffff Type /nplock to lock or unlock the pane.|") d("|cffffff Type /npx to center the panel on the x axis|.") d("|cffffff Type /npy to center the panel on the y axis|.") end ------------------------ -- Updates ------------------------ -- Update every second function NUI:Update1() end -- Update every 10 seconds function NUI:Update2() end -- Update every minute function NUI:Update3() end ---------------- -- EVENTS ---------------- -- Hide when the player is talking to an npc function NUI.OnPlayerChatterBegin(eventCode, optionCount) end -- Show when the player stops talking to an npc function NUI.OnPlayerChatterEnd(eventCode) end -- Called when the addon is loaded local function OnLoad(event, AddonName) if AddonName == NUI.name then NUI:Initialize() end end -- Hide the display when in a menu function NUI:HideInMenus() local hud = SCENE_MANAGER:GetScene("hud") hud:RegisterCallback("StateChange", function(oldState, newState) if newState == SCENE_HIDDEN and SCENE_MANAGER:GetNextScene():GetName() ~= "hudui" then ---------------------------- --Place Main ui container to hide ---------------------------- end if newState == SCENE_SHOWING then ---------------------------- --Place Main ui container to hide ---------------------------- end end) end EVENT_MANAGER:RegisterForEvent(NUI.name, EVENT_ADD_ON_LOADED, OnLoad)