Mercurial > wow > itemauditor
comparison Modules/Events.lua @ 3:bbcf81868171
Code cleanup.
| author | Asa Ayers <Asa.Ayers@Gmail.com> |
|---|---|
| date | Sat, 22 May 2010 11:34:19 -0700 |
| parents | |
| children | c940b527ccab |
comparison
equal
deleted
inserted
replaced
| 2:e9a1646beaa4 | 3:bbcf81868171 |
|---|---|
| 1 local addonName, addonTable = ...; | |
| 2 local addon = _G[addonName] | |
| 3 | |
| 4 local utils = addonTable.utils | |
| 5 | |
| 6 function addon:PLAYER_ENTERING_WORLD() | |
| 7 self:RegisterEvent("MAIL_SHOW") | |
| 8 self:WatchBags() | |
| 9 end | |
| 10 | |
| 11 function addon:MAIL_SHOW() | |
| 12 self:Debug("MAIL_SHOW") | |
| 13 self.lastMailScan = self:ScanMail() | |
| 14 self:UnregisterEvent("MAIL_SHOW") | |
| 15 self:RegisterEvent("MAIL_CLOSED") | |
| 16 self:RegisterEvent("MAIL_INBOX_UPDATE") | |
| 17 self:Debug("MAIL_SHOW complete") | |
| 18 end | |
| 19 | |
| 20 function addon:MAIL_CLOSED() | |
| 21 addon:UnregisterEvent("MAIL_CLOSED") | |
| 22 self:UnregisterEvent("MAIL_INBOX_UPDATE") | |
| 23 self:RegisterEvent("MAIL_SHOW") | |
| 24 end | |
| 25 | |
| 26 function addon:MAIL_INBOX_UPDATE() | |
| 27 local newScan = addon:ScanMail() | |
| 28 local diff | |
| 29 for item, total in pairs(self.lastMailScan) do | |
| 30 | |
| 31 if newScan[item] == nil then | |
| 32 newScan[item] = 0 | |
| 33 end | |
| 34 diff = total - newScan[item] | |
| 35 if diff ~= 0 then | |
| 36 self:SaveValue(item, diff) | |
| 37 end | |
| 38 | |
| 39 end | |
| 40 | |
| 41 self.lastMailScan = newScan | |
| 42 end | |
| 43 | |
| 44 function addon:UNIT_SPELLCAST_SENT(target, spell) | |
| 45 if target == "player" and spell = "Milling" then | |
| 46 | |
| 47 end | |
| 48 end | |
| 49 | |
| 50 function addon:UNIT_SPELLCAST_INTERRUPTED(target, spell) | |
| 51 | |
| 52 end | |
| 53 | |
| 54 function addon:UpdateAudit() | |
| 55 self:Debug("UpdateAudit") | |
| 56 local currentInventory = self:GetCurrentInventory() | |
| 57 local diff = addon:GetInventoryDiff(self.lastInventory, currentInventory) | |
| 58 -- this is only here for debugging | |
| 59 self.lastdiff = diff | |
| 60 | |
| 61 if abs(diff.money) > 0 and utils:tcount(diff.items) == 1 then | |
| 62 self:Debug("purchase or sale") | |
| 63 | |
| 64 for itemName, count in pairs(diff.items) do | |
| 65 self:SaveValue(itemName, diff.money) | |
| 66 end | |
| 67 elseif utils:tcount(diff.items) > 1 then | |
| 68 local positive, negative = {}, {} | |
| 69 local positiveCount, negativeCount = 0, 0 | |
| 70 for item, count in pairs(diff.items) do | |
| 71 if count > 0 then | |
| 72 positive[item] = count | |
| 73 positiveCount = positiveCount + count | |
| 74 elseif count < 0 then | |
| 75 negative[item] = count | |
| 76 negativeCount = negativeCount + abs(count) | |
| 77 end | |
| 78 end | |
| 79 | |
| 80 if utils:tcount(positive) > 0 and utils:tcount(negative) > 0 then | |
| 81 -- we must have created/converted something | |
| 82 self:Debug("conversion") | |
| 83 local totalChange = 0 | |
| 84 for itemName, change in pairs(negative) do | |
| 85 local _, itemCost, count = self:GetItemCost(itemName, change) | |
| 86 self:SaveValue(itemName, abs(itemCost * change)) | |
| 87 | |
| 88 totalChange = totalChange + abs(itemCost * change) | |
| 89 end | |
| 90 | |
| 91 self:Debug("totalChange") | |
| 92 self:Debug(totalChange) | |
| 93 | |
| 94 local valuePerItem = totalChange / positiveCount | |
| 95 self:Debug(valuePerItem ) | |
| 96 for itemName, change in pairs(positive) do | |
| 97 self:Debug(itemName) | |
| 98 self:Debug(0-abs(valuePerItem * change)) | |
| 99 self:SaveValue(itemName, 0-abs(valuePerItem * change)) | |
| 100 end | |
| 101 end | |
| 102 end | |
| 103 | |
| 104 self.lastInventory = currentInventory | |
| 105 end |
