Skip to content

Commit b029d3a

Browse files
authored
Draw Speedup and More (#639)
* A massive rework of some internal systems were done to allow for easier future improvements down the road. Most of this should not affect users, but it does make things easier down the line.
1 parent 619a012 commit b029d3a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+2117
-1383
lines changed

.cursorrules

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
All lua files must indent with 2 spaces.
2+
All functions must have correct annotations.
3+
All functions must have a comment above them describing what they do. The comment must start with the name of the function and must be a complete sentence.

BetterBags.toc

+5-2
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,15 @@ core\boot.lua
3434

3535
animations\fade.lua
3636

37+
core\context.lua
38+
core\pool.lua
39+
3740
debug\debug.lua
3841
debug\frames.lua
3942
debug\profile.lua
4043
debug\items.lua
4144
debug\analytics.lua
4245

43-
core\context.lua
4446
core\events.lua
4547
core\localization.lua
4648
core\translations.lua
@@ -64,6 +66,7 @@ data\equipmentsets.lua
6466
data\categories.lua
6567
data\items.lua
6668
data\loader.lua
69+
data\stacks.lua
6770
data\slots.lua
6871
data\refresh.lua
6972

@@ -93,6 +96,7 @@ frames\sectionconfig.lua
9396
frames\themeconfig.lua
9497
frames\tabs.lua
9598
frames\anchor.lua
99+
frames\itembrowser.lua
96100
frames\debug.lua
97101

98102
views\views.lua
@@ -109,7 +113,6 @@ themes\elvui.lua
109113
config\config.lua
110114
config\help.lua
111115
config\bags.lua
112-
config\itemlist.lua
113116
config\customcat.lua
114117

115118
integrations\consoleport.lua

BetterBags_Cata.toc

+5-2
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,15 @@ core\boot.lua
3535

3636
animations\fade.lua
3737

38+
core\context.lua
39+
core\pool.lua
40+
3841
debug\debug.lua
3942
debug\frames.lua
4043
debug\profile.lua
4144
debug\items.lua
4245
debug\analytics.lua
4346

44-
core\context.lua
4547
core\events.lua
4648
core\localization.lua
4749
core\translations.lua
@@ -66,6 +68,7 @@ data\equipmentsets.lua
6668
data\categories.lua
6769
data\items.lua
6870
data\loader.lua
71+
data\stacks.lua
6972
data\slots.lua
7073
data\refresh.lua
7174

@@ -100,6 +103,7 @@ frames\sectionconfig.lua
100103
frames\themeconfig.lua
101104
frames\tabs.lua
102105
frames\anchor.lua
106+
frames\itembrowser.lua
103107
frames\debug.lua
104108

105109
views\views.lua
@@ -118,7 +122,6 @@ config\config.lua
118122
config\era\config.lua
119123
config\help.lua
120124
config\classic\bags.lua
121-
config\itemlist.lua
122125
config\customcat.lua
123126

124127
integrations\consoleport.lua

BetterBags_Vanilla.toc

+5-2
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,15 @@ core\boot.lua
3535

3636
animations\fade.lua
3737

38+
core\context.lua
39+
core\pool.lua
40+
3841
debug\debug.lua
3942
debug\frames.lua
4043
debug\profile.lua
4144
debug\items.lua
4245
debug\analytics.lua
4346

44-
core\context.lua
4547
core\events.lua
4648
core\localization.lua
4749
core\translations.lua
@@ -66,6 +68,7 @@ data\equipmentsets.lua
6668
data\categories.lua
6769
data\items.lua
6870
data\loader.lua
71+
data\stacks.lua
6972
data\slots.lua
7073
data\refresh.lua
7174

@@ -100,6 +103,7 @@ frames\sectionconfig.lua
100103
frames\themeconfig.lua
101104
frames\tabs.lua
102105
frames\anchor.lua
106+
frames\itembrowser.lua
103107
frames\debug.lua
104108

105109
views\views.lua
@@ -118,7 +122,6 @@ config\config.lua
118122
config\era\config.lua
119123
config\help.lua
120124
config\era\bags.lua
121-
config\itemlist.lua
122125
config\customcat.lua
123126

124127
integrations\consoleport.lua

config/bags.lua

+35-16
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ local themes = addon:GetModule('Themes')
3131
---@class Config: AceModule
3232
local config = addon:GetModule('Config')
3333

34+
---@class Context: AceModule
35+
local context = addon:GetModule('Context')
36+
3437
---@param kind BagKind
3538
---@return AceConfig.OptionsTable
3639
function config:GetCustomCategoryOptions(kind)
@@ -60,7 +63,8 @@ function config:GetCustomCategoryOptions(kind)
6063
end,
6164
set = function(_, value)
6265
categories:SetCategoryState(kind, value, not categories:IsCategoryEnabled(kind, value))
63-
events:SendMessage('bags/FullRefreshAll')
66+
local ctx = context:New('on_click')
67+
events:SendMessage('bags/FullRefreshAll', ctx)
6468
end,
6569
values = {}
6670
}
@@ -98,7 +102,8 @@ function config:GetBagOptions(kind)
98102
end,
99103
set = function(_, value)
100104
DB:SetCategoryFilter(kind, value, not DB:GetCategoryFilter(kind, value))
101-
events:SendMessage('bags/FullRefreshAll')
105+
local ctx = context:New('on_click')
106+
events:SendMessage('bags/FullRefreshAll', ctx)
102107
end,
103108
values = {
104109
["RecentItems"] = L:G("Recent Items"),
@@ -125,7 +130,8 @@ function config:GetBagOptions(kind)
125130
end,
126131
set = function(_, value)
127132
DB:SetSectionSortType(kind, DB:GetBagView(kind), value)
128-
events:SendMessage('bags/FullRefreshAll')
133+
local ctx = context:New('on_click')
134+
events:SendMessage('bags/FullRefreshAll', ctx)
129135
end,
130136
values = {
131137
[const.SECTION_SORT_TYPE.ALPHABETICALLY] = L:G("Alphabetically"),
@@ -145,7 +151,8 @@ function config:GetBagOptions(kind)
145151
end,
146152
set = function(_, value)
147153
DB:SetItemSortType(kind, DB:GetBagView(kind), value)
148-
events:SendMessage('bags/FullRefreshAll')
154+
local ctx = context:New('on_click')
155+
events:SendMessage('bags/FullRefreshAll', ctx)
149156
end,
150157
values = {
151158
[const.ITEM_SORT_TYPE.QUALITY_THEN_ALPHABETICALLY] = L:G("Quality, then Alphabetically"),
@@ -200,7 +207,8 @@ function config:GetBagOptions(kind)
200207
end,
201208
set = function(_, value)
202209
DB:SetMergeItems(kind, value)
203-
events:SendMessage('bags/FullRefreshAll')
210+
local ctx = context:New('on_click')
211+
events:SendMessage('bags/FullRefreshAll', ctx)
204212
end,
205213
},
206214
mergeUnstackable = {
@@ -213,7 +221,8 @@ function config:GetBagOptions(kind)
213221
end,
214222
set = function(_, value)
215223
DB:SetMergeUnstackable(kind, value)
216-
events:SendMessage('bags/FullRefreshAll')
224+
local ctx = context:New('on_click')
225+
events:SendMessage('bags/FullRefreshAll', ctx)
217226
end,
218227
},
219228
unmergeAtShop = {
@@ -226,7 +235,8 @@ function config:GetBagOptions(kind)
226235
end,
227236
set = function(_, value)
228237
DB:SetUnmergeAtShop(kind, value)
229-
events:SendMessage('bags/FullRefreshAll')
238+
local ctx = context:New('on_click')
239+
events:SendMessage('bags/FullRefreshAll', ctx)
230240
end,
231241
},
232242
dontMergePartial = {
@@ -239,7 +249,8 @@ function config:GetBagOptions(kind)
239249
end,
240250
set = function(_, value)
241251
DB:SetDontMergePartial(kind, value)
242-
events:SendMessage('bags/FullRefreshAll')
252+
local ctx = context:New('on_click')
253+
events:SendMessage('bags/FullRefreshAll', ctx)
243254
end,
244255
},
245256
dontMergeTransmog = {
@@ -252,7 +263,8 @@ function config:GetBagOptions(kind)
252263
end,
253264
set = function(_, value)
254265
DB:SetDontMergeTransmog(kind, value)
255-
events:SendMessage('bags/FullRefreshAll')
266+
local ctx = context:New('on_click')
267+
events:SendMessage('bags/FullRefreshAll', ctx)
256268
end,
257269
},
258270
}
@@ -273,7 +285,8 @@ function config:GetBagOptions(kind)
273285
end,
274286
set = function(_, value)
275287
DB:SetItemLevelEnabled(kind, value)
276-
events:SendMessage('bags/FullRefreshAll')
288+
local ctx = context:New('on_click')
289+
events:SendMessage('bags/FullRefreshAll', ctx)
277290
end,
278291
},
279292
color = {
@@ -286,7 +299,8 @@ function config:GetBagOptions(kind)
286299
end,
287300
set = function(_, value)
288301
DB:SetItemLevelColorEnabled(kind, value)
289-
events:SendMessage('bags/FullRefreshAll')
302+
local ctx = context:New('on_click')
303+
events:SendMessage('bags/FullRefreshAll', ctx)
290304
end,
291305
},
292306
}
@@ -308,7 +322,8 @@ function config:GetBagOptions(kind)
308322
end,
309323
set = function(_, value)
310324
DB:SetShowFullSectionNames(kind, value)
311-
events:SendMessage('bags/FullRefreshAll')
325+
local ctx = context:New('on_click')
326+
events:SendMessage('bags/FullRefreshAll', ctx)
312327
end,
313328
},
314329
showAllFreeSpace = {
@@ -322,7 +337,8 @@ function config:GetBagOptions(kind)
322337
end,
323338
set = function(_, value)
324339
DB:SetShowAllFreeSpace(kind, value)
325-
events:SendMessage('bags/FullRefreshAll')
340+
local ctx = context:New('on_click')
341+
events:SendMessage('bags/FullRefreshAll', ctx)
326342
end,
327343
},
328344
showExtraGlowyButtons = {
@@ -336,7 +352,8 @@ function config:GetBagOptions(kind)
336352
end,
337353
set = function(_, value)
338354
DB:SetExtraGlowyButtons(kind, value)
339-
events:SendMessage('bags/FullRefreshAll')
355+
local ctx = context:New('on_click')
356+
events:SendMessage('bags/FullRefreshAll', ctx)
340357
end,
341358
},
342359
itemsPerRow = {
@@ -353,7 +370,8 @@ function config:GetBagOptions(kind)
353370
set = function(_, value)
354371
DB:SetBagViewSizeItems(kind, DB:GetBagView(kind), value)
355372
bucket:Later("setItemsPerRow", 0.2, function()
356-
events:SendMessage('bags/FullRefreshAll')
373+
local ctx = context:New('on_click')
374+
events:SendMessage('bags/FullRefreshAll', ctx)
357375
end)
358376
end,
359377
},
@@ -387,7 +405,8 @@ function config:GetBagOptions(kind)
387405
set = function(_, value)
388406
DB:SetBagViewSizeColumn(kind, DB:GetBagView(kind), value)
389407
bucket:Later("setSectionsPerRow", 0.2, function()
390-
events:SendMessage('bags/FullRefreshAll')
408+
local ctx = context:New('on_click')
409+
events:SendMessage('bags/FullRefreshAll', ctx)
391410
end)
392411
end,
393412
},

0 commit comments

Comments
 (0)