diff LibKraken/LibKraken-1.0.lua @ 14:82170735e67c

- move co-routine handler to general lib - slightly better handling of pet actions
author Nenue
date Thu, 28 Jul 2016 23:58:53 -0400
parents a2fc77fa4c73
children
line wrap: on
line diff
--- a/LibKraken/LibKraken-1.0.lua	Thu Jul 28 18:20:32 2016 -0400
+++ b/LibKraken/LibKraken-1.0.lua	Thu Jul 28 23:58:53 2016 -0400
@@ -237,7 +237,7 @@
     end
   end
 
-  return addon, (DEVIAN_WORKSPACE and function(...) _G.print(name, ...) end or function() end)
+  return addon, (DEVIAN_WORKSPACE and function(...) _G.print(name, ...) end or function() end), KT.wrap
 end
 
 
@@ -360,6 +360,35 @@
   return button
 end
 
+--- Co-routine Handler kajigger
+do
+  local tickerQueue = {}
+  local ticker
+  local instant = false
+  KT.tick = function()
+
+    if #tickerQueue == 0 then
+      ticker:Cancel()
+      ticker = nil
+    end
+    local func = tremove(tickerQueue, 1)
+    if func then
+      --print('#', #tickerQueue)
+      func()
+    end
+  end
+
+  KT.wrap = function(f)
+    if not ticker then
+      --print('create ticker')
+      ticker = C_Timer.NewTicker(.001, KT.tick)
+    end
+    tinsert(tickerQueue, f)
+
+    return #tickerQueue
+
+  end
+end
 
 KT.handler:RegisterEvent('ADDON_LOADED')
 KT.handler:RegisterEvent('PLAYER_LOGIN')