annotate Modules/Utils.lua @ 20:ff9a698caebc

Added options for the crafting threshold and auction threshold. I also fixed the queue to use the item cost to determine if there is enough profit instead of the auction (QA) threshold which already has profit built in.
author Asa Ayers <Asa.Ayers@Gmail.com>
date Sun, 04 Jul 2010 09:33:25 -0700
parents 56de19d9bd8d
children 554b30908b33
rev   line source
Asa@3 1 local addonName, addonTable = ...;
Asa@15 2 local addon = _G[addonName]
Asa@3 3
Asa@3 4 addonTable.utils = addon
Asa@9 5 IAUtils = addon
Asa@3 6
Asa@20 7 function addon:FormatMoney(copper, color, textOnly)
Asa@20 8 color = color or "|cFFFFFFFF"
Asa@6 9 local prefix = ""
Asa@16 10 if copper < 0 then
Asa@6 11 prefix = "-"
Asa@16 12 copper = abs(copper)
Asa@6 13 end
Asa@20 14
Asa@20 15 local copperTexture = COPPER_AMOUNT_TEXTURE
Asa@20 16 local silverTexture = SILVER_AMOUNT_TEXTURE
Asa@20 17 local goldTexture = GOLD_AMOUNT_TEXTURE
Asa@20 18 if textOnly then
Asa@20 19 copperTexture = '%dc'
Asa@20 20 silverTexture = '%ds'
Asa@20 21 goldTexture = '%dg'
Asa@20 22 end
Asa@16 23
Asa@16 24 local gold = floor( copper / 10000 );
Asa@16 25 copper = mod(copper, 10000)
Asa@16 26 local silver = floor( copper / 100 );
Asa@16 27 copper = mod(copper, 100)
Asa@16 28
Asa@16 29
Asa@20 30 copper = color .. format(copperTexture, copper, 13, 13)
Asa@16 31 if silver > 0 or gold > 0 then
Asa@20 32 silver = color.. format(silverTexture, silver, 13, 13) .. ' '
Asa@16 33 else
Asa@16 34 silver = ""
Asa@16 35 end
Asa@16 36 if gold > 0 then
Asa@20 37 gold = color.. format(goldTexture, gold, 13, 13) .. ' '
Asa@16 38 else
Asa@16 39 gold = ""
Asa@16 40 end
Asa@16 41
Asa@16 42 return format("%s%s%s%s", prefix, gold, silver, copper)
Asa@6 43 end
Asa@6 44
Asa@8 45 -- This is only here to make sure this doesn't blow up if ReplaceItemCache is never called
Asa@7 46 local item_db = {}
Asa@7 47
Asa@7 48 function addon:ReplaceItemCache(new_cache)
Asa@7 49 item_db = new_cache
Asa@7 50 end
Asa@7 51
Asa@7 52 -- This will be reset every session
Asa@7 53 local tmp_item_cache = {}
Asa@7 54 function addon:GetItemID(itemName)
Asa@7 55 if item_db[itemName] ~= nil then
Asa@7 56 return item_db[itemName]
Asa@7 57 end
Asa@7 58
Asa@7 59 if tmp_item_cache[itemName] == nil then
Asa@7 60 local _, itemLink = GetItemInfo (itemName);
Asa@7 61 if itemLink ~= nil then
Asa@7 62 local _, _, _, _, itemID = string.find(itemLink, "|?c?f?f?(%x*)|?H?([^:]*):?(%d+):?(%d*):?(%d*):?(%d*):?(%d*):?(%d*):?(%-?%d*):?(%-?%d*):?(%d*)|?h?%[?([^%[%]]*)%]?|?h?|?r?")
Asa@7 63 tmp_item_cache[itemName] = tonumber(itemID)
Asa@7 64 end
Asa@7 65 end
Asa@7 66
Asa@9 67 if tmp_item_cache[itemName] == nil then
Asa@9 68 for link, data in pairs(ItemAuditor.db.factionrealm.items) do
Asa@9 69 local name, itemLink = GetItemInfo (link);
Asa@9 70 if name == itemName then
Asa@9 71 local _, _, _, _, itemID = string.find(itemLink, "|?c?f?f?(%x*)|?H?([^:]*):?(%d+):?(%d*):?(%d*):?(%d*):?(%d*):?(%d*):?(%-?%d*):?(%-?%d*):?(%d*)|?h?%[?([^%[%]]*)%]?|?h?|?r?")
Asa@9 72 tmp_item_cache[itemName] = tonumber(itemID)
Asa@9 73 end
Asa@9 74 end
Asa@9 75
Asa@9 76 end
Asa@9 77
Asa@7 78 return tmp_item_cache[itemName]
Asa@7 79 end
Asa@7 80
Asa@9 81 function addon:GetLinkFromName(itemName)
Asa@9 82 local itemID = self:GetItemID(itemName)
Asa@9 83 local itemLink
Asa@9 84 if itemID ~= nil then
Asa@9 85 _, itemLink = GetItemInfo(itemID)
Asa@9 86 end
Asa@9 87
Asa@9 88 return itemLink
Asa@9 89 end
Asa@9 90
Asa@7 91 function addon:SaveItemID(itemName, id)
Asa@7 92 item_db[itemName] = tonumber(id)
Asa@7 93 end
Asa@7 94
Asa@6 95 local SubjectPatterns = {
Asa@6 96 AHCancelled = gsub(AUCTION_REMOVED_MAIL_SUBJECT, "%%s", ".*"),
Asa@6 97 AHExpired = gsub(AUCTION_EXPIRED_MAIL_SUBJECT, "%%s", ".*"),
Asa@6 98 AHOutbid = gsub(AUCTION_OUTBID_MAIL_SUBJECT, "%%s", ".*"),
Asa@6 99 AHSuccess = gsub(AUCTION_SOLD_MAIL_SUBJECT, "%%s", ".*"),
Asa@6 100 AHWon = gsub(AUCTION_WON_MAIL_SUBJECT, "%%s", ".*"),
Asa@6 101 CODPayment = gsub(COD_PAYMENT, "%%s", "(.*)"),
Asa@6 102 }
Asa@6 103
Asa@6 104 function addon:GetMailType(msgSubject)
Asa@6 105 if msgSubject then
Asa@6 106 for k, v in pairs(SubjectPatterns) do
Asa@6 107 if msgSubject:find(v) then return k end
Asa@6 108 end
Asa@6 109 end
Asa@6 110 return "NonAHMail"
Asa@3 111 end
Asa@3 112
Asa@3 113 function addon:tcount(tab)
Asa@3 114 local n = #tab
Asa@3 115 if (n == 0) then
Asa@3 116 for _ in pairs(tab) do
Asa@3 117 n = n + 1
Asa@3 118 end
Asa@3 119 end
Asa@3 120 return n
Asa@3 121 end
Asa@3 122
Asa@3 123 function addon:GetDebug(info)
Asa@11 124 return self.db.char.debug
Asa@3 125 end
Asa@3 126
Asa@3 127 function addon:SetDebug(info, input)
Asa@11 128
Asa@11 129 ItemAuditor.db.char.debug = input
Asa@3 130 local value = "off"
Asa@3 131 if input then
Asa@3 132 value = "on"
Asa@3 133 end
Asa@11 134 self:Print("Debugging is now: " .. value)
Asa@3 135 end