Use AceBucket to bundle BAG_UPDATE events being mass sent on instance change

This commit is contained in:
Andrew6810
2022-12-31 14:22:01 -07:00
parent 2ce172c98c
commit df65fd107e
8 changed files with 303 additions and 6 deletions
+1 -1
View File
@@ -88,4 +88,4 @@ local function ValueColorUpdate(hex)
end
E.valueColorUpdateFuncs[ValueColorUpdate] = true
DT:RegisterDatatext("Bags", {"PLAYER_ENTERING_WORLD", "BAG_UPDATE"}, OnEvent, nil, OnClick, OnEnter, nil, L["Bags"])
DT:RegisterDatatext("Bags", {"PLAYER_ENTERING_WORLD", buckets = {{ "BAG_UPDATE", 0.2 }}}, OnEvent, nil, OnClick, OnEnter, nil, L["Bags"])
+14 -1
View File
@@ -197,9 +197,22 @@ function DT:AssignPanelToDataText(panel, data)
end
if data.events then
for _, event in pairs(data.events) do
for _, event in ipairs(data.events) do
panel:RegisterEvent(event)
end
if data.events.buckets then
for _, bucket in ipairs(data.events.buckets) do
local event, period, callback = unpack(bucket)
if not period then
period = 0.1
end
if not callback then
callback = function(arg) data.eventFunc(panel, arg) end
end
panel:RegisterBucketEvent(event, period, callback)
end
end
end
if data.eventFunc then