Updated LibOpenRaid and DetailsFramework

This commit is contained in:
Tercio Jose
2022-10-09 19:47:56 -03:00
parent 9974a87119
commit 944178f76f
126 changed files with 15502 additions and 15495 deletions
+105 -105
View File
@@ -4,7 +4,7 @@
local _tempo = time()
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--> local pointers
--local pointers
local _
local _pairs = pairs --lua local
local _ipairs = ipairs --lua local
@@ -30,7 +30,7 @@
local container_damage_target = _detalhes.container_type.CONTAINER_DAMAGETARGET_CLASS
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--> constants
--constants
local class_type_dano = _detalhes.atributos.dano
local class_type_cura = _detalhes.atributos.cura
@@ -38,9 +38,9 @@
local class_type_misc = _detalhes.atributos.misc
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--> core
--core
--> reconstri o mapa do container
--reconstri o mapa do container
local function ReconstroiMapa (tabela)
local mapa = {}
for i = 1, #tabela._ActorTable do
@@ -49,7 +49,7 @@
tabela._NameIndexTable = mapa
end
--> reaplica as tabelas no overall
--reaplica as tabelas no overall
function _detalhes:RestauraOverallMetaTables()
local is_in_instance = select (1, IsInInstance())
@@ -71,8 +71,8 @@
local todos_atributos = {combate [class_type_dano]._ActorTable, combate [class_type_cura]._ActorTable, combate [class_type_e_energy]._ActorTable, combate [class_type_misc]._ActorTable}
for class_type, atributo in _ipairs (todos_atributos) do
for _, esta_classe in _ipairs (atributo) do
for class_type, atributo in _ipairs(todos_atributos) do
for _, esta_classe in _ipairs(atributo) do
local nome = esta_classe.nome
@@ -101,9 +101,9 @@
end
end
for class_type, atributo in _ipairs (todos_atributos) do
for _, esta_classe in _ipairs (atributo) do
if (esta_classe.ownerName) then --> nome do owner
for class_type, atributo in _ipairs(todos_atributos) do
for _, esta_classe in _ipairs(atributo) do
if (esta_classe.ownerName) then --nome do owner
esta_classe.owner = combate (class_type, esta_classe.ownerName)
end
end
@@ -111,26 +111,26 @@
end
--> reaplica indexes e metatables
--reaplica indexes e metatables
function _detalhes:RestauraMetaTables()
_detalhes.refresh:r_atributo_custom()
--> container de pets e histrico
--container de pets e histrico
_detalhes.refresh:r_container_pets (_detalhes.tabela_pets)
_detalhes.refresh:r_historico (_detalhes.tabela_historico)
--> tabelas dos combates
--tabelas dos combates
local combate_overall = _detalhes.tabela_overall
local overall_dano = combate_overall [class_type_dano] --> damage atalho
local overall_cura = combate_overall [class_type_cura] --> heal atalho
local overall_energy = combate_overall [class_type_e_energy] --> energy atalho
local overall_misc = combate_overall [class_type_misc] --> misc atalho
local overall_dano = combate_overall [class_type_dano] --damage atalho
local overall_cura = combate_overall [class_type_cura] --heal atalho
local overall_energy = combate_overall [class_type_e_energy] --energy atalho
local overall_misc = combate_overall [class_type_misc] --misc atalho
local tabelas_do_historico = _detalhes.tabela_historico.tabelas --> atalho
local tabelas_do_historico = _detalhes.tabela_historico.tabelas --atalho
--> recupera meta function
for _, combat_table in _ipairs (tabelas_do_historico) do
--recupera meta function
for _, combat_table in _ipairs(tabelas_do_historico) do
combat_table.__call = _detalhes.call_combate
end
@@ -139,7 +139,7 @@
combat.previous_combat = tabelas_do_historico [i+1]
end
--> tempo padrao do overall
--tempo padrao do overall
local overall_saved = combate_overall.overall_refreshed
@@ -150,16 +150,16 @@
local is_in_instance = select (1, IsInInstance())
--> inicia a recuperao das tabelas e montagem do overall
--inicia a recuperao das tabelas e montagem do overall
if (#tabelas_do_historico > 0) then
for index, combate in _ipairs (tabelas_do_historico) do
for index, combate in _ipairs(tabelas_do_historico) do
combate.hasSaved = true
--> recupera a meta e indexes da tabela do combate
--recupera a meta e indexes da tabela do combate
_detalhes.refresh:r_combate (combate, combate_overall)
--> aumenta o tempo do combate do overall, seta as datas e os combates armazenados
--aumenta o tempo do combate do overall, seta as datas e os combates armazenados
if (not overall_saved and combate.overall_added) then
if (combate.end_time and combate.start_time) then
@@ -185,22 +185,22 @@
end
--> recupera a meta e indexes dos 4 container
--recupera a meta e indexes dos 4 container
_detalhes.refresh:r_container_combatentes (combate [class_type_dano], overall_dano)
_detalhes.refresh:r_container_combatentes (combate [class_type_cura], overall_cura)
_detalhes.refresh:r_container_combatentes (combate [class_type_e_energy], overall_energy)
_detalhes.refresh:r_container_combatentes (combate [class_type_misc], overall_misc)
--> ghost container
--ghost container
if (combate[5]) then
_detalhes.refresh:r_container_combatentes (combate [5], combate_overall [5])
end
--> tabela com os 4 tabelas de jogadores
--tabela com os 4 tabelas de jogadores
local todos_atributos = {combate [class_type_dano]._ActorTable, combate [class_type_cura]._ActorTable, combate [class_type_e_energy]._ActorTable, combate [class_type_misc]._ActorTable}
for class_type, atributo in _ipairs (todos_atributos) do
for _, esta_classe in _ipairs (atributo) do
for class_type, atributo in _ipairs(todos_atributos) do
for _, esta_classe in _ipairs(atributo) do
local nome = esta_classe.nome
@@ -246,10 +246,10 @@
end
end
--> reconstri a tabela dos pets
for class_type, atributo in _ipairs (todos_atributos) do
for _, esta_classe in _ipairs (atributo) do
if (esta_classe.ownerName) then --> nome do owner
--reconstri a tabela dos pets
for class_type, atributo in _ipairs(todos_atributos) do
for _, esta_classe in _ipairs(atributo) do
if (esta_classe.ownerName) then --nome do owner
esta_classe.owner = combate (class_type, esta_classe.ownerName)
end
end
@@ -259,14 +259,14 @@
--fim
end
--> restaura last_events_table
local primeiro_combate = tabelas_do_historico [1] --> primeiro combate
--restaura last_events_table
local primeiro_combate = tabelas_do_historico [1] --primeiro combate
if (primeiro_combate) then
primeiro_combate [1]:ActorCallFunction (atributo_damage.r_last_events_table)
primeiro_combate [2]:ActorCallFunction (atributo_heal.r_last_events_table)
end
local segundo_combate = tabelas_do_historico [2] --> segundo combate
local segundo_combate = tabelas_do_historico [2] --segundo combate
if (segundo_combate) then
segundo_combate [1]:ActorCallFunction (atributo_damage.r_last_events_table)
segundo_combate [2]:ActorCallFunction (atributo_heal.r_last_events_table)
@@ -276,8 +276,8 @@
function _detalhes:DoInstanceCleanup()
--> normal instances
for _, esta_instancia in _ipairs (_detalhes.tabela_instancias) do
--normal instances
for _, esta_instancia in _ipairs(_detalhes.tabela_instancias) do
if (esta_instancia.StatusBar.left) then
esta_instancia.StatusBarSaved = {
@@ -292,7 +292,7 @@
}
end
--> erase all widgets frames
--erase all widgets frames
esta_instancia.scroll = nil
esta_instancia.baseframe = nil
@@ -329,8 +329,8 @@
end
--> unused instances
for _, esta_instancia in _ipairs (_detalhes.unused_instances) do
--unused instances
for _, esta_instancia in _ipairs(_detalhes.unused_instances) do
if (esta_instancia.StatusBar.left) then
esta_instancia.StatusBarSaved = {
@@ -345,7 +345,7 @@
}
end
--> erase all widgets frames
--erase all widgets frames
esta_instancia.scroll = nil
esta_instancia.baseframe = nil
esta_instancia.bgframe = nil
@@ -389,9 +389,9 @@
overall_added = true
end
for index, combat in _ipairs (combats) do
for index, container in _ipairs (combat) do
for index, esta_classe in _ipairs (container._ActorTable) do
for index, combat in _ipairs(combats) do
for index, container in _ipairs(combat) do
for index, esta_classe in _ipairs(container._ActorTable) do
esta_classe.owner = nil
end
end
@@ -410,9 +410,9 @@
overall_added = true
end
for index, combat in _ipairs (combats) do
for class_type, container in _ipairs (combat) do
for index, esta_classe in _ipairs (container._ActorTable) do
for index, combat in _ipairs(combats) do
for class_type, container in _ipairs(combat) do
for index, esta_classe in _ipairs(container._ActorTable) do
esta_classe.displayName = nil
esta_classe.minha_barra = nil
@@ -444,9 +444,9 @@
overall_added = true
end
for index, combat in _ipairs (combats) do
for index, combat in _ipairs(combats) do
_detalhes.clear:c_combate (combat)
for index, container in _ipairs (combat) do
for index, container in _ipairs(combat) do
_detalhes.clear:c_container_combatentes (container)
end
end
@@ -464,8 +464,8 @@
overall_added = true
end
for index, combat in _ipairs (combats) do
for index, container in _ipairs (combat) do
for index, combat in _ipairs(combats) do
for index, container in _ipairs(combat) do
_detalhes.clear:c_container_combatentes_index (container)
end
end
@@ -475,21 +475,21 @@
end
end
--> limpa indexes, metatables e shadows
--limpa indexes, metatables e shadows
function _detalhes:PrepareTablesForSave()
_detalhes.clear_ungrouped = true
--> clear instances
--clear instances
_detalhes:DoInstanceCleanup()
_detalhes:DoClassesCleanup() --aumentou 1 combat
_detalhes:DoContainerCleanup() --aumentou 1 combat
--> clear combats
--clear combats
local tabelas_de_combate = {}
local historico_tabelas = _detalhes.tabela_historico.tabelas or {}
--> remove os segmentos de trash
--remove os segmentos de trash
for i = #historico_tabelas, 1, -1 do
local combate = historico_tabelas [i]
if (combate:IsTrash()) then
@@ -497,7 +497,7 @@
end
end
--> remove os segmentos > que o limite permitido para salvar
--remove os segmentos > que o limite permitido para salvar
if (_detalhes.segments_amount_to_save and _detalhes.segments_amount_to_save < _detalhes.segments_amount) then
for i = _detalhes.segments_amount, _detalhes.segments_amount_to_save+1, -1 do
if (_detalhes.tabela_historico.tabelas [i]) then
@@ -506,10 +506,10 @@
end
end
--> tabela do combate atual
--tabela do combate atual
local tabela_atual = _detalhes.tabela_vigente or _detalhes.combate:NovaTabela (_, _detalhes.tabela_overall)
--> limpa a tabela overall
--limpa a tabela overall
if (_detalhes.overall_clear_logout) then
_detalhes.tabela_overall = nil
_detalhes_database.tabela_overall = nil
@@ -519,14 +519,14 @@
_combate.previous_combat = nil
local todos_atributos = {_combate [class_type_dano] or {}, _combate [class_type_cura] or {}, _combate [class_type_e_energy] or {}, _combate [class_type_misc] or {}}
for class_type, _tabela in _ipairs (todos_atributos) do
for class_type, _tabela in _ipairs(todos_atributos) do
local conteudo = _tabela._ActorTable
--> Limpa tabelas que no estejam em grupo
--Limpa tabelas que no estejam em grupo
if (conteudo) then
if (_detalhes.clear_ungrouped) then
--if (not _detalhes.clear_ungrouped) then
local _iter = {index = 1, data = conteudo[1], cleaned = 0} --> ._ActorTable[1] para pegar o primeiro index
local _iter = {index = 1, data = conteudo[1], cleaned = 0} --._ActorTable[1] para pegar o primeiro index
while (_iter.data) do --search key: ~deletar ~apagar
local can_erase = true
@@ -567,18 +567,18 @@
end
end
for _, _tabela in _ipairs (historico_tabelas) do
for _, _tabela in _ipairs(historico_tabelas) do
tabelas_de_combate [#tabelas_de_combate+1] = _tabela
end
for tabela_index, _combate in _ipairs (tabelas_de_combate) do
for tabela_index, _combate in _ipairs(tabelas_de_combate) do
--> limpa a tabela do grafico
--limpa a tabela do grafico
if (_detalhes.clear_graphic) then
_combate.TimeData = {}
end
--> limpa a referencia do ultimo combate
--limpa a referencia do ultimo combate
_combate.previous_combat = nil
local container_dano = _combate [class_type_dano] or {}
@@ -596,18 +596,18 @@
end
if (not _combate.is_mythic_dungeon_segment) then
for class_type, _tabela in _ipairs (todos_atributos) do
for class_type, _tabela in _ipairs(todos_atributos) do
local conteudo = _tabela._ActorTable
--> Limpa tabelas que no estejam em grupo
--Limpa tabelas que no estejam em grupo
if (conteudo) then
if (_detalhes.clear_ungrouped) then
--no deleta dummies e actors de fora do grupo
--if (not _detalhes.clear_ungrouped) then
local _iter = {index = 1, data = conteudo[1], cleaned = 0} --> ._ActorTable[1] para pegar o primeiro index
local _iter = {index = 1, data = conteudo[1], cleaned = 0} --._ActorTable[1] para pegar o primeiro index
while (_iter.data) do --search key: ~deletar ~apagar
local can_erase = true
@@ -631,7 +631,7 @@
if (can_erase) then
if (not _iter.data.owner) then --> pet
if (not _iter.data.owner) then --pet
local myself = _iter.data
if (myself.tipo == class_type_dano or myself.tipo == class_type_cura) then
@@ -659,7 +659,7 @@
_combate.totals_grupo [myself.tipo] ["ress"] = _combate.totals_grupo [myself.tipo] ["ress"] - myself.ress
end
end
--> no precisa diminuir o total dos buffs e debuffs
--no precisa diminuir o total dos buffs e debuffs
if (myself.cooldowns_defensive) then
_combate.totals [myself.tipo] ["cooldowns_defensive"] = _combate.totals [myself.tipo] ["cooldowns_defensive"] - myself.cooldowns_defensive
if (myself.grupo) then
@@ -708,27 +708,27 @@
end --end is mythic dungeon segment
end
--> panic mode
--panic mode
if (_detalhes.segments_panic_mode and _detalhes.can_panic_mode) then
if (_detalhes.tabela_vigente.is_boss) then
_detalhes.tabela_historico = _detalhes.historico:NovoHistorico()
end
end
--> clear all segments on logoff
--clear all segments on logoff
if (_detalhes.data_cleanup_logout) then
_detalhes.tabela_historico = _detalhes.historico:NovoHistorico()
_detalhes.tabela_overall = nil
_detalhes_database.tabela_overall = nil
end
--> clear customs
--clear customs
_detalhes.clear:c_atributo_custom()
--> clear owners
--clear owners
_detalhes:DoOwnerCleanup()
--> cleaer container indexes
--cleaer container indexes
_detalhes:DoContainerIndexCleanup()
end
@@ -737,7 +737,7 @@
instancia.showing[instancia.atributo].need_refresh = true
instancia.v_barras = true
instancia:ResetaGump()
instancia:RefreshMainWindow (true)
instancia:RefreshMainWindow(true)
end
end
@@ -748,7 +748,7 @@
UpdateAddOnMemoryUsage()
local memory = GetAddOnMemoryUsage ("Details")
if (memory > _detalhes.memory_ram) then
_detalhes:IniciarColetaDeLixo (true, 60) --> sending true doesn't check anythink
_detalhes:IniciarColetaDeLixo (true, 60) --sending true doesn't check anythink
end
end
end
@@ -762,7 +762,7 @@
_detalhes:Msg ("(debug) checking memory periodically. Using: ",math.floor (memory))
end
if (memory > _detalhes.memory_ram * 1000) then
_detalhes:IniciarColetaDeLixo (1, 60) --> sending 1 only check for combat and ignore garbage collect cooldown
_detalhes:IniciarColetaDeLixo (1, 60) --sending 1 only check for combat and ignore garbage collect cooldown
end
end
end
@@ -777,7 +777,7 @@
return
end
else
if (type (forcar) ~= "boolean") then
if (type(forcar) ~= "boolean") then
if (forcar == 1) then
if (_detalhes.in_combat or _InCombatLockdown()) then
_detalhes:ScheduleTimer ("IniciarColetaDeLixo", 5, forcar)
@@ -797,13 +797,13 @@
local memory = GetAddOnMemoryUsage ("Details")
--> reseta o cache do parser
--reseta o cache do parser
_detalhes:ClearParserCache()
--> limpa barras que no esto sendo usadas nas instncias.
for index, instancia in _ipairs (_detalhes.tabela_instancias) do
--limpa barras que no esto sendo usadas nas instncias.
for index, instancia in _ipairs(_detalhes.tabela_instancias) do
if (instancia.barras and instancia.barras [1]) then
for i, barra in _ipairs (instancia.barras) do
for i, barra in _ipairs(instancia.barras) do
if (not barra:IsShown()) then
barra.minha_tabela = nil
end
@@ -811,7 +811,7 @@
end
end
--> faz a coleta nos 4 atributos
--faz a coleta nos 4 atributos
local damage = atributo_damage:ColetarLixo (lastevent)
local heal = atributo_heal:ColetarLixo (lastevent)
local energy = atributo_energy:ColetarLixo (lastevent)
@@ -819,28 +819,28 @@
local limpados = damage + heal + energy + misc
--> refresh nas janelas
--refresh nas janelas
if (limpados > 0) then
_detalhes:InstanciaCallFunction (_detalhes.reset_window)
end
_detalhes:ManutencaoTimeMachine()
--> print cache states
--print cache states
--if (_detalhes.debug) then
-- _detalhes:Msg ("(debug) removed: damage "..damage.." heal "..heal.." energy "..energy.." misc "..misc)
--end
--> elimina pets antigos
--elimina pets antigos
_detalhes:LimparPets()
if (not _detalhes.in_combat) then
_detalhes:ClearCCPetsBlackList()
end
--> reseta cache de specs
--reseta cache de specs
_detalhes:ResetSpecCache()
--> wipa container de escudos
--wipa container de escudos
_table_wipe (_detalhes.escudos)
_detalhes.ultima_coleta = _detalhes._tempo
@@ -854,7 +854,7 @@
end
--> combates Normais
--combates Normais
local function FazColeta (_combate, tipo, intervalo_overwrite)
local conteudo = _combate [tipo]._ActorTable
@@ -893,7 +893,7 @@
end
if (can_garbage) then
if (not _actor.owner) then --> pet
if (not _actor.owner) then --pet
_actor:subtract_total (_combate)
end
@@ -924,7 +924,7 @@
return _iter.cleaned
end
--> Combate overall
--Combate overall
function _detalhes:ColetarLixo (tipo, lastevent)
--print ("fazendo coleta...")
@@ -932,24 +932,24 @@
local _tempo = _time()
local limpados = 0
--> monta a lista de combates
--monta a lista de combates
local tabelas_de_combate = {}
for _, _tabela in _ipairs (_detalhes.tabela_historico.tabelas) do
for _, _tabela in _ipairs(_detalhes.tabela_historico.tabelas) do
if (_tabela ~= _detalhes.tabela_vigente) then
tabelas_de_combate [#tabelas_de_combate+1] = _tabela
end
end
tabelas_de_combate [#tabelas_de_combate+1] = _detalhes.tabela_vigente
--> faz a coleta em todos os combates para este atributo
for _, _combate in _ipairs (tabelas_de_combate) do
--faz a coleta em todos os combates para este atributo
for _, _combate in _ipairs(tabelas_de_combate) do
limpados = limpados + FazColeta (_combate, tipo, lastevent)
end
--> limpa a tabela overall para o atributo atual (limpa para os 4, um de cada vez atravs do ipairs)
--limpa a tabela overall para o atributo atual (limpa para os 4, um de cada vez atravs do ipairs)
local _overall_combat = _detalhes.tabela_overall
local conteudo = _overall_combat [tipo]._ActorTable
local _iter = {index = 1, data = conteudo[1], cleaned = 0} --> ._ActorTable[1] para pegar o primeiro index
local _iter = {index = 1, data = conteudo[1], cleaned = 0} --._ActorTable[1] para pegar o primeiro index
while (_iter.data) do
@@ -960,13 +960,13 @@
can_garbage = true
end
if (can_garbage) then --> no h referncias a este objeto
if (can_garbage) then --no h referncias a este objeto
if (not _actor.owner) then --> pet
if (not _actor.owner) then --pet
_actor:subtract_total (_overall_combat)
end
--> apaga a referncia deste jogador na tabela overall
--apaga a referncia deste jogador na tabela overall
_iter.cleaned = _iter.cleaned+1
_table_remove (conteudo, _iter.index)
@@ -979,7 +979,7 @@
end
--> termina o coletor de lixo
--termina o coletor de lixo
if (_iter.cleaned > 0) then
_overall_combat[tipo].need_refresh = true
ReconstroiMapa (_overall_combat [tipo])
@@ -988,7 +988,7 @@
if (limpados > 0) then
_detalhes:InstanciaCallFunction (_detalhes.ScheduleUpdate)
_detalhes:RefreshMainWindow (-1)
_detalhes:RefreshMainWindow(-1)
end
return limpados