stackimageloader.luac.lua

来自「htc manila 2 sourcecode」· LUA 代码 · 共 75 行

LUA
75
字号
-- Decompiled using luadec 0.7 by sztupy (http://winmo.sztupy.hu)
-- Command line was: -l ;;0,0,1;;0,1,5;; 22c1bd6a_manila.luac 

require("class")
require("asyncimageloader")
trace("Stack Image Loader Loaded\n")
StackImageLoaderClass = class()
StackImageLoaderClass.__init = function(l_1_0)
   l_1_0.CurrentlyLoading = false
   l_1_0.Stack = {}
   l_1_0.Counter = 0
   l_1_0.Callback = nil
   l_1_0.Context = nil
end

StackImageLoaderClass.AddAsyncImageLoader = function(l_2_0, l_2_1)
   local l_2_2 = {}
   l_2_0.Counter = l_2_0.Counter + 1
   l_2_2.UniqueID = l_2_0.Counter
   l_2_2.Loading = false
   l_2_2.AsyncImageLoader = l_2_1
   if l_2_0.CurrentlyLoading then
      table.insert(l_2_0.Stack, 2, l_2_2)
   else
      table.insert(l_2_0.Stack, 1, l_2_2)
   end
   l_2_0:CheckForNewLoads()
   return l_2_0.Counter
end

StackImageLoaderClass.CancelRequest = function(l_3_0, l_3_1)
   if l_3_1 == nil then
      return false
   end
   for i_1,i_2 in ipairs(l_3_0.Stack) do
      if l_3_1 == i_2.UniqueID then
         if i_2.Loading == true then
            i_2.AsyncImageLoader:Cancel()
            l_3_0.CurrentlyLoading = false
         end
         table.remove(l_3_0.Stack, i_1)
         l_3_0:CheckForNewLoads()
         return true
      end
   end
   return false
end

StackImageLoaderClass.CheckForNewLoads = function(l_4_0)
   if l_4_0.CurrentlyLoading == false then
      for i_1,i_2 in ipairs(l_4_0.Stack) do
         local l_4_6 = i_2.AsyncImageLoader        
         i_2.Loading = true
         l_4_0.Callback = l_4_6:GetCallback()
         l_4_0.Context = l_4_6:GetContext()
         l_4_6:SetContext(l_4_0)
         l_4_6:SetCallback(l_4_0.HandleImageLoaded)
         l_4_6:BeginLoadFile()
         l_4_0.CurrentlyLoading = true
         break
      end
   end
end

StackImageLoaderClass.HandleImageLoaded = function(l_5_0, l_5_1, l_5_2, l_5_3)
   if l_5_0.Callback ~= nil then
      l_5_0.Callback(l_5_0.Context, l_5_1, l_5_2, l_5_3)
   end
   table.remove(l_5_0.Stack, 1)
   l_5_0.CurrentlyLoading = false
   l_5_0:CheckForNewLoads()
end


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?