diff --git a/.vscode/settings.json b/.vscode/settings.json index 3b373816..43990678 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -54,7 +54,13 @@ "require", "tInsertUnique", "CLOSE", - "LOOT_ITEM" + "LOOT_ITEM", + "ToggleDropDownMenu", + "UIDropDownMenu_HandleGlobalMouseEvent", + "CloseMenus", + "ColorPickerFrame", + "VIDEO_QUALITY_LABEL6", + "DEFAULT_CHAT_FRAME" ], "Lua.diagnostics.disable": [ "undefined-doc-name", diff --git a/Classes/Lib/RxLua/Observer.lua b/Classes/Lib/RxLua/Observer.lua index 9cb0657a..5037be2e 100644 --- a/Classes/Lib/RxLua/Observer.lua +++ b/Classes/Lib/RxLua/Observer.lua @@ -6,7 +6,7 @@ local util = addon.Require("rx.Util") -- @description Observers are simple objects that receive values from Observables. local Observer = addon.Init("rx.Observer") Observer.__index = Observer -Observer.__tostring = util.constant('Observer') +Observer.__tostring = util.constant("Observer") --- Creates a new Observer. -- @arg {function=} onNext - Called when the Observable produces a value. @@ -14,37 +14,38 @@ Observer.__tostring = util.constant('Observer') -- @arg {function=} onCompleted - Called when the Observable completes normally. -- @returns {Observer} function Observer.create(onNext, onError, onCompleted) - local self = { - _onNext = onNext or util.noop, - _onError = onError or error, - _onCompleted = onCompleted or util.noop, - stopped = false - } + ---@class rx.Observer + local self = { + _onNext = onNext or util.noop, + _onError = onError or error, + _onCompleted = onCompleted or util.noop, + stopped = false, + } - return setmetatable(self, Observer) + return setmetatable(self, Observer) end --- Pushes zero or more values to the Observer. -- @arg {*...} values function Observer:onNext(...) - if not self.stopped then - self._onNext(...) - end + if not self.stopped then + self._onNext(...) + end end --- Notify the Observer that an error has occurred. -- @arg {string=} message - A string describing what went wrong. function Observer:onError(message) - if not self.stopped then - self.stopped = true - self._onError(message) - end + if not self.stopped then + self.stopped = true + self._onError(message) + end end --- Notify the Observer that the sequence has completed and will produce no more values. function Observer:onCompleted() - if not self.stopped then - self.stopped = true - self._onCompleted() - end + if not self.stopped then + self.stopped = true + self._onCompleted() + end end diff --git a/Classes/Lib/RxLua/Subjects/Subject.lua b/Classes/Lib/RxLua/Subjects/Subject.lua index 3a6ce7ea..bf7f2d69 100644 --- a/Classes/Lib/RxLua/Subjects/Subject.lua +++ b/Classes/Lib/RxLua/Subjects/Subject.lua @@ -11,76 +11,75 @@ local util = addon.Require("rx.Util") -- be broadcasted to any subscribed Observers. local Subject = setmetatable(addon.Init("rx.Subject"), Observable) Subject.__index = Subject -Subject.__tostring = util.constant('Subject') +Subject.__tostring = util.constant("Subject") --- Creates a new Subject. --- @returns {Subject} function Subject.create() - local self = { - observers = {}, - stopped = false - } - - return setmetatable(self, Subject) + ---@class rx.Subject + local self = { + observers = {}, + stopped = false, + } + return setmetatable(self, Subject) end --- Creates a new Observer and attaches it to the Subject. --- @arg {function|table} onNext|observer - A function called when the Subject produces a value or --- an existing Observer to attach to the Subject. --- @arg {function} onError - Called when the Subject terminates due to an error. --- @arg {function} onCompleted - Called when the Subject completes normally. +--- @param onNext function|rx.Observer A function called when the Subject produces a value or +--- an existing Observer to attach to the Subject. +--- @param onError function Called when the Subject terminates due to an error. +--- @param onCompleted function Called when the Subject completes normally. function Subject:subscribe(onNext, onError, onCompleted) - local observer + local observer - if util.isa(onNext, Observer) then - observer = onNext - else - observer = Observer.create(onNext, onError, onCompleted) - end + if util.isa(onNext, Observer) then + observer = onNext + else + observer = Observer.create(onNext, onError, onCompleted) + end - table.insert(self.observers, observer) + table.insert(self.observers, observer) - return Subscription.create(function() - for i = 1, #self.observers do - if self.observers[i] == observer then - table.remove(self.observers, i) - return - end - end - end) + return Subscription.create(function() + for i = 1, #self.observers do + if self.observers[i] == observer then + table.remove(self.observers, i) + return + end + end + end) end --- Pushes zero or more values to the Subject. They will be broadcasted to all Observers. --- @arg {*...} values +--- @param ... any values function Subject:onNext(...) - if not self.stopped then - for i = #self.observers, 1, -1 do - self.observers[i]:onNext(...) - end - end + if not self.stopped then + for i = #self.observers, 1, -1 do + self.observers[i]:onNext(...) + end + end end --- Signal to all Observers that an error has occurred. --- @arg {string=} message - A string describing what went wrong. +--- @param message string? A string describing what went wrong. function Subject:onError(message) - if not self.stopped then - for i = #self.observers, 1, -1 do - self.observers[i]:onError(message) - end + if not self.stopped then + for i = #self.observers, 1, -1 do + self.observers[i]:onError(message) + end - self.stopped = true - end + self.stopped = true + end end --- Signal to all Observers that the Subject will not produce any more values. function Subject:onCompleted() - if not self.stopped then - for i = #self.observers, 1, -1 do - self.observers[i]:onCompleted() - end + if not self.stopped then + for i = #self.observers, 1, -1 do + self.observers[i]:onCompleted() + end - self.stopped = true - end + self.stopped = true + end end Subject.__call = Subject.onNext diff --git a/Classes/Lib/RxLua/Util.lua b/Classes/Lib/RxLua/Util.lua index 1ad222df..9453b2a3 100644 --- a/Classes/Lib/RxLua/Util.lua +++ b/Classes/Lib/RxLua/Util.lua @@ -1,5 +1,6 @@ --- @type RCLootCouncil local addon = select(2, ...) +---@class rx.Util local util = addon.Init("rx.Util") util.pack = table.pack or function(...) return { n = select('#', ...), ... } end diff --git a/Classes/Utils/GroupLoot.lua b/Classes/Utils/GroupLoot.lua index cda8b297..53e245de 100644 --- a/Classes/Utils/GroupLoot.lua +++ b/Classes/Utils/GroupLoot.lua @@ -12,7 +12,7 @@ local ItemUtils = addon.Require "Utils.Item" --- @class OnLootRoll --- Called everytime we're auto rolling for loot. --- Subscriber functions are called with args: `itemLink` ,`rollID`, `rollType` ---- @field subscribe fun(onNext: fun(link:ItemLink, rollID:integer, rollType:RollType), onError:fun(message:string), onComplete:fun()): rx.Subscription +--- @field subscribe fun(self:OnLootRoll, onNext: fun(link:ItemLink, rollID:integer, rollType:RollType), onError:fun(message:string), onComplete:fun()): rx.Subscription GroupLoot.OnLootRoll = Subject.create() --- @type table @@ -48,9 +48,9 @@ function GroupLoot:OnStartLootRoll(_, rollID) self.Log:d(link, "is ignored, bailing.") return end - local binStatus = self:GetStatusBinary() + self.Log:D("Status:", self:GetStatusBinary()) if self:ShouldPassOnLoot() then - self.Log:d("Passing on loot", link, binStatus) + self.Log:d("Passing on loot", link) self:RollOnLoot(rollID, 0) self.OnLootRoll(link, rollID, 0) elseif self:ShouldRollOnLoot() then @@ -63,7 +63,7 @@ function GroupLoot:OnStartLootRoll(_, rollID) else roll = 2 end - self.Log:d("Rolling on loot", link, roll, binStatus) + self.Log:d("Rolling on loot", link, roll) self:RollOnLoot(rollID, roll) self.OnLootRoll(link, rollID, roll) end diff --git a/core.lua b/core.lua index 04f010c5..40fac2a5 100644 --- a/core.lua +++ b/core.lua @@ -2088,7 +2088,7 @@ end --- Returns the active module if found or fails silently. --- Always use this when calling functions in another module. --- @param module DefaultModules|UserModules Index in self.defaultModules. ---- @return AceAddon? #The module object of the active module or nil if not found. Prioritises userModules if set. +--- @return AceModule? #The module object of the active module or nil if not found. Prioritises userModules if set. function RCLootCouncil:GetActiveModule(module) return self:GetModule(userModules[module] or defaultModules[module], false) end