Mercurial > wow > reagentmaker
comparison ReagentMaker.lua @ 17:5336b3a19d4f
Throttle the scanning to avoid freezing wow
author | contrebasse |
---|---|
date | Fri, 08 Apr 2011 01:01:00 +0200 |
parents | cc56799582f2 |
children | c37c2a46723c |
comparison
equal
deleted
inserted
replaced
16:250d01156e21 | 17:5336b3a19d4f |
---|---|
25 --------------------------------------------------- | 25 --------------------------------------------------- |
26 -- Manage events | 26 -- Manage events |
27 --------------------------------------------------- | 27 --------------------------------------------------- |
28 A.EventsFrame = CreateFrame("Frame") | 28 A.EventsFrame = CreateFrame("Frame") |
29 | 29 |
30 A.EventsFrame:SetScript("OnEvent", function(self, event, ...) | 30 local SCAN_DELAY = 0.2 |
31 if event == "TRADE_SKILL_UPDATE" then | 31 local t_throttle = SCAN_DELAY |
32 local function throttleScan(self, t_elapsed) | |
33 t_throttle = t_throttle - t_elapsed | |
34 if t_throttle<0 then | |
35 self:SetScript("OnUpdate", nil) | |
36 print("go") | |
37 | |
32 -- Close the external window if the tradeskill changed | 38 -- Close the external window if the tradeskill changed |
33 if A.currentTradeSkill ~= GetTradeSkillLine() then | 39 if A.currentTradeSkill ~= GetTradeSkillLine() then |
34 A.MenuFrame:Hide() | 40 A.MenuFrame:Hide() |
35 end | 41 end |
36 | 42 |
39 return | 45 return |
40 end | 46 end |
41 | 47 |
42 -- Scan availabe recipes | 48 -- Scan availabe recipes |
43 A:ScanSimpleRecipes() | 49 A:ScanSimpleRecipes() |
50 end | |
51 end | |
52 A.EventsFrame:SetScript("OnEvent", function(self, event) | |
53 print(self,event) | |
54 if event == "TRADE_SKILL_UPDATE" then | |
55 t_throttle = SCAN_DELAY | |
56 self:SetScript("OnUpdate", throttleScan) | |
57 | |
58 --[[ | |
59 -- Close the external window if the tradeskill changed | |
60 if A.currentTradeSkill ~= GetTradeSkillLine() then | |
61 A.MenuFrame:Hide() | |
62 end | |
63 | |
64 if IsTradeSkillGuild() or IsTradeSkillLinked() then | |
65 A.MenuFrame:Hide() | |
66 return | |
67 end | |
68 | |
69 -- Scan availabe recipes | |
70 A:ScanSimpleRecipes() | |
71 --]] | |
44 | 72 |
45 elseif event == "TRADE_SKILL_SHOW" then | 73 elseif event == "TRADE_SKILL_SHOW" then |
46 if IsTradeSkillGuild() or IsTradeSkillLinked() then | |
47 A.MenuFrame:Hide() | |
48 return | |
49 end | |
50 A:Initialize() | 74 A:Initialize() |
51 A.EventsFrame:UnregisterEvent("TRADE_SKILL_SHOW") | 75 A.EventsFrame:UnregisterEvent("TRADE_SKILL_SHOW") |
52 end -- if | 76 end -- if |
53 end) -- function | 77 end) -- function |
54 A.EventsFrame:RegisterEvent("TRADE_SKILL_SHOW") | 78 A.EventsFrame:RegisterEvent("TRADE_SKILL_SHOW") |