From 1bd0125e95fd1cf5e6a088db15b50cb8e5419fa9 Mon Sep 17 00:00:00 2001 From: "James D. Callahan III" Date: Sat, 5 Mar 2011 21:12:24 -0600 Subject: [PATCH] Code cleanup, and reference globals from our local _G. --- core.lua | 489 ++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 235 insertions(+), 254 deletions(-) diff --git a/core.lua b/core.lua index 15d7003..ed6a045 100644 --- a/core.lua +++ b/core.lua @@ -25,30 +25,16 @@ This source code is released under All Rights Reserved. ------------------------------------------------------------------------------- local _G = getfenv(0) -local tostring = _G.tostring -local tonumber = _G.tonumber - +-- Functions local pairs, ipairs = _G.pairs, _G.ipairs local select = _G.select +local tonumber, tostring = _G.tonumber, _G.tostring +local type = _G.type -local table = _G.table - -local tconcat = table.concat -local tinsert = table.insert - +-- Libraries local bit = _G.bit - local string = _G.string -local strformat = string.format -local strfind = string.find -local strmatch = string.match -local strlower = string.lower - -------------------------------------------------------------------------------- --- Localized Blizzard API. -------------------------------------------------------------------------------- -local GetNumTradeSkills = _G.GetNumTradeSkills -local GetSpellInfo = _G.GetSpellInfo +local table = _G.table ------------------------------------------------------------------------------- -- AddOn namespace. @@ -82,7 +68,7 @@ local SpecialtyTable -- Set up the private intra-file namespace. local private = select(2, ...) -private.build_num = select(2, GetBuildInfo()) +private.build_num = select(2, _G.GetBuildInfo()) private.custom_list = {} private.mob_list = {} @@ -120,7 +106,7 @@ do for idx, lib in ipairs(REQUIRED_LIBS) do if not LibStub:GetLibrary(lib, true) then missing = true - addon:Print(strformat(L["MISSING_LIBRARY"], lib)) + addon:Print(L["MISSING_LIBRARY"]:format(lib)) end end return missing @@ -139,7 +125,7 @@ end -- Define the static popups we're going to call when people haven't scanned or -- when current filters are blocking all recipes from being displayed. ------------------------------------------------------------------------------- -StaticPopupDialogs["ARL_NOTSCANNED"] = { +_G.StaticPopupDialogs["ARL_NOTSCANNED"] = { text = L["NOTSCANNED"], button1 = _G.OKAY, timeout = 0, @@ -148,7 +134,7 @@ StaticPopupDialogs["ARL_NOTSCANNED"] = { hideOnEscape = 1 } -StaticPopupDialogs["ARL_ALLFILTERED"] = { +_G.StaticPopupDialogs["ARL_ALLFILTERED"] = { text = L["ALL_FILTERED"], button1 = _G.OKAY, timeout = 0, @@ -157,7 +143,7 @@ StaticPopupDialogs["ARL_ALLFILTERED"] = { hideOnEscape = 1 } -StaticPopupDialogs["ARL_ALLKNOWN"] = { +_G.StaticPopupDialogs["ARL_ALLKNOWN"] = { text = L["ARL_ALLKNOWN"], button1 = _G.OKAY, timeout = 0, @@ -166,7 +152,7 @@ StaticPopupDialogs["ARL_ALLKNOWN"] = { hideOnEscape = 1 } -StaticPopupDialogs["ARL_ALLEXCLUDED"] = { +_G.StaticPopupDialogs["ARL_ALLEXCLUDED"] = { text = L["ARL_ALLEXCLUDED"], button1 = _G.OKAY, timeout = 0, @@ -175,7 +161,7 @@ StaticPopupDialogs["ARL_ALLEXCLUDED"] = { hideOnEscape = 1 } -StaticPopupDialogs["ARL_SEARCHFILTERED"] = { +_G.StaticPopupDialogs["ARL_SEARCHFILTERED"] = { text = L["ARL_SEARCHFILTERED"], button1 = _G.OKAY, timeout = 0, @@ -199,11 +185,9 @@ end -- Functions common to most files in the AddOn. ------------------------------------------------------------------------------- function private.SetTextColor(color_code, text) - return string.format("|cff%s%s|r", color_code or "ffffff", text) + return ("|cff%s%s|r"):format(color_code or "ffffff", text) end - - ------------------------------------------------------------------------------- -- Debugger. ------------------------------------------------------------------------------- @@ -222,7 +206,7 @@ do function addon:DumpMembers(match) table.wipe(output) - tinsert(output, "Addon Object members.\n") + table.insert(output, "Addon Object members.\n") local count = 0 @@ -230,12 +214,12 @@ do local val_type = type(value) if not match or val_type == match then - tinsert(output, key.. " ("..val_type..")") + table.insert(output, ("%s (%s)"):format(key, val_type)) count = count + 1 end end - tinsert(output, string.format("\n%d found\n", count)) - self:DisplayTextDump(nil, nil, tconcat(output, "\n")) + table.insert(output, ("\n%d found\n"):format(count)) + self:DisplayTextDump(nil, nil, table.concat(output, "\n")) end end -- do @@ -474,7 +458,7 @@ function addon:OnInitialize() self:Print("Error: Database not loaded correctly. Please exit out of WoW and delete the ARL database file (AckisRecipeList.lua) found in: \\World of Warcraft\\WTF\\Account\\>\\SavedVariables\\") return end - local version = GetAddOnMetadata("AckisRecipeList", "Version") + local version = _G.GetAddOnMetadata("AckisRecipeList", "Version") local debug_version = false local alpha_version = false @@ -499,13 +483,13 @@ function addon:OnInitialize() ------------------------------------------------------------------------------- -- Create the scan button ------------------------------------------------------------------------------- - local scan_button = CreateFrame("Button", nil, UIParent, "UIPanelButtonTemplate") + local scan_button = _G.CreateFrame("Button", nil, _G.UIParent, "UIPanelButtonTemplate") scan_button:SetHeight(20) scan_button:RegisterForClicks("LeftButtonUp") scan_button:SetScript("OnClick", function(self, button, down) - local cur_profession = GetTradeSkillLine() + local cur_profession = _G.GetTradeSkillLine() local MainPanel = addon.Frame local prev_profession @@ -533,11 +517,13 @@ function addon:OnInitialize() scan_button:SetScript("OnEnter", function(self) - GameTooltip_SetDefaultAnchor(GameTooltip, self) - GameTooltip:SetText(L["SCAN_RECIPES_DESC"]) - GameTooltip:Show() + local tooltip = _G.GameTooltip + + _G.GameTooltip_SetDefaultAnchor(tooltip, self) + tooltip:SetText(L["SCAN_RECIPES_DESC"]) + tooltip:Show() end) - scan_button:SetScript("OnLeave", function() GameTooltip:Hide() end) + scan_button:SetScript("OnLeave", function() _G.GameTooltip:Hide() end) scan_button:SetText(L["Scan"]) self.scan_button = scan_button @@ -561,7 +547,7 @@ function addon:OnInitialize() ------------------------------------------------------------------------------- -- Hook GameTooltip so we can show information on mobs that drop/sell/train ------------------------------------------------------------------------------- - GameTooltip:HookScript("OnTooltipSetUnit", + _G.GameTooltip:HookScript("OnTooltipSetUnit", function(self) if not addon.db.profile.recipes_in_tooltips then return @@ -571,7 +557,7 @@ function addon:OnInitialize() if not unit then return end - local guid = UnitGUID(unit) + local guid = _G.UnitGUID(unit) if not guid then return @@ -582,23 +568,24 @@ function addon:OnInitialize() if not unit or not unit.item_list then return end + local player = private.Player local recipe_list = private.recipe_list local shifted = _G.IsShiftKeyDown() local count = 0 for spell_id in pairs(unit.item_list) do local recipe = recipe_list[spell_id] - local recipe_prof = GetSpellInfo(recipe.profession) - local scanned = Player.has_scanned[recipe_prof] + local recipe_prof = _G.GetSpellInfo(recipe.profession) + local scanned = player.has_scanned[recipe_prof] if scanned then - local skill_level = Player.professions[recipe_prof] + local skill_level = player.professions[recipe_prof] local has_level = skill_level and (type(skill_level) == "boolean" and true or skill_level >= recipe.skill_level) - if ((not recipe:HasState("KNOWN") and has_level) or shifted) and Player:HasRecipeFaction(recipe) then - local _, _, _, hex = GetItemQualityColor(recipe.quality) + if ((not recipe:HasState("KNOWN") and has_level) or shifted) and player:HasRecipeFaction(recipe) then + local _, _, _, hex = _G.GetItemQualityColor(recipe.quality) - self:AddLine(string.format("%s: %s%s|r (%d)", recipe.profession, hex, recipe.name, recipe.skill_level)) + self:AddLine(("%s: %s%s|r (%d)"):format(recipe.profession, hex, recipe.name, recipe.skill_level)) count = count + 1 end end @@ -629,39 +616,39 @@ function addon:OnEnable() ------------------------------------------------------------------------------- local scan_button = self.scan_button - if Skillet and Skillet:IsActive() then - scan_button:SetParent(SkilletFrame) - Skillet:AddButtonToTradeskillWindow(scan_button) + if _G.Skillet and _G.Skillet:IsActive() then + scan_button:SetParent(_G.SkilletFrame) + _G.Skillet:AddButtonToTradeskillWindow(scan_button) scan_button:SetWidth(80) - elseif MRTAPI then - MRTAPI:RegisterHandler("TradeSkillWindowOnShow", + elseif _G.MRTAPI then + _G.MRTAPI:RegisterHandler("TradeSkillWindowOnShow", function() - scan_button:SetParent(MRTSkillFrame) + scan_button:SetParent(_G.MRTSkillFrame) scan_button:ClearAllPoints() - scan_button:SetPoint("RIGHT", MRTSkillFrameCloseButton, "LEFT", 4, 0) + scan_button:SetPoint("RIGHT", _G.MRTSkillFrameCloseButton, "LEFT", 4, 0) scan_button:SetWidth(scan_button:GetTextWidth() + 10) scan_button:Show() end) - elseif ATSWFrame then - scan_button:SetParent(ATSWFrame) + elseif _G.ATSWFrame then + scan_button:SetParent(_G.ATSWFrame) scan_button:ClearAllPoints() - if TradeJunkieMain and TJ_OpenButtonATSW then - scan_button:SetPoint("RIGHT", TJ_OpenButtonATSW, "LEFT", 0, 0) + if _G.TradeJunkieMain and _G.TJ_OpenButtonATSW then + scan_button:SetPoint("RIGHT", _G.TJ_OpenButtonATSW, "LEFT", 0, 0) else - scan_button:SetPoint("RIGHT", ATSWOptionsButton, "LEFT", 0, 0) + scan_button:SetPoint("RIGHT", _G.ATSWOptionsButton, "LEFT", 0, 0) end - scan_button:SetHeight(ATSWOptionsButton:GetHeight()) - scan_button:SetWidth(ATSWOptionsButton:GetWidth()) - elseif CauldronFrame then - scan_button:SetParent(CauldronFrame) + scan_button:SetHeight(_G.ATSWOptionsButton:GetHeight()) + scan_button:SetWidth(_G.ATSWOptionsButton:GetWidth()) + elseif _G.CauldronFrame then + scan_button:SetParent(_G.CauldronFrame) scan_button:ClearAllPoints() - scan_button:SetPoint("TOP", CauldronFrame, "TOPRIGHT", -58, -52) + scan_button:SetPoint("TOP", _G.CauldronFrame, "TOPRIGHT", -58, -52) scan_button:SetWidth(90) - elseif BPM_ShowTrainerFrame then - scan_button:SetParent(BPM_ShowTrainerFrame) + elseif _G.BPM_ShowTrainerFrame then + scan_button:SetParent(_G.BPM_ShowTrainerFrame) scan_button:ClearAllPoints() - scan_button:SetPoint("RIGHT", BPM_ShowTrainerFrame, "LEFT", 4, 0) + scan_button:SetPoint("RIGHT", _G.BPM_ShowTrainerFrame, "LEFT", 4, 0) scan_button:SetWidth(scan_button:GetTextWidth() + 10) scan_button:Show() end @@ -676,8 +663,8 @@ function addon:OnEnable() scan_button:Enable() -- Add an option so that ARL will work with Manufac - if Manufac then - Manufac.options.args.ARLScan = { + if _G.Manufac then + _G.Manufac.options.args.ARLScan = { type = 'execute', name = L["Scan"], desc = L["SCAN_RECIPES_DESC"], @@ -692,42 +679,42 @@ function addon:OnEnable() ------------------------------------------------------------------------------- do local AlchemySpec = { - [GetSpellInfo(28674)] = 28674, - [GetSpellInfo(28678)] = 28678, - [GetSpellInfo(28676)] = 28676, + [_G.GetSpellInfo(28674)] = 28674, + [_G.GetSpellInfo(28678)] = 28678, + [_G.GetSpellInfo(28676)] = 28676, } local BlacksmithSpec = { - [GetSpellInfo(9788)] = 9788, -- Armorsmith - [GetSpellInfo(17041)] = 17041, -- Master Axesmith - [GetSpellInfo(17040)] = 17040, -- Master Hammersmith - [GetSpellInfo(17039)] = 17039, -- Master Swordsmith - [GetSpellInfo(9787)] = 9787, -- Weaponsmith + [_G.GetSpellInfo(9788)] = 9788, -- Armorsmith + [_G.GetSpellInfo(17041)] = 17041, -- Master Axesmith + [_G.GetSpellInfo(17040)] = 17040, -- Master Hammersmith + [_G.GetSpellInfo(17039)] = 17039, -- Master Swordsmith + [_G.GetSpellInfo(9787)] = 9787, -- Weaponsmith } local EngineeringSpec = { - [GetSpellInfo(20219)] = 20219, -- Gnomish - [GetSpellInfo(20222)] = 20222, -- Goblin + [_G.GetSpellInfo(20219)] = 20219, -- Gnomish + [_G.GetSpellInfo(20222)] = 20222, -- Goblin } local LeatherworkSpec = { - [GetSpellInfo(10657)] = 10657, -- Dragonscale - [GetSpellInfo(10659)] = 10659, -- Elemental - [GetSpellInfo(10661)] = 10661, -- Tribal + [_G.GetSpellInfo(10657)] = 10657, -- Dragonscale + [_G.GetSpellInfo(10659)] = 10659, -- Elemental + [_G.GetSpellInfo(10661)] = 10661, -- Tribal } local TailorSpec = { - [GetSpellInfo(26797)] = 26797, -- Spellfire - [GetSpellInfo(26801)] = 26801, -- Shadoweave - [GetSpellInfo(26798)] = 26798, -- Primal Mooncloth + [_G.GetSpellInfo(26797)] = 26797, -- Spellfire + [_G.GetSpellInfo(26801)] = 26801, -- Shadoweave + [_G.GetSpellInfo(26798)] = 26798, -- Primal Mooncloth } SpecialtyTable = { - [GetSpellInfo(51304)] = AlchemySpec, - [GetSpellInfo(51300)] = BlacksmithSpec, - [GetSpellInfo(51306)] = EngineeringSpec, - [GetSpellInfo(51302)] = LeatherworkSpec, - [GetSpellInfo(51309)] = TailorSpec, + [_G.GetSpellInfo(51304)] = AlchemySpec, + [_G.GetSpellInfo(51300)] = BlacksmithSpec, + [_G.GetSpellInfo(51306)] = EngineeringSpec, + [_G.GetSpellInfo(51302)] = LeatherworkSpec, + [_G.GetSpellInfo(51309)] = TailorSpec, } -- Populate the Specialty table with all Specialties, adding alchemy even though no recipes have alchemy filters @@ -746,8 +733,8 @@ function addon:OnDisable() end -- Remove the option from Manufac - if Manufac then - Manufac.options.args.ARLScan = nil + if _G.Manufac then + _G.Manufac.options.args.ARLScan = nil end end @@ -777,37 +764,37 @@ do local pname = UnitName("player") local prealm = GetRealmName() - local tradename = GetTradeSkillLine() + local tradename = _G.GetTradeSkillLine() -- Actual alt information saved here. -Torhal addon.db.global.tradeskill = addon.db.global.tradeskill or {} addon.db.global.tradeskill[prealm] = addon.db.global.tradeskill[prealm] or {} addon.db.global.tradeskill[prealm][pname] = addon.db.global.tradeskill[prealm][pname] or {} - + -- If this is our own skill, save it. Otherwise, make sure it's gone. addon.db.global.tradeskill[prealm][pname][tradename] = (not is_linked) and tradelink or nil local scan_button = self.scan_button local scan_parent = scan_button:GetParent() - if not scan_parent or scan_parent == UIParent then - scan_button:SetParent(TradeSkillFrame) + if not scan_parent or scan_parent == _G.UIParent then + scan_button:SetParent(_G.TradeSkillFrame) scan_parent = scan_button:GetParent() end - if scan_parent == TradeSkillFrame then + if scan_parent == _G.TradeSkillFrame then scan_button:ClearAllPoints() local loc = addon.db.profile.scanbuttonlocation if loc == "TR" then - scan_button:SetPoint("RIGHT", TradeSkillFrameCloseButton, "LEFT",4,0) + scan_button:SetPoint("RIGHT", _G.TradeSkillFrameCloseButton, "LEFT",4,0) elseif loc == "TL" then - scan_button:SetPoint("LEFT", TradeSkillFramePortrait, "RIGHT",2,12) + scan_button:SetPoint("LEFT", _G.TradeSkillFramePortrait, "RIGHT",2,12) elseif loc == "BR" then - scan_button:SetPoint("TOP", TradeSkillCancelButton, "BOTTOM",0,-5) + scan_button:SetPoint("TOP", _G.TradeSkillCancelButton, "BOTTOM",0,-5) elseif loc == "BL" then - scan_button:SetPoint("TOP", TradeSkillCreateAllButton, "BOTTOM",0,-5) + scan_button:SetPoint("TOP", _G.TradeSkillCreateAllButton, "BOTTOM",0,-5) end scan_button:SetWidth(scan_button:GetTextWidth() + 10) end @@ -820,14 +807,14 @@ function addon:TRADE_SKILL_CLOSE() self.Frame:Hide() end - if not Skillet then + if not _G.Skillet then addon.scan_button:Hide() end end do local last_update = 0 - local updater = CreateFrame("Frame", nil, UIParent) + local updater = _G.CreateFrame("Frame", nil, _G.UIParent) updater:Hide() updater:SetScript("OnUpdate", @@ -835,7 +822,7 @@ do last_update = last_update + elapsed if last_update >= 0.5 then - local profession = GetTradeSkillLine() + local profession = _G.GetTradeSkillLine() if profession ~= "UNKNOWN" then addon:Scan(false, true) @@ -913,19 +900,19 @@ do return bitfield and (bit.band(bitfield, value) == value) or false end local SKILL_LEVEL_FORMAT = "[%d]" - local SPELL_ENCHANTING = GetSpellInfo(51313) + local SPELL_ENCHANTING = _G.GetSpellInfo(51313) local function Recipe_GetDisplayName(recipe_entry) - local _, _, _, quality_color = GetItemQualityColor(recipe_entry.quality) + local _, _, _, quality_color = _G.GetItemQualityColor(recipe_entry.quality) local recipe_name = recipe_entry.name if private.ordered_professions[addon.Frame.profession] == SPELL_ENCHANTING then recipe_name = string.gsub(recipe_name, _G.ENSCRIBE.." ", "") end - local recipe_string = string.format("%s%s|r", quality_color, recipe_name) - local skill_level = Player["ProfessionLevel"] + local recipe_string = ("%s%s|r"):format(quality_color, recipe_name) + local has_faction = private.Player:HasProperRepLevel(recipe_entry.acquire_data[A.REPUTATION]) + local skill_level = private.Player["ProfessionLevel"] local recipe_level = recipe_entry.skill_level - local has_faction = Player:HasProperRepLevel(recipe_entry.acquire_data[A.REPUTATION]) local diff_color @@ -945,14 +932,14 @@ do --@end-debug@ diff_color = "trivial" end - local level_text = string.format(private.SetTextColor(private.difficulty_colors[diff_color], SKILL_LEVEL_FORMAT), recipe_level) + local level_text = private.SetTextColor(private.difficulty_colors[diff_color], SKILL_LEVEL_FORMAT):format(recipe_level) local skill_view = addon.db.profile.skill_view - recipe_string = skill_view and string.format("%s - %s", level_text, recipe_string) or string.format("%s - %s", recipe_string, level_text) + recipe_string = skill_view and ("%s - %s"):format(level_text, recipe_string) or ("%s - %s"):format(recipe_string, level_text) if addon.db.profile.exclusionlist[recipe_entry.spell_id] then - recipe_string = string.format("** %s **", recipe_string) + recipe_string = ("** %s **"):format(recipe_string) end return recipe_string end @@ -987,8 +974,8 @@ do ["skill_level"] = skill_level, ["item_id"] = item_id, ["quality"] = quality, - ["profession"] = GetSpellInfo(profession), - ["name"] = GetSpellInfo(spell_id) or ("%s: %d"):format(_G.UNKNOWN, tonumber(spell_id)), + ["profession"] = _G.GetSpellInfo(profession), + ["name"] = _G.GetSpellInfo(spell_id) or ("%s: %d"):format(_G.UNKNOWN, tonumber(spell_id)), ["flags"] = {}, ["acquire_data"] = {}, ["specialty"] = specialty, -- Assumption: there will only be 1 speciality for a trade skill @@ -1007,7 +994,7 @@ do } if not recipe.name then - self:Print(strformat(L["SpellIDCache"], spell_id)) + self:Print(L["SpellIDCache"]:format(spell_id)) end recipe_list[spell_id] = recipe end @@ -1168,7 +1155,7 @@ do -- @usage AckisRecipeList:AddRecipeLimitedVendor(3449, 4878, 1) -- @param spell_id The [[http://www.wowpedia.org/SpellLink|Spell ID]] of the recipe which acquire methods are being added to -- @param ... A listing of limited supply vendors that sell the recipe followed by the amount they sell. - -- @return None. + -- @return None. function addon:AddRecipeLimitedVendor(spell_id, ...) GenericAddRecipeAcquire(spell_id, A.VENDOR, "Limited Vendor", private.vendor_list, ...) end @@ -1378,7 +1365,7 @@ function addon:InitializeProfession(profession) end do - local fa = GetSpellInfo(45542) + local fa = _G.GetSpellInfo(45542) -- Code snippet stolen from GearGuage by Torhal and butchered by Ackis local function StrSplit(input) @@ -1398,7 +1385,7 @@ do arg2 = (arg2 and arg2:lower() or var1:lower()) end end - return arg1, arg2, var2 + return arg1, arg2, var2 -- Ackis: var2 doesn't exist at this point. I'm not sure what you're trying to do with it so I'm not fucking with it. -Torhal end -- Determines what to do when the slash command is called. @@ -1407,44 +1394,41 @@ do local arg1, arg2, arg3 = StrSplit(input) -- Open About panel if there's no parameters or if we do /arl about - if not arg1 or (arg1 and arg1:trim() == "") or arg1 == strlower(L["Sorting"]) or arg1 == strlower(L["Sort"]) or arg1 == strlower(_G.DISPLAY) then - InterfaceOptionsFrame_OpenToCategory(self.optionsFrame) - elseif (arg1 == strlower(L["About"])) then - if (self.optionsFrame["About"]) then - InterfaceOptionsFrame_OpenToCategory(self.optionsFrame["About"]) + if not arg1 or (arg1 and arg1:trim() == "") or arg1 == L["Sorting"]:lower() or arg1 == L["Sort"]:lower() or arg1 == _G.DISPLAY:lower() then + _G.InterfaceOptionsFrame_OpenToCategory(self.optionsFrame) + elseif arg1 == L["About"]:lower() then + if self.optionsFrame["About"] then + _G.InterfaceOptionsFrame_OpenToCategory(self.optionsFrame["About"]) else - InterfaceOptionsFrame_OpenToCategory(self.optionsFrame) + _G.InterfaceOptionsFrame_OpenToCategory(self.optionsFrame) end - elseif (arg1 == strlower(L["Profile"])) then - InterfaceOptionsFrame_OpenToCategory(self.optionsFrame["Profiles"]) - elseif (arg1 == strlower(L["Documentation"])) then - InterfaceOptionsFrame_OpenToCategory(self.optionsFrame["Documentation"]) - elseif (arg1 == strlower(L["Scan"])) then + elseif arg1 == L["Profile"]:lower() then + _G.InterfaceOptionsFrame_OpenToCategory(self.optionsFrame["Profiles"]) + elseif arg1 == L["Documentation"]:lower() then + _G.InterfaceOptionsFrame_OpenToCategory(self.optionsFrame["Documentation"]) + elseif arg1 == L["Scan"]:lower() then if not arg2 then self:Print(L["COMMAND_LINE_SCAN"]) else - CastSpellByName(arg2) - -- If the ARL window is shown, hide it. - if ARL.Frame and ARL.Frame:IsVisible() then - ARL.Frame:Hide() - -- If not, run the scan. + _G.CastSpellByName(arg2) + + if self.Frame and self.Frame:IsVisible() then + self.Frame:Hide() else self:Scan(false, false) end end - elseif (arg1 == strlower("scandata")) then + elseif arg1 == "scandata" then self:ScanSkillLevelData() - elseif (arg1 == strlower("scanprof")) then + elseif arg1 == "scanprof" then self:ScanProfession("all") - elseif (arg1 == strlower("tradelinks")) then + elseif arg1 == "tradelinks" then self:GenerateLinks() else -- What happens when we get here? LibStub("AceConfigCmd-3.0"):HandleCommand("arl", "Ackis Recipe List", arg1) end - end - end --- Public API function to initialize all of the lookup lists - self-nils once run. @@ -1478,43 +1462,44 @@ do recipe:AddState("LINKED") end end - + --- Causes a scan of the tradeskill to be conducted. Function called when the scan button is clicked. Parses recipes and displays output -- @name AckisRecipeList:Scan -- @usage AckisRecipeList:Scan(true) -- @param textdump Boolean indicating if we want the output to be a text dump, or if we want to use the ARL GUI -- @return A frame with either the text dump, or the ARL frame function addon:Scan(textdump, is_refresh) - local current_prof, prof_level = GetTradeSkillLine() + local current_prof, prof_level = _G.GetTradeSkillLine() -- Bail if we haven't opened a tradeskill frame. if current_prof == "UNKNOWN" then self:Print(L["OpenTradeSkillWindow"]) return end + local player = private.Player -- Set the current profession level, and update the cached data. - Player["ProfessionLevel"] = prof_level + player["ProfessionLevel"] = prof_level -- Make sure we're only updating a profession the character actually knows - this could be a scan from a tradeskill link. local is_linked = _G.IsTradeSkillLinked() or _G.IsTradeSkillGuild() - if not is_linked and Player.professions[current_prof] then - Player.professions[current_prof] = prof_level - Player.has_scanned[current_prof] = true + if not is_linked and player.professions[current_prof] then + player.professions[current_prof] = prof_level + player.has_scanned[current_prof] = true end -- Get the current profession Specialty local specialty = SpecialtyTable[current_prof] for index = 1, 25, 1 do - local spellName = GetSpellBookItemName(index, BOOKTYPE_SPELL) + local spellName = _G.GetSpellBookItemName(index, _G.BOOKTYPE_SPELL) if not spellName or index == 25 then - Player["Specialty"] = nil + player["Specialty"] = nil break elseif specialty and specialty[spellName] then - Player["Specialty"] = specialty[spellName] + player["Specialty"] = specialty[spellName] break end end @@ -1524,46 +1509,43 @@ do end -- Add the recipes to the database -- TODO: Figure out what this variable was supposed to be for - it isn't used anywhere. -Torhal - Player.totalRecipes = addon:InitializeProfession(current_prof) + player.totalRecipes = addon:InitializeProfession(current_prof) ------------------------------------------------------------------------------- -- Scan all recipes and mark the ones we know ------------------------------------------------------------------------------- table.wipe(header_list) - -- Save the state of the "Have Materials" checkbox. - local have_materials = TradeSkillFrame.filterTbl.hasMaterials - -- Save the state of the "Have Skillup" checkbox. - local have_skillup = TradeSkillFrame.filterTbl.hasSkillUp - -- Save the state of the subClassValue - local subclass = TradeSkillFrame.filterTbl.subClassValue - -- Save the state of the slotValue - local slot = TradeSkillFrame.filterTbl.slotValue + -- Save the current state of the TradeSkillFrame so it can be restored after we muck with it. + local have_materials = _G.TradeSkillFrame.filterTbl.hasMaterials + local have_skillup = _G.TradeSkillFrame.filterTbl.hasSkillUp + local subclass = _G.TradeSkillFrame.filterTbl.subClassValue + local slot = _G.TradeSkillFrame.filterTbl.slotValue - if MRTAPI and MRTAPI:PushFilterSelection() then + if _G.MRTAPI and _G.MRTAPI:PushFilterSelection() then -- MrTrader saved the state for us else - if not Skillet and have_materials then - TradeSkillFrame.filterTbl.hasMaterials = false - TradeSkillOnlyShowMakeable(false) + if not _G.Skillet and have_materials then + _G.TradeSkillFrame.filterTbl.hasMaterials = false + _G.TradeSkillOnlyShowMakeable(false) end - if not Skillet and have_skillup then - TradeSkillFrame.filterTbl.hasSkillUp = false - TradeSkillOnlyShowSkillUps(false) + if not _G.Skillet and have_skillup then + _G.TradeSkillFrame.filterTbl.hasSkillUp = false + _G.TradeSkillOnlyShowSkillUps(false) end --UIDropDownMenu_Initialize(TradeSkillFilterDropDown, TradeSkillInvSlotDropDown_Initialize) --UIDropDownMenu_SetSelectedID(TradeSkillFilterDropDown, 1) - SetTradeSkillInvSlotFilter(0, 1, 1) - TradeSkillUpdateFilterBar() - TradeSkillFrame_Update() + _G.SetTradeSkillInvSlotFilter(0, 1, 1) + _G.TradeSkillUpdateFilterBar() + _G.TradeSkillFrame_Update() -- Expand all headers so we can see all the recipes there are - for i = GetNumTradeSkills(), 1, -1 do - local name, tradeType, _, isExpanded = GetTradeSkillInfo(i) + for i = _G.GetNumTradeSkills(), 1, -1 do + local name, tradeType, _, isExpanded = _G.GetTradeSkillInfo(i) if tradeType == "header" and not isExpanded then header_list[name] = true - ExpandTradeSkillSubClass(i) + _G.ExpandTradeSkillSubClass(i) end end end @@ -1572,16 +1554,16 @@ do local SF = private.recipe_state_flags local overwritemap = private.spell_overwrite_map - for i = 1, GetNumTradeSkills() do - local tradeName, tradeType = GetTradeSkillInfo(i) + for i = 1, _G.GetNumTradeSkills() do + local tradeName, tradeType = _G.GetTradeSkillInfo(i) if tradeType ~= "header" then -- Get the trade skill link for the specified recipe - local SpellLink = GetTradeSkillRecipeLink(i) + local spell_link = _G.GetTradeSkillRecipeLink(i) -- Spell ID of the recipe being scanned. - local SpellString = strmatch(SpellLink, "^|c%x%x%x%x%x%x%x%x|H%w+:(%d+)") - local SpellID = tonumber(SpellString) - local recipe = recipe_list[SpellID] + local spell_string = spell_link:match("^|c%x%x%x%x%x%x%x%x|H%w+:(%d+)") + local spell_id = tonumber(spell_string) + local recipe = recipe_list[spell_id] if recipe then -- Mark the first rank of the spell as known if we know rank 2 for certain recipes. @@ -1589,95 +1571,94 @@ do -- ability to learn the lower rank. -- If we have it in the mapping, set the lower rank spell to known - if overwritemap[SpellID] then - local overwriterecipe = recipe_list[overwritemap[SpellID]] + if overwritemap[spell_id] then + local overwriterecipe = recipe_list[overwritemap[spell_id]] if overwriterecipe then togglerecipe(overwriterecipe, is_linked) else - self:Debug(tradeName .. " " .. overwritemap[SpellID] .. L["MissingFromDB"]) + self:Debug(tradeName .. " " .. overwritemap[spell_id] .. L["MissingFromDB"]) end end -- Toggle spell to known togglerecipe(recipe, is_linked) recipes_found = recipes_found + 1 else - self:Debug(tradeName .. " " .. SpellString .. L["MissingFromDB"]) + self:Debug(tradeName .. " " .. spell_string .. L["MissingFromDB"]) end end end -- Close all the headers we've opened -- If Mr Trader is installed use that API - if MRTAPI and MRTAPI:PopFilterSelection() then + if _G.MRTAPI and _G.MRTAPI:PopFilterSelection() then -- MrTrader restored the state for us else -- Collapse all headers that were collapsed before - for i = GetNumTradeSkills(), 1, -1 do - local name, tradeType, _, isExpanded = GetTradeSkillInfo(i) + for i = _G.GetNumTradeSkills(), 1, -1 do + local name, tradeType, _, isExpanded = _G.GetTradeSkillInfo(i) if header_list[name] then - CollapseTradeSkillSubClass(i) + _G.CollapseTradeSkillSubClass(i) end end - -- Restore the state of the "Have Materials" checkbox. - TradeSkillFrame.filterTbl.hasMaterials = have_materials - TradeSkillOnlyShowMakeable(have_materials) - -- Restore the state of "Have Skillup" checkbox. - TradeSkillFrame.filterTbl.hasSkillUp = have_skillup - TradeSkillOnlyShowSkillUps(have_skillup) + -- Restore the state of the things we changed. + _G.TradeSkillFrame.filterTbl.hasMaterials = have_materials + _G.TradeSkillOnlyShowMakeable(have_materials) + _G.TradeSkillFrame.filterTbl.hasSkillUp = have_skillup + _G.TradeSkillOnlyShowSkillUps(have_skillup) - TradeSkillUpdateFilterBar() - TradeSkillFrame_Update() + _G.TradeSkillUpdateFilterBar() + _G.TradeSkillFrame_Update() end - Player.prev_count = Player.foundRecipes - Player.foundRecipes = recipes_found + player.prev_count = player.foundRecipes + player.foundRecipes = recipes_found - if is_refresh and Player.prev_count == recipes_found then + if is_refresh and player.prev_count == recipes_found then return end ------------------------------------------------------------------------------- -- Update the player's reputation levels. ------------------------------------------------------------------------------- - Player["Reputation"] = Player["Reputation"] or {} + player["Reputation"] = player["Reputation"] or {} table.wipe(header_list) -- Number of factions before expansion - local num_factions = GetNumFactions() + local num_factions = _G.GetNumFactions() -- Expand all the headers, storing those which were collapsed. for i = num_factions, 1, -1 do - local name, _, _, _, _, _, _, _, _, isCollapsed = GetFactionInfo(i) + local name, _, _, _, _, _, _, _, _, isCollapsed = _G.GetFactionInfo(i) if isCollapsed then - ExpandFactionHeader(i) + _G.ExpandFactionHeader(i) header_list[name] = true end end -- Number of factions with everything expanded - num_factions = GetNumFactions() + num_factions = _G.GetNumFactions() -- Get the rep levels for i = 1, num_factions, 1 do - local name, _, replevel = GetFactionInfo(i) + local name, _, replevel = _G.GetFactionInfo(i) -- If the rep is greater than neutral if replevel > 4 then -- We use levels of 0, 1, 2, 3, 4 internally for reputation levels, make it correspond here - Player["Reputation"][name] = replevel - 4 + player["Reputation"][name] = replevel - 4 end end -- Collapse the headers again for i = num_factions, 1, -1 do - local name = GetFactionInfo(i) + local name = _G.GetFactionInfo(i) if header_list[name] then - CollapseFactionHeader(i) + _G.CollapseFactionHeader(i) end end @@ -1708,7 +1689,7 @@ end -- @param text The text to be dumped -------------------------------------------------------------------------------- do - local copy_frame = CreateFrame("Frame", "ARLCopyFrame", UIParent) + local copy_frame = _G.CreateFrame("Frame", "ARLCopyFrame", _G.UIParent) copy_frame:SetBackdrop({ bgFile = [[Interface\DialogFrame\UI-DialogBox-Background]], edgeFile = [[Interface\DialogFrame\UI-DialogBox-Border]], @@ -1725,21 +1706,21 @@ do copy_frame:SetBackdropColor(0, 0, 0, 1) copy_frame:SetWidth(750) copy_frame:SetHeight(400) - copy_frame:SetPoint("CENTER", UIParent, "CENTER") + copy_frame:SetPoint("CENTER", _G.UIParent, "CENTER") copy_frame:SetFrameStrata("DIALOG") - table.insert(UISpecialFrames, "ARLCopyFrame") + table.insert(_G.UISpecialFrames, "ARLCopyFrame") - local scrollArea = CreateFrame("ScrollFrame", "ARLCopyScroll", copy_frame, "UIPanelScrollFrameTemplate") + local scrollArea = _G.CreateFrame("ScrollFrame", "ARLCopyScroll", copy_frame, "UIPanelScrollFrameTemplate") scrollArea:SetPoint("TOPLEFT", copy_frame, "TOPLEFT", 8, -30) scrollArea:SetPoint("BOTTOMRIGHT", copy_frame, "BOTTOMRIGHT", -30, 8) - local edit_box = CreateFrame("EditBox", nil, copy_frame) + local edit_box = _G.CreateFrame("EditBox", nil, copy_frame) edit_box:SetMultiLine(true) edit_box:SetMaxLetters(0) edit_box:EnableMouse(true) edit_box:SetAutoFocus(true) - edit_box:SetFontObject(ChatFontNormal) + edit_box:SetFontObject("ChatFontNormal") edit_box:SetWidth(650) edit_box:SetHeight(270) edit_box:SetScript("OnEscapePressed", @@ -1750,7 +1731,7 @@ do scrollArea:SetScrollChild(edit_box) - local close = CreateFrame("Button", nil, copy_frame, "UIPanelCloseButton") + local close = _G.CreateFrame("Button", nil, copy_frame, "UIPanelCloseButton") close:SetPoint("TOPRIGHT", copy_frame, "TOPRIGHT") copy_frame:Hide() @@ -1782,7 +1763,7 @@ do function GetFilterNames() if not FILTER_NAMES then - local is_alliance = (Player.faction == "Alliance") + local is_alliance = (private.Player.faction == "Alliance") FILTER_NAMES = { [1] = BFAC["Alliance"], @@ -1893,12 +1874,12 @@ do table.wipe(text_table) if not output or output == "Comma" then - tinsert(text_table, strformat("Ackis Recipe List Text Dump for %s's %s, in the form of Comma Separated Values.\n ", UnitName("player"), profession)) - tinsert(text_table, "Spell ID,Recipe Name,Skill Level,ARL Filter Flags,Acquire Methods,Known\n") + table.insert(text_table, ("Ackis Recipe List Text Dump for %s's %s, in the form of Comma Separated Values.\n "):format(private.player_name, profession)) + table.insert(text_table, "Spell ID,Recipe Name,Skill Level,ARL Filter Flags,Acquire Methods,Known\n") elseif output == "BBCode" then - tinsert(text_table, strformat("Ackis Recipe List Text Dump for %s's %s, in the form of BBCode.\n", UnitName("player"), profession)) + table.insert(text_table, ("Ackis Recipe List Text Dump for %s's %s, in the form of BBCode.\n"):format(private.player_name, profession)) elseif output == "XML" then - tinsert(text_table, "") + table.insert(text_table, "") end local recipe_list = private.recipe_list @@ -1906,44 +1887,44 @@ do for recipe_id in pairs(recipe_list) do local recipe = recipe_list[recipe_id] - local recipe_prof = GetSpellInfo(recipe.profession) + local recipe_prof = _G.GetSpellInfo(recipe.profession) local is_known = recipe:HasState("KNOWN") if recipe_prof == profession then -- CSV if not output or output == "Comma" then -- Add Spell ID, Name and Skill Level to the list - tinsert(text_table, recipe_id) - tinsert(text_table, ",") - tinsert(text_table, recipe.name) - tinsert(text_table, ",") - tinsert(text_table, recipe.skill_level) - tinsert(text_table, ",\"") + table.insert(text_table, recipe_id) + table.insert(text_table, ",") + table.insert(text_table, recipe.name) + table.insert(text_table, ",") + table.insert(text_table, recipe.skill_level) + table.insert(text_table, ",\"") -- BBCode elseif output == "BBCode" then -- Make the entry red if not is_known then - tinsert(text_table, "[color=red]") + table.insert(text_table, "[color=red]") end - tinsert(text_table, "\n[b]" .. recipe_id .. "[/b] - " .. recipe.name .. " (" .. recipe.skill_level .. ")\n") + table.insert(text_table, "\n[b]" .. recipe_id .. "[/b] - " .. recipe.name .. " (" .. recipe.skill_level .. ")\n") -- Close Color tag if not is_known then - tinsert(text_table, "[/color]\nRecipe Flags:\n[list]") + table.insert(text_table, "[/color]\nRecipe Flags:\n[list]") elseif is_known then - tinsert(text_table, "\nRecipe Flags:\n[list]") + table.insert(text_table, "\nRecipe Flags:\n[list]") end --XML elseif output == "XML" then - tinsert(text_table, "") - tinsert(text_table, " ..recipe_id..") - tinsert(text_table, " "..recipe.name.."") - tinsert(text_table, " ..recipe.skill_level..") - tinsert(text_table, " "..tostring(is_known).."") - tinsert(text_table, " ") + table.insert(text_table, "") + table.insert(text_table, " ..recipe_id..") + table.insert(text_table, " "..recipe.name.."") + table.insert(text_table, " ..recipe.skill_level..") + table.insert(text_table, " "..tostring(is_known).."") + table.insert(text_table, " ") --Name elseif output == "Name" then - tinsert(text_table, recipe.name) + table.insert(text_table, recipe.name) end -- Add in all the filter flags @@ -1958,27 +1939,27 @@ do if bitfield and bit.band(bitfield, flag) == flag then if not output or output == "Comma" then if prev then - tinsert(text_table, ",") + table.insert(text_table, ",") end - tinsert(text_table, filter_names[private.filter_flags[flag_name]]) + table.insert(text_table, filter_names[private.filter_flags[flag_name]]) prev = true -- BBCode elseif output == "BBCode" then - tinsert(text_table, "[*]"..filter_names[private.filter_flags[flag_name]]) + table.insert(text_table, "[*]"..filter_names[private.filter_flags[flag_name]]) elseif output == "XML" then - tinsert(text_table, " "..filter_names[private.filter_flags[flag_name]].."") + table.insert(text_table, " "..filter_names[private.filter_flags[flag_name]].."") end end end end if not output or output == "Comma" then - tinsert(text_table, "\",\"") + table.insert(text_table, "\",\"") elseif output == "BBCode" then - tinsert(text_table, "[/list]\nAcquire Methods:\n[list]") + table.insert(text_table, "[/list]\nAcquire Methods:\n[list]") elseif output == "XML" then - tinsert(text_table, " ") - tinsert(text_table, " ") + table.insert(text_table, " ") + table.insert(text_table, " ") end -- Find out which unique acquire methods we have @@ -1995,32 +1976,32 @@ do for i in pairs(acquire_list) do if not output or output == "Comma" then if prev then - tinsert(text_table, ",") + table.insert(text_table, ",") end - tinsert(text_table, i) + table.insert(text_table, i) prev = true elseif output == "BBCode" then - tinsert(text_table, "[*] " .. i) + table.insert(text_table, "[*] " .. i) elseif output == "XML" then - tinsert(text_table, ""..i.."") + table.insert(text_table, ""..i.."") end end if not output or output == "Comma" then - tinsert(text_table, "\","..tostring(is_known).."\n") + table.insert(text_table, "\","..tostring(is_known).."\n") --if is_known then - -- tinsert(text_table, "\",true\n") + -- table.insert(text_table, "\",true\n") --else - -- tinsert(text_table, "\",false\n") + -- table.insert(text_table, "\",false\n") --end elseif output == "BBCode" then - tinsert(text_table, "\n[/list]") + table.insert(text_table, "\n[/list]") elseif output == "XML" then - tinsert(text_table, " ") - tinsert(text_table, "") + table.insert(text_table, " ") + table.insert(text_table, "") end end end -- for - return tconcat(text_table, "") + return table.concat(text_table, "") end end -- 1.7.9.5