Compare with Previous | Blame | View Log
local AceConfigDialog = LibStub("AceConfigDialog-3.0") local AceConfig = LibStub("AceConfig-3.0") local L = LibStub("AceLocale-3.0"):GetLocale("MountRandomMount") local MRM_OptionsTable = { name = "MountRandomMount", handler = MountRandomMount, type = "group", args = {--MountRandomMount desc = { order = 1, name = L['MRMCommands'], fontSize = "medium", type = "description" }, enableFlyEverywere = { order = 2, name = L['Flying will be random with land mount in area where flying is not enable.'], type = "toggle", set = function(info,val) MountRandomMount_SavedTable['enableFlyEverywere'] = val end, get = function(info) if MountRandomMount_SavedTable['enableFlyEverywere'] == nil then MountRandomMount_SavedTable['enableFlyEverywere'] = false end return MountRandomMount_SavedTable['enableFlyEverywere'] end } } } local tableAccents = {} tableAccents["à "] = "a" tableAccents["á"] = "a" tableAccents["â"] = "a" tableAccents["ã"] = "a" tableAccents["ä"] = "a" tableAccents["ç"] = "c" tableAccents["è"] = "e" tableAccents["é"] = "e" tableAccents["ê"] = "e" tableAccents["ë"] = "e" tableAccents["ì"] = "i" tableAccents["Ã"] = "i" tableAccents["î"] = "i" tableAccents["ï"] = "i" tableAccents["ñ"] = "n" tableAccents["ò"] = "o" tableAccents["ó"] = "o" tableAccents["ô"] = "o" tableAccents["õ"] = "o" tableAccents["ö"] = "o" tableAccents["ù"] = "u" tableAccents["ú"] = "u" tableAccents["û"] = "u" tableAccents["ü"] = "u" tableAccents["ý"] = "y" tableAccents["ÿ"] = "y" tableAccents["Ã"] = "A" tableAccents["Ã"] = "A" tableAccents["Ã"] = "A" tableAccents["Ã"] = "A" tableAccents["Ã"] = "A" tableAccents["Ã"] = "C" tableAccents["Ã"] = "E" tableAccents["Ã"] = "E" tableAccents["Ã"] = "E" tableAccents["Ã"] = "E" tableAccents["Ã"] = "I" tableAccents["Ã"] = "I" tableAccents["Ã"] = "I" tableAccents["Ã"] = "I" tableAccents["Ã"] = "N" tableAccents["Ã"] = "O" tableAccents["Ã"] = "O" tableAccents["Ã"] = "O" tableAccents["Ã"] = "O" tableAccents["Ã"] = "O" tableAccents["Ã"] = "U" tableAccents["Ã"] = "U" tableAccents["Ã"] = "U" tableAccents["Ã"] = "U" tableAccents["Ã"] = "Y" -- Strip accents from a string function string.stripAccents( str ) local normalizedString = "" for strChar in string.gmatch(str, "([%z\1-\127\194-\244][\128-\191]*)") do if tableAccents[strChar] ~= nil then normalizedString = normalizedString..tableAccents[strChar] else normalizedString = normalizedString..strChar end end return normalizedString end --POPULATE GROUND MOUNTS OPTIONS function MountRandomMount:GroundFrame() local optionTable = {} local allmounts = {} local allMountsOrder = {} local EnableMounts = {} local sourcesort = {} local sources, mounts, k, v, j, i, sourceTxt for sources, mounts in pairs(MountRandomMount_MountDataList["ground"]) do local optionTableMount = {} i = 0 table.foreach(mounts, function(k,v) optionTableMount['mount'..v..k] = { order = k, name = v, type = "toggle", set = function(info,val) if val then print(v.." "..L['MRMLandAdded']) table.insert(MountRandomMount_SavedTable['ground'], k) else for iSaved, vSaved in pairs(MountRandomMount_SavedTable['ground']) do if vSaved == k then print(v.." "..L['MRMLandRemoved']) table.remove(MountRandomMount_SavedTable['ground'], iSaved) break end end end end, get = function(info) for iSaved, vSaved in pairs(MountRandomMount_SavedTable['ground']) do if vSaved == k then return true end end return false end } table.insert(allMountsOrder, 'mount'..v..k) i = 1 allmounts['mount'..v..k] = optionTableMount['mount'..v..k] for iSaved, vSaved in pairs(_G['MountRandomMount_SavedTable']['ground']) do if vSaved == k then EnableMounts['mount'..v..k] = optionTableMount['mount'..k] end end end) if i ~= 0 then if sources ~= 0 then sourceTxt = _G["BATTLE_PET_SOURCE_"..sources] else sourceTxt = 'API BUG' end table.insert(sourcesort, sourceTxt) optionTable[sourceTxt] = { name = sourceTxt, type = "group", handler = MountRandomMount, childGroups = "tab", args = optionTableMount } end end table.sort(sourcesort, function(a, b) return string.stripAccents(a)<string.stripAccents(b) end) j=3 table.foreach(sourcesort, function(k,v) optionTable[v].order = j j=j+1 end) table.sort(allMountsOrder) j=1 table.foreach(allMountsOrder, function(k,v) allmounts[v].order = j j=j+1 end) optionTable['All'] = { name = L['All'], order = 1, type = "group", handler = MountRandomMount, childGroups = "tab", args = allmounts } optionTable['Enabled'] = { name = L['Enabled'], desc = L['This panel is only updated when you reload the UI or at loggin.'], order = 0, type = "group", handler = _G['MountRandomMount'], childGroups = "tab", args = EnableMounts } return { name = L["Ground Mount"], handler = MountRandomMount, type = "group", args = optionTable } end --POPULATE FLYING MOUNTS OPTIONS function MountRandomMount:FlyingFrame() local optionTable = {} local allmounts = {} local allMountsOrder = {} local EnableMounts = {} local sourcesort = {} local sources, mounts, k, v, j, i, sourceTxt for sources, mounts in pairs(MountRandomMount_MountDataList["flying"]) do local optionTableMount = {} i = 0 table.foreach(mounts, function(k,v) optionTableMount['mount'..v..k] = { order = k, name = v, type = "toggle", set = function(info,val) if val then print(v.." "..L['MRMFlyingAdded']) table.insert(MountRandomMount_SavedTable['flying'], k) else for iSaved, vSaved in pairs(MountRandomMount_SavedTable['flying']) do if vSaved == k then print(v.." "..L['MRMFlyingRemoved']) table.remove(MountRandomMount_SavedTable['flying'], iSaved) break end end end end, get = function(info) for iSaved, vSaved in pairs(MountRandomMount_SavedTable['flying']) do if vSaved == k then return true end end return false end } table.insert(allMountsOrder, 'mount'..v..k) i = 1 allmounts['mount'..v..k] = optionTableMount['mount'..v..k] for iSaved, vSaved in pairs(_G['MountRandomMount_SavedTable']['flying']) do if vSaved == k then EnableMounts['mount'..v..k] = optionTableMount['mount'..k] end end end) if i ~= 0 then if sources ~= 0 then sourceTxt = _G["BATTLE_PET_SOURCE_"..sources] else sourceTxt = 'API BUG' end table.insert(sourcesort, sourceTxt) optionTable[sourceTxt] = { name = sourceTxt, type = "group", handler = MountRandomMount, childGroups = "tab", args = optionTableMount } end end table.sort(sourcesort, function(a, b) return string.stripAccents(a)<string.stripAccents(b) end) j=3 table.foreach(sourcesort, function(k,v) optionTable[v].order = j j=j+1 end) table.sort(allMountsOrder) j=1 table.foreach(allMountsOrder, function(k,v) allmounts[v].order = j j=j+1 end) optionTable['All'] = { name = L['All'], order = 1, type = "group", handler = MountRandomMount, childGroups = "tab", args = allmounts } optionTable['Enabled'] = { name = L['Enabled'], desc = L['This panel is only updated when you reload the UI or at loggin.'], order = 0, type = "group", handler = _G['MountRandomMount'], childGroups = "tab", args = EnableMounts } return { name = L["Flying Mount"], handler = MountRandomMount, type = "group", args = optionTable } end function MountRandomMount:ResetOptions() MountRandomMount_SavedTable['ground'] = {} MountRandomMount_SavedTable['flying'] = {} end function MountRandomMount:PlayerMounts() _G['playerMountArray'] = {} local mounts = C_MountJournal.GetMountIDs() _G['MountRandomMount_SeaTurtleHave'] = true if MountRandomMount_MountDataAquatic[420] ~= nil then--Hippocampe assujetti _G['MountRandomMount_SeaTurtleID'] = 420 elseif MountRandomMount_MountDataAquatic[838] ~= nil then--Fathom Dweller _G['MountRandomMount_SeaTurtleID'] = 838 elseif MountRandomMount_MountDataAquatic[800] ~= nil then--Brinedeep Bottom-Feeder _G['MountRandomMount_SeaTurtleID'] = 800 elseif MountRandomMount_MountDataAquatic[312] ~= nil then--Tortue de mer _G['MountRandomMount_SeaTurtleID'] = 312 elseif MountRandomMount_MountDataAquatic[125] ~= nil then--Tortue de monte _G['MountRandomMount_SeaTurtleID'] = 125 else _G['MountRandomMount_SeaTurtleHave'] = false end if MountRandomMount_MountDataAquatic[373] ~= nil then--Hippocampe de Vashjâir _G['MountRandomMount_SeaHorseID'] = 373 _G['MountRandomMount_SeaHorseHave'] = true else _G['MountRandomMount_SeaHorseHave'] = false end end function MountRandomMount:PLAYER_LOGIN() MountRandomMount:MountDataListFill() if(MountRandomMount_SavedTable['ground'] == nil)then MountRandomMount_SavedTable['ground'] = {} end if(MountRandomMount_SavedTable['flying'] == nil)then MountRandomMount_SavedTable['flying'] = {} end MountRandomMount:PlayerMounts() AceConfig:RegisterOptionsTable("MountRandomMount", MRM_OptionsTable) AceConfig:RegisterOptionsTable("MountRandomMount_Ground", MountRandomMount:GroundFrame()) AceConfig:RegisterOptionsTable("MountRandomMount_Flying", MountRandomMount:FlyingFrame()) local SetDefaultOpttion = AceConfigDialog:AddToBlizOptions("MountRandomMount","MountRandomMount") SetDefaultOpttion.default = function() MountRandomMount:ResetOptions() end SetDefaultOpttion = AceConfigDialog:AddToBlizOptions("MountRandomMount_Ground",L["Ground Mount"],"MountRandomMount") SetDefaultOpttion.default = function() MountRandomMount:ResetOptions() end SetDefaultOpttion = AceConfigDialog:AddToBlizOptions("MountRandomMount_Flying",L["Flying Mount"],"MountRandomMount") SetDefaultOpttion.default = function() MountRandomMount:ResetOptions() end end function MountRandomMount:COMPANION_LEARNED() MountRandomMount:PlayerMounts() end function MountRandomMount:OnInitialize() MountRandomMount:RegisterEvent("PLAYER_LOGIN") MountRandomMount:RegisterEvent("COMPANION_LEARNED") end