551 lines
15 KiB
Lua
551 lines
15 KiB
Lua
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LuaResourceLoader = HL.Class("LuaResourceLoader")
|
|
|
|
|
|
LuaResourceLoader.m_loader = HL.Field(HL.Any)
|
|
|
|
|
|
LuaResourceLoader.m_destroyed = HL.Field(HL.Boolean) << false
|
|
|
|
|
|
LuaResourceLoader.s_enableHashLoader = HL.StaticField(HL.Number) << 0
|
|
|
|
|
|
|
|
LuaResourceLoader.LuaResourceLoader = HL.Constructor() << function(self)
|
|
self.m_loader = CS.Beyond.LuaResourceLoader()
|
|
self.m_destroyed = false;
|
|
LuaResourceLoader.s_enableHashLoader = 1
|
|
end
|
|
|
|
|
|
|
|
LuaResourceLoader._GetPathByHash = HL.StaticMethod(HL.String).Return(HL.String) << function(hash)
|
|
if LuaResourceLoader.s_enableHashLoader == 2 then
|
|
return CS.Beyond.Resource.HashStringPathProcessor.GetString(CS.Beyond.Resource.StringPathHash(LuaResourceLoader._PathToHash(hash)))
|
|
else
|
|
return hash
|
|
end
|
|
end
|
|
|
|
|
|
|
|
LuaResourceLoader._PathToHash = HL.StaticMethod(HL.String).Return(HL.Number) << function(path)
|
|
local hash = __beyond_calculate_ab_path_hash(path)
|
|
|
|
return CS.Beyond.Resource.I18NAssetLoader.GetI18NResourceHash(hash)
|
|
end
|
|
|
|
|
|
|
|
|
|
LuaResourceLoader.LoadGameObject = HL.Method(HL.String).Return(CS.UnityEngine.GameObject, HL.Number) << function(self, path)
|
|
if not self:_CheckLoader() then
|
|
return
|
|
end
|
|
if not self:_CheckPathHash(path) then
|
|
return nil, -1
|
|
end
|
|
if LuaResourceLoader.s_enableHashLoader == 2 then
|
|
return self.m_loader:LoadGameObject(LuaResourceLoader._GetPathByHash(path))
|
|
elseif LuaResourceLoader.s_enableHashLoader == 1 then
|
|
return self.m_loader:LoadGameObject(LuaResourceLoader._PathToHash(path))
|
|
else
|
|
return self.m_loader:LoadGameObject(path)
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
LuaResourceLoader.LoadGameObjectAsync = HL.Method(HL.String, HL.Function).Return(HL.Number) << function(self, path, callback)
|
|
if not self:_CheckLoader() then
|
|
return
|
|
end
|
|
if not self:_CheckPathHash(path) then
|
|
return -1
|
|
end
|
|
local newCallback = self:_GetProtectCallback(callback)
|
|
if LuaResourceLoader.s_enableHashLoader == 2 then
|
|
return self.m_loader:LoadGameObjectAsync(LuaResourceLoader._GetPathByHash(path), newCallback)
|
|
elseif LuaResourceLoader.s_enableHashLoader == 1 then
|
|
return self.m_loader:LoadGameObjectAsync(LuaResourceLoader._PathToHash(path), newCallback)
|
|
else
|
|
return self.m_loader:LoadGameObjectAsync(path, newCallback)
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
LuaResourceLoader.GetGameObjectByKey = HL.Method(HL.Number).Return(CS.UnityEngine.GameObject) << function(self,key)
|
|
if not self:_CheckLoader() then
|
|
return
|
|
end
|
|
return self.m_loader:GetGameObjectByKey(key)
|
|
end
|
|
|
|
|
|
|
|
|
|
LuaResourceLoader.LoadMaterial = HL.Method(HL.String).Return(CS.UnityEngine.Material, HL.Number) << function(self, path)
|
|
if not self:_CheckLoader() then
|
|
return
|
|
end
|
|
if not self:_CheckPathHash(path) then
|
|
return nil, -1
|
|
end
|
|
if LuaResourceLoader.s_enableHashLoader == 2 then
|
|
return self.m_loader:LoadMaterial(LuaResourceLoader._GetPathByHash(path))
|
|
elseif LuaResourceLoader.s_enableHashLoader == 1 then
|
|
return self.m_loader:LoadMaterial(LuaResourceLoader._PathToHash(path))
|
|
else
|
|
return self.m_loader:LoadMaterial(path)
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
LuaResourceLoader.LoadMaterialAsync = HL.Method(HL.String, HL.Function).Return(HL.Number) << function(self, path, callback)
|
|
if not self:_CheckLoader() then
|
|
return
|
|
end
|
|
if not self:_CheckPathHash(path) then
|
|
return -1
|
|
end
|
|
local newCallback = self:_GetProtectCallback(callback)
|
|
if LuaResourceLoader.s_enableHashLoader == 2 then
|
|
return self.m_loader:LoadMaterialAsync(LuaResourceLoader._GetPathByHash(path), newCallback)
|
|
elseif LuaResourceLoader.s_enableHashLoader == 1 then
|
|
return self.m_loader:LoadMaterialAsync(LuaResourceLoader._PathToHash(path), newCallback)
|
|
else
|
|
return self.m_loader:LoadMaterialAsync(path, newCallback)
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
LuaResourceLoader.GetMaterialByKey = HL.Method(HL.Number).Return(CS.UnityEngine.Material) << function(self, key)
|
|
if not self:_CheckLoader() then
|
|
return
|
|
end
|
|
return self.m_loader:GetMaterialByKey(key)
|
|
end
|
|
|
|
|
|
|
|
|
|
LuaResourceLoader.LoadTexture = HL.Method(HL.String).Return(CS.UnityEngine.Texture, HL.Number) << function(self, path)
|
|
if not self:_CheckLoader() then
|
|
return
|
|
end
|
|
if not self:_CheckPathHash(path) then
|
|
return nil, -1
|
|
end
|
|
if LuaResourceLoader.s_enableHashLoader == 2 then
|
|
return self.m_loader:LoadTexture(LuaResourceLoader._GetPathByHash(path))
|
|
elseif LuaResourceLoader.s_enableHashLoader == 1 then
|
|
return self.m_loader:LoadTexture(LuaResourceLoader._PathToHash(path))
|
|
else
|
|
return self.m_loader:LoadTexture(path)
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
LuaResourceLoader.LoadTextureAsync = HL.Method(HL.String, HL.Function).Return(HL.Number) << function(self, path, callback)
|
|
if not self:_CheckLoader() then
|
|
return
|
|
end
|
|
if not self:_CheckPathHash(path) then
|
|
return -1
|
|
end
|
|
local newCallback = self:_GetProtectCallback(callback)
|
|
if LuaResourceLoader.s_enableHashLoader == 2 then
|
|
return self.m_loader:LoadTextureAsync(LuaResourceLoader._GetPathByHash(path), newCallback)
|
|
elseif LuaResourceLoader.s_enableHashLoader == 1 then
|
|
return self.m_loader:LoadTextureAsync(LuaResourceLoader._PathToHash(path), newCallback)
|
|
else
|
|
return self.m_loader:LoadTextureAsync(path, newCallback)
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
LuaResourceLoader.GetTextureByKey = HL.Method(HL.Number).Return(CS.UnityEngine.Texture) << function(self, key)
|
|
if not self:_CheckLoader() then
|
|
return
|
|
end
|
|
return self.m_loader:GetTextureByKey(key)
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LuaResourceLoader.LoadShader = HL.Method(HL.String).Return(CS.UnityEngine.Shader, HL.Number) << function(self, path)
|
|
if not self:_CheckLoader() then
|
|
return
|
|
end
|
|
if not self:_CheckPathHash(path) then
|
|
return nil, -1
|
|
end
|
|
if LuaResourceLoader.s_enableHashLoader == 2 then
|
|
return self.m_loader:LoadShader(LuaResourceLoader._GetPathByHash(path))
|
|
elseif LuaResourceLoader.s_enableHashLoader == 1 then
|
|
return self.m_loader:LoadShader(LuaResourceLoader._PathToHash(path))
|
|
else
|
|
return self.m_loader:LoadShader(path)
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
LuaResourceLoader.LoadShaderAsync = HL.Method(HL.String, HL.Function).Return(HL.Number) << function(self, path, callback)
|
|
if not self:_CheckLoader() then
|
|
return
|
|
end
|
|
if not self:_CheckPathHash(path) then
|
|
return -1
|
|
end
|
|
local newCallback = self:_GetProtectCallback(callback)
|
|
if LuaResourceLoader.s_enableHashLoader == 2 then
|
|
return self.m_loader:LoadShaderAsync(LuaResourceLoader._GetPathByHash(path), newCallback)
|
|
elseif LuaResourceLoader.s_enableHashLoader == 1 then
|
|
return self.m_loader:LoadShaderAsync(LuaResourceLoader._PathToHash(path), newCallback)
|
|
else
|
|
return self.m_loader:LoadShaderAsync(path, newCallback)
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
LuaResourceLoader.GetShaderByKey = HL.Method(HL.Number).Return(CS.UnityEngine.Shader) << function(self, key)
|
|
if not self:_CheckLoader() then
|
|
return
|
|
end
|
|
return self.m_loader:GetShaderByKey(key)
|
|
end
|
|
|
|
|
|
|
|
|
|
LuaResourceLoader.LoadMesh = HL.Method(HL.String).Return(CS.UnityEngine.Mesh, HL.Number) << function(self, path)
|
|
if not self:_CheckLoader() then
|
|
return
|
|
end
|
|
if not self:_CheckPathHash(path) then
|
|
return nil, -1
|
|
end
|
|
if LuaResourceLoader.s_enableHashLoader == 2 then
|
|
return self.m_loader:LoadMesh(LuaResourceLoader._GetPathByHash(path))
|
|
elseif LuaResourceLoader.s_enableHashLoader == 1 then
|
|
return self.m_loader:LoadMesh(LuaResourceLoader._PathToHash(path))
|
|
else
|
|
return self.m_loader:LoadMesh(path)
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
LuaResourceLoader.LoadMeshAsync = HL.Method(HL.String, HL.Function).Return(HL.Number) << function(self, path, callback)
|
|
if not self:_CheckLoader() then
|
|
return
|
|
end
|
|
if not self:_CheckPathHash(path) then
|
|
return -1
|
|
end
|
|
local newCallback = self:_GetProtectCallback(callback)
|
|
if LuaResourceLoader.s_enableHashLoader == 2 then
|
|
return self.m_loader:LoadMeshAsync(LuaResourceLoader._GetPathByHash(path), newCallback)
|
|
elseif LuaResourceLoader.s_enableHashLoader == 1 then
|
|
return self.m_loader:LoadMeshAsync(LuaResourceLoader._PathToHash(path), newCallback)
|
|
else
|
|
return self.m_loader:LoadMeshAsync(path, newCallback)
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
LuaResourceLoader.GetMeshByKey = HL.Method(HL.Number).Return(CS.UnityEngine.Mesh) << function(self, key)
|
|
if not self:_CheckLoader() then
|
|
return
|
|
end
|
|
return self.m_loader:GetMeshByKey(key)
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
LuaResourceLoader.LoadSprite = HL.Method(HL.String).Return(CS.UnityEngine.Sprite, HL.Number) << function(self, path)
|
|
if not self:_CheckLoader() then
|
|
return
|
|
end
|
|
if not self:_CheckPathHash(path) then
|
|
return nil, -1
|
|
end
|
|
if LuaResourceLoader.s_enableHashLoader == 2 then
|
|
return self.m_loader:LoadSprite(LuaResourceLoader._GetPathByHash(path))
|
|
elseif LuaResourceLoader.s_enableHashLoader == 1 then
|
|
return self.m_loader:LoadSprite(LuaResourceLoader._PathToHash(path))
|
|
else
|
|
return self.m_loader:LoadSprite(path)
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
LuaResourceLoader.LoadSpriteAsync = HL.Method(HL.String, HL.Function).Return(HL.Number) << function(self, path, callback)
|
|
if not self:_CheckLoader() then
|
|
return
|
|
end
|
|
if not self:_CheckPathHash(path) then
|
|
return -1
|
|
end
|
|
local newCallback = self:_GetProtectCallback(callback)
|
|
if LuaResourceLoader.s_enableHashLoader == 2 then
|
|
return self.m_loader:LoadSpriteAsync(LuaResourceLoader._GetPathByHash(path), newCallback)
|
|
elseif LuaResourceLoader.s_enableHashLoader == 1 then
|
|
return self.m_loader:LoadSpriteAsync(LuaResourceLoader._PathToHash(path), newCallback)
|
|
else
|
|
return self.m_loader:LoadSpriteAsync(path, newCallback)
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
LuaResourceLoader.GetSpriteByKey = HL.Method(HL.Number).Return(CS.UnityEngine.Sprite) << function(self, key)
|
|
if not self:_CheckLoader() then
|
|
return
|
|
end
|
|
return self.m_loader:GetSpriteByKey(key)
|
|
end
|
|
|
|
|
|
|
|
|
|
LuaResourceLoader.LoadScriptableObject = HL.Method(HL.String).Return(CS.UnityEngine.ScriptableObject, HL.Number) << function(self, path)
|
|
if not self:_CheckLoader() then
|
|
return
|
|
end
|
|
if not self:_CheckPathHash(path) then
|
|
return nil, -1
|
|
end
|
|
if LuaResourceLoader.s_enableHashLoader == 2 then
|
|
return self.m_loader:LoadScriptableObject(LuaResourceLoader._GetPathByHash(path))
|
|
elseif LuaResourceLoader.s_enableHashLoader == 1 then
|
|
return self.m_loader:LoadScriptableObject(LuaResourceLoader._PathToHash(path))
|
|
else
|
|
return self.m_loader:LoadScriptableObject(path)
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
LuaResourceLoader.LoadScriptableObjectAsync = HL.Method(HL.String, HL.Function).Return(HL.Number) << function(self, path, callback)
|
|
if not self:_CheckLoader() then
|
|
return
|
|
end
|
|
if not self:_CheckPathHash(path) then
|
|
return -1
|
|
end
|
|
local newCallback = self:_GetProtectCallback(callback)
|
|
if LuaResourceLoader.s_enableHashLoader == 2 then
|
|
return self.m_loader:LoadScriptableObjectAsync(LuaResourceLoader._GetPathByHash(path), newCallback)
|
|
elseif LuaResourceLoader.s_enableHashLoader == 1 then
|
|
return self.m_loader:LoadScriptableObjectAsync(LuaResourceLoader._PathToHash(path), newCallback)
|
|
else
|
|
return self.m_loader:LoadScriptableObjectAsync(path, newCallback)
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
LuaResourceLoader.GetScriptableObjectByKey = HL.Method(HL.Number).Return(CS.UnityEngine.ScriptableObject) << function(self, key)
|
|
if not self:_CheckLoader() then
|
|
return
|
|
end
|
|
return self.m_loader:GetScriptableObjectByKey(key)
|
|
end
|
|
|
|
|
|
|
|
|
|
LuaResourceLoader.LoadAnimatorController = HL.Method(HL.String).Return(CS.UnityEngine.RuntimeAnimatorController, HL.Number) << function(self, path)
|
|
if not self:_CheckLoader() then
|
|
return
|
|
end
|
|
if not self:_CheckPathHash(path) then
|
|
return nil, -1
|
|
end
|
|
if LuaResourceLoader.s_enableHashLoader == 2 then
|
|
return self.m_loader:LoadAnimatorController(LuaResourceLoader._GetPathByHash(path))
|
|
elseif LuaResourceLoader.s_enableHashLoader == 1 then
|
|
return self.m_loader:LoadAnimatorController(LuaResourceLoader._PathToHash(path))
|
|
else
|
|
return self.m_loader:LoadAnimatorController(path)
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
LuaResourceLoader.LoadAnimatorControllerAsync = HL.Method(HL.String, HL.Function).Return(HL.Number) << function(self, path, callback)
|
|
if not self:_CheckLoader() then
|
|
return
|
|
end
|
|
if not self:_CheckPathHash(path) then
|
|
return -1
|
|
end
|
|
local newCallback = self:_GetProtectCallback(callback)
|
|
if LuaResourceLoader.s_enableHashLoader == 2 then
|
|
return self.m_loader:LoadAnimatorControllerAsync(LuaResourceLoader._GetPathByHash(path), newCallback)
|
|
elseif LuaResourceLoader.s_enableHashLoader == 1 then
|
|
return self.m_loader:LoadAnimatorControllerAsync(LuaResourceLoader._PathToHash(path), newCallback)
|
|
else
|
|
return self.m_loader:LoadAnimatorControllerAsync(path, newCallback)
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
LuaResourceLoader.LoadI18NAsset = HL.Method(HL.String, HL.Any).Return(HL.Any, HL.Number) << function(self, path, type)
|
|
if not self:_CheckLoader() then
|
|
return
|
|
end
|
|
if not self:_CheckPathHash(path) then
|
|
return nil, -1
|
|
end
|
|
return self.m_loader:LoadI18NAsset(LuaResourceLoader._PathToHash(path), type)
|
|
end
|
|
|
|
|
|
|
|
|
|
LuaResourceLoader.GetAnimatorControllerByKey = HL.Method(HL.Number).Return(CS.UnityEngine.RuntimeAnimatorController) << function(self, key)
|
|
if not self:_CheckLoader() then
|
|
return
|
|
end
|
|
return self.m_loader:GetAnimatorControllerByKey(key)
|
|
end
|
|
|
|
|
|
|
|
|
|
LuaResourceLoader.DisposeHandleByKey = HL.Method(HL.Number) << function(self, key)
|
|
if not self:_CheckLoader() then
|
|
return
|
|
end
|
|
self.m_loader:DisposeHandleByKey(key)
|
|
end
|
|
|
|
|
|
|
|
|
|
LuaResourceLoader.DisposeAllHandles = HL.Method(HL.Opt(HL.Boolean)) << function(self, notDestroy)
|
|
self.m_loader:DisposeAllHandles()
|
|
self.m_destroyed = not notDestroy
|
|
end
|
|
|
|
|
|
|
|
|
|
LuaResourceLoader._GetProtectCallback = HL.Method(HL.Function).Return(HL.Function) << function(self, callback)
|
|
return function(obj)
|
|
if self.m_destroyed then
|
|
return
|
|
end
|
|
callback(obj)
|
|
end
|
|
end
|
|
|
|
|
|
|
|
LuaResourceLoader._CheckLoader = HL.Method().Return(HL.Boolean) << function(self)
|
|
if self.m_destroyed then
|
|
logger.critical("can not load resource from destroy loader")
|
|
return false
|
|
end
|
|
return true
|
|
end
|
|
|
|
|
|
|
|
|
|
LuaResourceLoader._CheckPathHash = HL.Method(HL.String).Return(HL.Boolean) << function(self, path)
|
|
local isExist = CS.Beyond.Resource.ResourceManager.RawCheckExists(__beyond_calculate_ab_path_hash(path))
|
|
if not isExist then
|
|
logger.error(path .. " is not exist")
|
|
end
|
|
return isExist
|
|
end
|
|
|
|
HL.Commit(LuaResourceLoader)
|
|
|
|
|