view wait.lua @ 49:90175bdc50e6 v17

fixed some localization issues and added new german translation
author yellowfive
date Sun, 09 Nov 2014 11:48:18 -0800
parents ece9167c0d1c
children
line wrap: on
line source
local _, AskMrRobot = ...

local waitTable = {};
local waitFrame = nil;

function AskMrRobot.wait(delay, func, ...)
  if(type(delay)~="number" or type(func)~="function") then
    print(AMR_WAIT_BAD_ARGUMENTS);
    return false;
  end
  if(waitFrame == nil) then
    waitFrame = CreateFrame("Frame","WaitFrame", UIParent);
    waitFrame:SetScript("OnUpdate",function (self,elapse)
      local count = #waitTable;
      local i = 1;
      while(i<=count) do
        local waitRecord = tremove(waitTable,i);
        local d = tremove(waitRecord,1);
        local f = tremove(waitRecord,1);
        local p = tremove(waitRecord,1);
        if(d>elapse) then
          tinsert(waitTable,i,{d-elapse,f,p});
          i = i + 1;
        else
          count = count - 1;
          f(unpack(p));
        end
      end
    end);
  end
  tinsert(waitTable,{delay,func,{...}});
  return true;
end