/trunk
IN THE SOFTWARE. |
]] |
local MAJOR, MINOR = "LibPetJournal-2.0", 32 |
local MAJOR, MINOR = "LibPetJournal-2.0", 33 |
local lib, oldminor = LibStub:NewLibrary(MAJOR, MINOR) |
if not lib then return end |
= assert, GetTime, hooksecurefunc, ipairs, IsLoggedIn, pairs, tinsert, wipe |
local C_PetJournal = _G.C_PetJournal |
local is_lt_70 = select(4, GetBuildInfo()) < 70000 |
local PJLU_TIMEOUT = 1 |
-- |
do |
local PJ_FLAG_FILTERS = { |
-- WoW<7.0 -- LE_PET_JOURNAL_FLAG_COLLECTED/LE_PET_JOURNAL_FLAG_NOT_COLLECTED |
[LE_PET_JOURNAL_FLAG_COLLECTED or LE_PET_JOURNAL_FILTER_COLLECTED] = true, |
[LE_PET_JOURNAL_FLAG_NOT_COLLECTED or LE_PET_JOURNAL_FILTER_NOT_COLLECTED] = true, |
[LE_PET_JOURNAL_FILTER_COLLECTED] = true, |
[LE_PET_JOURNAL_FILTER_NOT_COLLECTED] = true, |
} |
if _G.PetJournal then |
_G.PetJournal:UnregisterEvent("PET_JOURNAL_LIST_UPDATE") |
end |
if is_lt_70 then |
lib.event_frame:UnregisterEvent("PET_JOURNAL_LIST_UPDATE") |
end |
for flag, value in pairs(PJ_FLAG_FILTERS) do |
if C_PetJournal.IsFlagFiltered then |
-- WoW<7.0 |
flag_filters[flag] = not C_PetJournal.IsFlagFiltered(flag) |
else |
flag_filters[flag] = C_PetJournal.IsFilterChecked(flag) |
end |
flag_filters[flag] = C_PetJournal.IsFilterChecked(flag) |
if flag_filters[flag] ~= value then |
if C_PetJournal.SetFlagFilter then |
-- WoW<7.0 |
C_PetJournal.SetFlagFilter(flag, value) |
else |
C_PetJournal.SetFilterChecked(flag, value) |
end |
C_PetJournal.SetFilterChecked(flag, value) |
has_changes = true |
end |
end |
local need_add_all = false |
local ntypes = C_PetJournal.GetNumPetTypes() |
for i=1,ntypes do |
if C_PetJournal.IsPetTypeFiltered then |
-- WoW<7.0 |
type_filters[i] = not C_PetJournal.IsPetTypeFiltered(i) |
else |
type_filters[i] = C_PetJournal.IsPetTypeChecked(i) |
end |
type_filters[i] = C_PetJournal.IsPetTypeChecked(i) |
if not type_filters[i] then |
need_add_all = true |
end |
end |
if need_add_all then |
if C_PetJournal.AddAllPetTypesFilter then |
-- WoW<7.0 |
C_PetJournal.AddAllPetTypesFilter() |
else |
C_PetJournal.SetAllPetTypesChecked(true) |
end |
C_PetJournal.SetAllPetTypesChecked(true) |
has_changes = true |
end |
need_add_all = false |
local nsources = C_PetJournal.GetNumPetSources() |
for i=1,nsources do |
if C_PetJournal.IsPetSourceFiltered then |
-- WoW<7.0 |
source_filters[i] = not C_PetJournal.IsPetSourceFiltered(i) |
else |
source_filters[i] = C_PetJournal.IsPetSourceChecked(i) |
end |
source_filters[i] = C_PetJournal.IsPetSourceChecked(i) |
if not source_filters[i] then |
need_add_all = true |
end |
end |
if need_add_all then |
if C_PetJournal.AddAllPetSourcesFilter then |
-- WoW<7.0 |
C_PetJournal.AddAllPetSourcesFilter() |
else |
C_PetJournal.SetAllPetSourcesChecked(true) |
end |
C_PetJournal.SetAllPetSourcesChecked(true) |
has_changes = true |
end |
for flag, value in pairs(flag_filters) do |
if value ~= PJ_FLAG_FILTERS[flag] then |
if C_PetJournal.SetFlagFilter then |
-- WoW<7.0 |
C_PetJournal.SetFlagFilter(flag, value) |
else |
C_PetJournal.SetFilterChecked(flag, value) |
end |
C_PetJournal.SetFilterChecked(flag, value) |
end |
end |
for flag,value in pairs(source_filters) do |
if value ~= true then |
if C_PetJournal.SetPetSourceFilter then |
-- WoW<7.0 |
C_PetJournal.SetPetSourceFilter(flag, value) |
else |
C_PetJournal.SetPetSourceChecked(flag, value) |
end |
end |
C_PetJournal.SetPetSourceChecked(flag, value) |
end |
end |
if _G.PetJournal then |
_G.PetJournal:RegisterEvent("PET_JOURNAL_LIST_UPDATE") |
end |
if is_lt_70 then |
lib.event_frame:RegisterEvent("PET_JOURNAL_LIST_UPDATE") |
end |
end |
end |
lib._running = true |
local filters_changed = self:ClearFilters() |
if not filters_changed or is_lt_70 then |
if not filters_changed then |
if self:_LoadPets() then |
self:_LoadPetsFinish() |
end |
## Interface: 80000 |
## Interface: 90002 |
## Title: sCompanions |
## Author: Seerah |
## Version: 2.0.5 |
## Version: 2.0.6 |
## Notes: Divides up your mounts into 2 categories based on land/air, to randomly pick from via a macro. Also provides a random pet macro. |
## OptionalDeps: LibPetJournal-2.0 |