using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using XLua;
|
using System;
|
|
|
[CSharpCallLua]
|
public class CSharpCallLua
|
{
|
[CSharpCallLua]
|
public delegate void LuaNetPackage(ushort cmd, byte[] bytes);
|
static LuaNetPackage onRecieveLuaNetPackage;
|
|
[CSharpCallLua]
|
public delegate void CSharpNetPackage(ushort cmd);
|
static CSharpNetPackage onCSharpNetPackage;
|
|
[CSharpCallLua]
|
public delegate void GeneralDelegate();
|
static GeneralDelegate configInit;
|
|
static GeneralDelegate beforePlayerDataInitialize;
|
static GeneralDelegate afterPlayerDataInitialize;
|
static GeneralDelegate switchAccount;
|
static GeneralDelegate playerLoginOk;
|
static GeneralDelegate mapInitOk;
|
|
[CSharpCallLua]
|
public delegate bool boolReturnedValueDelegate(int integer);
|
static boolReturnedValueDelegate isLuaDungeonVictoryWin;
|
static boolReturnedValueDelegate isLuaDungeonDefeatWin;
|
|
static boolReturnedValueDelegate isLuaDailyQuest;
|
static boolReturnedValueDelegate gotoLuaDailyQuest;
|
|
public static void Init()
|
{
|
LuaUtility.DoString("protocol.LuaProtocalRegister");
|
onRecieveLuaNetPackage = LuaUtility.Global.Get<LuaNetPackage>("OnRecieveNetPackage");
|
|
LuaUtility.DoString("protocol.CSharpProtocalEvent");
|
onCSharpNetPackage = LuaUtility.Global.Get<CSharpNetPackage>("OnCSharpNetEvent");
|
|
LuaUtility.DoString("event.AfterPlayerDataInitialize");
|
afterPlayerDataInitialize = LuaUtility.Global.Get<GeneralDelegate>("OnAfterPlayerDataInitialize");
|
|
LuaUtility.DoString("event.BeforePlayerDataInitialize");
|
beforePlayerDataInitialize = LuaUtility.Global.Get<GeneralDelegate>("OnBeforePlayerDataInitialize");
|
|
LuaUtility.DoString("event.MapInitOk");
|
mapInitOk = LuaUtility.Global.Get<GeneralDelegate>("OnMapInitOk");
|
|
LuaUtility.DoString("event.SwitchAccount");
|
switchAccount = LuaUtility.Global.Get<GeneralDelegate>("OnSwitchAccount");
|
|
LuaUtility.DoString("event.PlayerLoginOk");
|
playerLoginOk = LuaUtility.Global.Get<GeneralDelegate>("OnPlayerLoginOk");
|
|
LuaUtility.DoString("interface.DungeonInterface");
|
isLuaDungeonVictoryWin = LuaUtility.Global.Get<boolReturnedValueDelegate>("IsLuaDungeonVictoryWin");
|
isLuaDungeonDefeatWin = LuaUtility.Global.Get<boolReturnedValueDelegate>("IsLuaDungeonDefeatWin");
|
|
LuaUtility.DoString("interface.DailyQuestInterface");
|
isLuaDailyQuest = LuaUtility.Global.Get<boolReturnedValueDelegate>("IsLuaDailyQuest");
|
gotoLuaDailyQuest = LuaUtility.Global.Get<boolReturnedValueDelegate>("GotoDailyQuest");
|
|
LuaUtility.DoString("config.ConfigInit");
|
configInit = LuaUtility.Global.Get<GeneralDelegate>("ConfigInit");
|
|
if (configInit != null)
|
{
|
configInit();
|
}
|
}
|
|
static object lockojb1 = new object();
|
public static void OnRecieveLuaNetPackage(ushort cmd, byte[] bytes)
|
{
|
lock (lockojb1)
|
{
|
if (onRecieveLuaNetPackage != null)
|
{
|
onRecieveLuaNetPackage(cmd, bytes);
|
}
|
}
|
}
|
|
static object lockojb2 = new object();
|
public static void OnRecieveCSharpNetPackage(ushort cmd)
|
{
|
lock (lockojb2)
|
{
|
if (onCSharpNetPackage != null)
|
{
|
onCSharpNetPackage(cmd);
|
}
|
}
|
}
|
|
public static void OnBeforePlayerDataInitialize()
|
{
|
if (beforePlayerDataInitialize != null)
|
{
|
beforePlayerDataInitialize();
|
}
|
}
|
|
public static void OnAfterPlayerDataInitialize()
|
{
|
if (afterPlayerDataInitialize != null)
|
{
|
afterPlayerDataInitialize();
|
}
|
}
|
|
public static void OnSwitchAccount()
|
{
|
if (switchAccount != null)
|
{
|
switchAccount();
|
}
|
}
|
|
public static void OnPlayerLoginOk()
|
{
|
if (playerLoginOk != null)
|
{
|
playerLoginOk();
|
}
|
}
|
|
public static void OnMapInitOk()
|
{
|
if (mapInitOk != null)
|
{
|
mapInitOk();
|
}
|
}
|
|
public static bool IsLuaDungeonVictoryWin(int dataMapId)
|
{
|
if (isLuaDungeonVictoryWin != null)
|
{
|
return isLuaDungeonVictoryWin(dataMapId);
|
}
|
|
return false;
|
}
|
|
public static bool IsLuaDungeonDefeatWin(int dataMapId)
|
{
|
if (isLuaDungeonDefeatWin != null)
|
{
|
return isLuaDungeonDefeatWin(dataMapId);
|
}
|
|
return false;
|
}
|
|
public static bool IsLuaDailyQuest(int dailyQuest)
|
{
|
if (isLuaDailyQuest != null)
|
{
|
return isLuaDailyQuest(dailyQuest);
|
}
|
|
return false;
|
}
|
|
public static void GotoLuaDailyQuest(int dailyquest)
|
{
|
if (gotoLuaDailyQuest != null)
|
{
|
gotoLuaDailyQuest(dailyquest);
|
}
|
}
|
|
}
|