From 198d8e06808648e7d84e0d7d194340b87b82d385 Mon Sep 17 00:00:00 2001 From: Alar of Daggerspine Date: Mon, 20 Jul 2015 12:24:33 +0200 Subject: [PATCH] Uses saver hook in prevision of hook refactoring Signed-off-by: Alar of Daggerspine --- FollowerCache.lua | 142 +---------------------------------------------------- 1 file changed, 1 insertion(+), 141 deletions(-) diff --git a/FollowerCache.lua b/FollowerCache.lua index 6aec808..abdbc15 100644 --- a/FollowerCache.lua +++ b/FollowerCache.lua @@ -243,144 +243,4 @@ function addon:GetAnyIterator(followerType,func) end function addon:GetFollowerType(followerID) return followerTypes[followerID] or 0 -end - ---[=[ -local function keyToIndex(key) - if (not Mbase.followers or not next(Mbase.followers)) then - Mbase.dirtyList=false - Mbase.followers = G.GetFollowers(LE_FOLLOWER_TYPE_GARRISON_6_0); - end - local idx=key and index[key] or nil - if (idx and idx <= #Mbase.followers) then - if Mbase.followers[idx].followerID==key then - return idx - else - idx=nil - end - end - wipe(index) - wipe(sorted) - wipe(names) - wipe(threats) - wipe(traits) - for i=1,#Mbase.followers do - if Mbase.followers[i].isCollected then - local follower=Mbase.followers[i] - names[follower.name]=i - index[follower.followerID]=i - tinsert(sorted,i) - if follower.followerID==key or follower.name==key then - idx=i - end - if (follower.abilities) then - for _,ability in pairs(follower.abilities) do - traits[ability.id]=traits[ability.id]or {} - tinsert(traits[ability.id],follower.followerID) - if (not ability.isTrait) then - for id,_ in pairs(ability.counters) do - threats[id]=threats[id]or {} - tinsert(threats[id],follower.followerID) - end - end - end - end - end - end - return idx -end -local maxrank=GARRISON_FOLLOWER_MAX_UPGRADE_QUALITY*1000+GARRISON_FOLLOWER_MAX_LEVEL -local function AddExtraData(follower,refreshrank) - follower.rank=follower.level < GARRISON_FOLLOWER_MAX_LEVEL and follower.level or follower.iLevel - follower.qLevel=follower.quality*1000+follower.level - follower.coloredname=C(follower.name,tostring(follower.quality)) - follower.fullname=format("%3d %s",follower.rank,follower.coloredname) - follower.maxed=follower.qLevel>=maxrank - local weaponItemID, weaponItemLevel, armorItemID, armorItemLevel = G.GetFollowerItems(follower.followerID); - follower.weaponItemID=weaponItemID - follower.weaponItemLevel=weaponItemLevel - follower.armorItemID=armorItemID - follower.armorItemLevel=armorItemLevel - follower.weaponQuality=select(3,GetItemInfo(weaponItemID)) - follower.armorQuality=select(3,GetItemInfo(armorItemID)) - follower.abilities=G.GetFollowerAbilities(follower.followerID) -end -function addon:FollowerCacheInit() - pcall(GarrisonFollowerList_UpdateFollowers,Mbase,1) -end -function addon:CanCounter(followerID,id) - local abilities=self:GetFollowerData(followerID,'abilities') - for i=1,#abilities do - local ability=abilities[i] - for k,v in pairs(ability.counter) do - if (k==trait or v.name==trait) then - return true - end - end - end -end -function addon:HasTrait(followerID,trait) - local list=traits[trait] - if list then return tContains(list,followerID) end -end -function addon:HasAbility(followerID,trait) - return self:HasTrait(followerID,trait) -end -function addon:CanCounter(followerID,threat) - local list=threats[threat] - if list then return tContains(list,followerID) end -end -function addon:GetFollowerData(followerID,key,default) - local idx=keyToIndex(followerID) - local follower=Mbase.followers[idx] - if (not follower) then - return default - end - if (key==nil) then - return follower - end - if (type(follower[key])~='nil') then - return follower[key] - end - AddExtraData(follower) - return follower[key] or default -end -local sorters={} -sorters.leveldesc = function(a,b) - return (Mbase.followers[a].iLevel * 10 + Mbase.followers[a].level) > (Mbase.followers[b].iLevel * 10 + Mbase.followers[b].level) -end -sorters.levelasc = function(a,b) - return (Mbase.followers[a].iLevel * 10 + Mbase.followers[a].level) < (Mbase.followers[b].iLevel * 10 + Mbase.followers[b].level) -end - - ----@function --- Iterator function --- @param func type of sorting (can be mitted if we dont care) --- -function addon:GetFollowersIterator(func,followerTypeID) - keyToIndex() - if type(func)=="function" then - table.sort(sorted,sorters[func]) - end - local f=Mbase.followers - return function(sorted,i) - i=i+1 - local x = sorted[i] - if x then - local v=f[x] and f[x].followerID or nil - if v then - return i,v - end - end - end,sorted,0 -end -function addon:GetFollowersWithTrait(trait) - if not next(traits) then keyToIndex() end - return traits[trait] -end -function addon:GetFollowersWithCounterFor(threat) - if not next(traits) then keyToIndex() end - return threats[threat] -end ---]=] \ No newline at end of file +end \ No newline at end of file -- 1.7.9.5