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