More fixes for the "Report to Discord" bugs; Implementations to show plugins in the breakdown window;

This commit is contained in:
Tercio Jose
2023-06-12 19:59:15 -03:00
parent f9d32df3a4
commit efd131ef04
16 changed files with 391 additions and 183 deletions
+18 -15
View File
@@ -97,9 +97,10 @@ end
---@param func function
---@vararg any
function Details:InstanciaCallFunction(func, ...)
for index, instancia in ipairs(Details.tabela_instancias) do
if (instancia:IsAtiva()) then
func(_, instancia, ...)
for index, instance in ipairs(Details.tabela_instancias) do
---@cast instance instance
if (instance:IsEnabled()) then
func(_, instance, ...)
end
end
end
@@ -2300,7 +2301,7 @@ function _detalhes:InstanceReset(instance)
end
Details.FadeHandler.Fader(self, "in", nil, "barras")
self:AtualizaSegmentos(self)
self:UpdateCombatObjectInUse(self)
self:AtualizaSoloMode_AfertReset()
self:ResetaGump()
@@ -2481,18 +2482,20 @@ function _detalhes:UnFreeze(instancia)
end
end
function _detalhes:AtualizaSegmentos (instancia)
if (instancia.iniciada) then
if (instancia.segmento == -1) then
--instancia.baseframe.rodape.segmento:SetText(segmentos.overall) --localiza-me
instancia.showing = _detalhes.tabela_overall
elseif (instancia.segmento == 0) then
--instancia.baseframe.rodape.segmento:SetText(segmentos.current) --localiza-me
instancia.showing = _detalhes.tabela_vigente
--print("==> Changing the Segment now! - classe_instancia.lua 1922")
--handle internal details! events
local eventListener = Details:CreateEventListener()
eventListener:RegisterEvent("DETAILS_DATA_SEGMENTREMOVED", function()
Details:InstanciaCallFunction(Details.UpdateCombatObjectInUse)
end)
function Details:UpdateCombatObjectInUse(instance)
if (instance.iniciada) then
if (instance.segmento == -1) then
instance.showing = Details.tabela_overall
elseif (instance.segmento == 0) then
instance.showing = Details.tabela_vigente
else
instancia.showing = _detalhes.tabela_historico.tabelas [instancia.segmento]
--instancia.baseframe.rodape.segmento:SetText(segmentos.past..instancia.segmento) --localiza-me
instance.showing = Details.tabela_historico.tabelas[instance.segmento]
end
end
end
+15 -3
View File
@@ -336,7 +336,7 @@ function segmentClass:AddCombat(combatObject)
--remove
local combatObjectRemoved = table.remove(segmentTable, 3)
if (combatObjectRemoved) then
Details:DestroyCombat(thirdCombat)
Details:DestroyCombat(combatObjectRemoved)
Details:SendEvent("DETAILS_DATA_SEGMENTREMOVED")
end
end
@@ -511,8 +511,9 @@ function segmentClass:ResetAllCombatData()
Details:SendEvent("DETAILS_DATA_SEGMENTREMOVED")
end
Details:DestroyCombat(Details.tabela_overall)
Details:DestroyCombat(Details.tabela_overall) --not creating a new one immediatelly
Details:SendEvent("DETAILS_DATA_SEGMENTREMOVED")
Details:Destroy(Details.spellcache)
if (Details.schedule_add_to_overall) then --deprecated
@@ -533,6 +534,17 @@ function segmentClass:ResetAllCombatData()
-- cria nova tabela do combate atual
Details.tabela_vigente = combatClass:NovaTabela(nil, Details.tabela_overall)
---@type instance[]
local allInstances = Details:GetAllInstances()
for i = 1, #allInstances do
---@type instance
local instance = allInstances[i]
if (instance:IsEnabled()) then
Details:UpdateCombatObjectInUse(instance)
end
end
--marca o addon como fora de combate
Details.in_combat = false
--zera o contador de combates
@@ -561,7 +573,7 @@ function segmentClass:ResetAllCombatData()
Details.schedule_hard_garbage_collect = true
end
Details:InstanciaCallFunction(Details.AtualizaSegmentos) -- atualiza o instancia.showing para as novas tabelas criadas
Details:InstanciaCallFunction(Details.UpdateCombatObjectInUse) -- atualiza o instancia.showing para as novas tabelas criadas
Details:InstanciaCallFunction(Details.AtualizaSoloMode_AfertReset) -- verifica se precisa zerar as tabela da janela solo mode
Details:InstanciaCallFunction(Details.ResetaGump) --_detalhes:ResetaGump("de todas as instancias")
Details:InstanciaCallFunction(Details.FadeHandler.Fader, "IN", nil, "barras")