diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..46f2258 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,40 @@ +{ + "Lua.runtime.version": "Lua 5.1", + "Lua.runtime.builtin": { + "basic": "disable", + "debug": "disable", + "io": "disable", + "math": "disable", + "os": "disable", + "package": "disable", + "string": "disable", + "table": "disable", + "utf8": "disable" + }, + "Lua.workspace.library": [ + "~\\.vscode\\extensions\\ketho.wow-api-0.21.0\\Annotations\\Core" + ], + "Lua.diagnostics.globals": [ + "Clamp", + "LOW", + "HIGH", + "Settings", + "SELECTED_CHAT_FRAME", + "DEFAULT_CHAT_FRAME", + "ACCEPT", + "CANCEL", + "SlashCmdList", + "hash_SlashCmdList", + "CLOSE", + "FONT_COLOR_CODE_CLOSE", + "SetDesaturation", + "ColorPickerFrame", + "NOT_BOUND", + "CHARACTER_SPECIFIC_KEYBINDINGS", + "ChatFrame_OpenChat", + "UIErrorsFrame", + "SOUNDKIT", + "GameTooltip_Hide" + ], + "Lua.type.weakUnionCheck": true +} \ No newline at end of file diff --git a/AutoBarButton.lua b/AutoBarButton.lua index 6658ba2..1df4be0 100644 --- a/AutoBarButton.lua +++ b/AutoBarButton.lua @@ -2781,4 +2781,22 @@ else end end + local AutoBarButtonKnowledge = AceOO.Class(AutoBarButton) + AutoBar.Class["AutoBarButtonKnowledge"] = AutoBarButtonKnowledge + + function AutoBarButtonKnowledge.prototype:init(parentBar, buttonDB) + AutoBarButtonKnowledge.super.prototype.init(self, parentBar, buttonDB) + + self:AddCategory("Knowledge") + end + + local AutoBarButtonCrests = AceOO.Class(AutoBarButton) + AutoBar.Class["AutoBarButtonCrests"] = AutoBarButtonCrests + + function AutoBarButtonCrests.prototype:init(parentBar, buttonDB) + AutoBarButtonCrests.super.prototype.init(self, parentBar, buttonDB) + + self:AddCategory("Crests") + end + end diff --git a/AutoBarDB.lua b/AutoBarDB.lua index 1297f38..81f8d52 100644 --- a/AutoBarDB.lua +++ b/AutoBarDB.lua @@ -809,6 +809,28 @@ function AutoBar:InitializeDefaults() } end + if (not AutoBarDB2.account.buttonList["AutoBarButtonKnowledge"]) then + AutoBarDB2.account.buttonList["AutoBarButtonKnowledge"] = { + buttonKey = "AutoBarButtonKnowledge", + buttonClass = "AutoBarButtonKnowledge", + barKey = "AutoBarClassBarExtras", + defaultButtonIndex = "*", + enabled = true, + arrangeOnUse = true, + } + end + + if (not AutoBarDB2.account.buttonList["AutoBarButtonCrests"]) then + AutoBarDB2.account.buttonList["AutoBarButtonCrests"] = { + buttonKey = "AutoBarButtonCrests", + buttonClass = "AutoBarButtonCrests", + barKey = "AutoBarClassBarExtras", + defaultButtonIndex = "*", + enabled = true, + arrangeOnUse = true, + } + end + -- if (not AutoBarDB2.account.buttonList["AutoBarButtonToyBox"]) then -- AutoBarDB2.account.buttonList["AutoBarButtonToyBox"] = { -- buttonKey = "AutoBarButtonToyBox", diff --git a/Bindings.xml b/Bindings.xml index f3f540d..2019060 100644 --- a/Bindings.xml +++ b/Bindings.xml @@ -39,6 +39,8 @@ + + diff --git a/Core.lua b/Core.lua index fd786f7..bdfb432 100644 --- a/Core.lua +++ b/Core.lua @@ -160,7 +160,7 @@ function AutoBar:InitializeZero() AutoBar.frame:RegisterEvent("BAG_UPDATE") AutoBar.frame:RegisterEvent("BAG_UPDATE_DELAYED") AutoBar.frame:RegisterEvent("PLAYER_EQUIPMENT_CHANGED") - AutoBar.frame:RegisterEvent("LEARNED_SPELL_IN_TAB") + -- AutoBar.frame:RegisterEvent("LEARNED_SPELL_IN_TAB") AutoBar.frame:RegisterUnitEvent("UNIT_SPELLCAST_SUCCEEDED", "player") if(AutoBarDB2.settings.handle_spell_changed) then diff --git a/locale/Locale-enUS.lua b/locale/Locale-enUS.lua index 82b6c7a..d542089 100644 --- a/locale/Locale-enUS.lua +++ b/locale/Locale-enUS.lua @@ -239,6 +239,8 @@ if (GetLocale() == "enUS") then ["AutoBarButtonTrinket2"] = "Trinket 2", ["AutoBarButtonWater"] = "Water", ["AutoBarButtonWaterBuff"] = "Water Buff", + ["AutoBarButtonKnowledge"] = "Knowledge", + ["AutoBarButtonCrests"] = "Crests", ["AutoBarButtonBear"] = "Bear", diff --git a/retail/ABCategoryData_retail.lua b/retail/ABCategoryData_retail.lua index 5ed06a9..82f3002 100644 --- a/retail/ABCategoryData_retail.lua +++ b/retail/ABCategoryData_retail.lua @@ -575,5 +575,170 @@ function AB.InitializeCategories() "SHAMAN", code.get_spell_name_by_name("Ghost Wolf"), }) + -- Knowledge Items Category + local KNOWLEDGE_ITEMS = { + -- Add your knowledge item IDs here, one per line + -- Example: + -- 192131, -- Item Name + 192131, -- Valdrakken Weapon Chain + 192132, -- Draconium Blade Sharpener + 193891, -- Experimental Substance + 193897, -- Reawakened Catalyst + 193898, -- Umbral Bone Needle + 193899, -- Primalweave Spindle + 193900, -- Prismatic Focusing Shard + 193901, -- Primal Dust + 193902, -- Eroded Titan Gizmo + 193903, -- Watcher Power Core + 193904, -- Phoenix Feather Quill + 193905, -- Iskaaran Trading Ledger + 193907, -- Chipped Tyrstone + 193909, -- Ancient Gem Fragments + 193910, -- Molted Dragon Scales + 193913, -- Preserved Animal Parts + 194039, -- Heated Ore Sample + 194062, -- Unyielding Stone Chunk + 198837, -- Curious Hide Scraps + 198963, -- Decaying Phlegm + 198964, -- Elementious Splinter + 198965, -- Primeval Earth Fragment + 198966, -- Molten Globule + 198967, -- Primordial Aether + 198968, -- Primalist Charm + 198969, -- Keeper's Mark + 198970, -- Infinitely Attachable Pair o' Docks + 198971, -- Curious Djaradin Rune + 198972, -- Draconic Glamour + 198973, -- Incandescent Curio + 198974, -- Elegantly Engraved Embellishment + 198975, -- Ossified Hide + 198976, -- Exceedingly Soft Skin + 198977, -- Ohn'arhan Weave + 198978, -- Stupidly Effective Stitchery + 200677, -- Dreambloom Petal + 200678, -- Dreambloom + 201300, -- Iridescent Ore Fragments + 201301, -- Iridescent Ore + 201356, -- Glimmer of Fire + 201357, -- Glimmer of Frost + 201358, -- Glimmer of Air + 201359, -- Glimmer of Earth + 202011, -- Elementally-Charged Stone + 202014, -- Infused Pollen + 222552, -- Algari Treatise on Herbalism + 222621, -- Algari Treatise on Engineering + 224007, -- Uses for Leftover Husks (How to Take Them Apart) + 224023, -- Herbal Embalming Techniques + 224024, -- Theories of Bodily Transmutation, Chapter 8 + 224036, -- And That's A Web-Wrap! + 224038, -- Smithing After Saronite + 224050, -- Web Sparkles: Pretty and Powerful + 224052, -- Clocks, Gears, Sprockets, and Legs + 224053, -- Eight Views on Defense against Hostile Runes + 224054, -- Emergent Crystals of the Surface-Dwellers + 224055, -- A Rocky Start + 224056, -- Uses for Leftover Husks (After You Take Them Apart) + 224264, -- Deepgrove Petal + 224265, -- Deepgrove Rose + 224583, -- Slab of Slate + 224584, -- Erosion-Polished Slate + 224780, -- Toughened Tempest Pelt + 224781, -- Abyssal Fur + 227407, -- Faded Blacksmith's Diagrams + 225234, -- Alchemical Sediment + 227408, -- Faded Scribe's Runic Drawings + 227409, -- Faded Alchemist's Research + 227410, -- Faded Tailor's Diagrams + 227411, -- Faded Enchanter's Research + 227412, -- Faded Engineer's Scribblings + 227413, -- Faded Jeweler's Illustrations + 227414, -- Faded Leatherworker's Diagrams + 227415, -- Faded Herbalist's Notes + 227416, -- Faded Miner's Notes + 227417, -- Faded Skinner's Notes + 227418, -- Exceptional Blacksmith's Diagrams + 227419, -- Exceptional Scribe's Runic Drawings + 227420, -- Exceptional Alchemist's Research + 227421, -- Exceptional Tailor's Diagrams + 227422, -- Exceptional Enchanter's Research + 227423, -- Exceptional Engineer's Scribblings + 227424, -- Exceptional Jeweler's Illustrations + 227425, -- Exceptional Leatherworker's Diagrams + 227426, -- Exceptional Herbalist's Notes + 227427, -- Exceptional Miner's Notes + 227428, -- Exceptional Skinner's Notes + 227429, -- Pristine Blacksmith's Diagrams + 227430, -- Pristine Scribe's Runic Drawings + 227431, -- Pristine Alchemist's Research + 227432, -- Pristine Tailor's Diagrams + 227433, -- Pristine Enchanter's Research + 227434, -- Pristine Engineer's Scribblings + 227435, -- Pristine Jeweler's Illustrations + 227436, -- Pristine Leatherworker's Diagrams + 227437, -- Pristine Herbalist's Notes + 227438, -- Pristine Miner's Notes + 227439, -- Pristine Skinner's Notes + 227659, -- Fleeting Arcane Manifestation + 227661, -- Gleaming Telluric Crystal + 227662, -- Shimmering Dust + 228738, -- Flicker of Tailoring Knowledge + 228739, -- Glimmer of Tailoring Knowledge + 224835, -- Deepgrove Roots + 232499, -- Undermine Treatise on Alchemy + 232500, -- Undermine Treatise on Blacksmithing + 232501, -- Undermine Treatise on Enchanting + 232502, -- Undermine Treatise on Tailoring + 232503, -- Undermine Treatise on Herbalism + 232504, -- Undermine Treatise on Jewelcrafting + 232505, -- Undermine Treatise on Leatherworking + 232506, -- Undermine Treatise on Skinning + 232507, -- Undermine Treatise on Engineering + 232508, -- Undermine Treatise on Inscription + 232509, -- Undermine Treatise on Mining + 235855, -- Ethereal Tome of Tailoring Knowledge + 235856, -- Ethereal Tome of Skinning Knowledge + 235857, -- Ethereal Tome of Mining Knowledge + 235858, -- Ethereal Tome of Leatherworking Knowledge + 235859, -- Ethereal Tome of Jewelcrafting Knowledge + 235860, -- Ethereal Tome of Inscription Knowledge + 235861, -- Ethereal Tome of Herbalism Knowledge + 235862, -- Ethereal Tome of Engineering Knowledge + 235863, -- Ethereal Tome of Enchanting Knowledge + 235864, -- Ethereal Tome of Blacksmithing Knowledge + 235865, -- Ethereal Tome of Alchemy Knowledge + } + + AB.KnowledgeCategory = CreateFromMixins(AB.CategoryClass) + local KnowledgeCategory = AB.KnowledgeCategory + + function KnowledgeCategory:new() + local obj = CreateFromMixins(self) + obj:init("Knowledge", "Interface\\Icons\\INV_Misc_Book_08") + obj.items = KNOWLEDGE_ITEMS + return obj + end + + AutoBarCategoryList["Knowledge"] = KnowledgeCategory:new() + + -- Crests Category + local CRESTS_ITEMS = { + -- Add your crest item IDs here, one per line + -- Example: + -- 240931, -- Item Name + 240931, -- Triumphant Satchel of Carved Ethereal Crests + } + + AB.CrestsCategory = CreateFromMixins(AB.CategoryClass) + local CrestsCategory = AB.CrestsCategory + + function CrestsCategory:new() + local obj = CreateFromMixins(self) + obj:init("Crests", "Interface\\Icons\\INV_10_gearupgrade_awakenedseal") + obj.items = CRESTS_ITEMS + return obj + end + + AutoBarCategoryList["Crests"] = CrestsCategory:new() + end