88 lines
2.0 KiB
C#
88 lines
2.0 KiB
C#
using LuaInterface;
|
|
|
|
public class DSLuaClient : LuaClient
|
|
{
|
|
LuaFunction _applicationPause;
|
|
LuaFunction _applicationActive;
|
|
|
|
protected override LuaFileUtils InitLoader()
|
|
{
|
|
if (GameApplication.Instance.buildApp)
|
|
{
|
|
return new LuaResLoader();
|
|
}
|
|
else
|
|
{
|
|
|
|
return base.InitLoader();
|
|
}
|
|
}
|
|
|
|
protected override void OpenLibs()
|
|
{
|
|
LuaConst.openLuaSocket = true;
|
|
base.OpenLibs();
|
|
|
|
|
|
luaState.BeginPreLoad();
|
|
luaState.RegFunction("mime.core", LuaOpen_Mime_Core);
|
|
luaState.EndPreLoad();
|
|
OpenCJson();
|
|
|
|
|
|
}
|
|
|
|
public void Reload(string moduleFileName)
|
|
{
|
|
__ReLoad(moduleFileName, "loaded");
|
|
__ReLoad(moduleFileName, "preload");
|
|
}
|
|
|
|
void __ReLoad(string moduleFileName,string field)
|
|
{
|
|
luaState.LuaGetGlobal("package");
|
|
luaState.LuaGetField(-1, field);
|
|
luaState.LuaPushString(moduleFileName);
|
|
luaState.LuaGetTable(-2);
|
|
|
|
if (!luaState.LuaIsNil(-1))
|
|
{
|
|
luaState.LuaPushString(moduleFileName);
|
|
luaState.LuaPushNil();
|
|
luaState.LuaSetTable(-4);
|
|
}
|
|
|
|
luaState.LuaPop(3);
|
|
}
|
|
|
|
protected override void OnLoadFinished()
|
|
{
|
|
base.OnLoadFinished();
|
|
_applicationPause = luaState.GetFunction("OnApplicationPause");
|
|
_applicationActive = luaState.GetFunction("OnApplicationActive");
|
|
}
|
|
|
|
|
|
public void OnApplicationPause1()
|
|
{
|
|
// UnityEngine.Debug.LogError("")
|
|
if (_applicationPause != null)
|
|
{
|
|
_applicationPause.BeginPCall();
|
|
_applicationPause.PCall();
|
|
_applicationPause.EndPCall();
|
|
}
|
|
}
|
|
|
|
public void OnApplicationActive()
|
|
{
|
|
if (_applicationActive != null)
|
|
{
|
|
_applicationActive.BeginPCall();
|
|
_applicationActive.PCall();
|
|
_applicationActive.EndPCall();
|
|
}
|
|
}
|
|
|
|
}
|