annotate wait.lua @ 26:3af56b6545e0
v6
Fixed an issue with realm names
author |
Adam tegen <adam.tegen@gmail.com> |
date |
Wed, 15 Oct 2014 19:07:51 -0500 |
parents |
ece9167c0d1c |
children |
|
rev |
line source |
adam@0
|
1 local _, AskMrRobot = ...
|
adam@0
|
2
|
adam@0
|
3 local waitTable = {};
|
adam@0
|
4 local waitFrame = nil;
|
adam@0
|
5
|
adam@0
|
6 function AskMrRobot.wait(delay, func, ...)
|
adam@0
|
7 if(type(delay)~="number" or type(func)~="function") then
|
yellowfive@11
|
8 print(AMR_WAIT_BAD_ARGUMENTS);
|
adam@0
|
9 return false;
|
adam@0
|
10 end
|
adam@0
|
11 if(waitFrame == nil) then
|
adam@0
|
12 waitFrame = CreateFrame("Frame","WaitFrame", UIParent);
|
adam@0
|
13 waitFrame:SetScript("OnUpdate",function (self,elapse)
|
adam@0
|
14 local count = #waitTable;
|
adam@0
|
15 local i = 1;
|
adam@0
|
16 while(i<=count) do
|
adam@0
|
17 local waitRecord = tremove(waitTable,i);
|
adam@0
|
18 local d = tremove(waitRecord,1);
|
adam@0
|
19 local f = tremove(waitRecord,1);
|
adam@0
|
20 local p = tremove(waitRecord,1);
|
adam@0
|
21 if(d>elapse) then
|
adam@0
|
22 tinsert(waitTable,i,{d-elapse,f,p});
|
adam@0
|
23 i = i + 1;
|
adam@0
|
24 else
|
adam@0
|
25 count = count - 1;
|
adam@0
|
26 f(unpack(p));
|
adam@0
|
27 end
|
adam@0
|
28 end
|
adam@0
|
29 end);
|
adam@0
|
30 end
|
adam@0
|
31 tinsert(waitTable,{delay,func,{...}});
|
adam@0
|
32 return true;
|
adam@0
|
33 end
|