Ejemplo n.º 1
0
        public static void reload()
        {
            var types = Assembly.GetAssembly(typeof(App)).GetTypes();

            foreach (var type in types)
            {
                try
                {
                    var baseType = type.BaseType;
                    if (baseType != null)
                    {
                        if ("FastNet.Cfg`2".Equals(baseType.Namespace + "." + baseType.Name))
                        {
                            var method = type.GetMethod("Init", BindingFlags.Public | BindingFlags.Static);
                            method.Invoke(null, null);
                        }
                    }
                }
                catch (Exception e)
                {
                    UnityEngine.Debug.LogException(e);
                }
            }


            if (s_luaEnv != null)
            {
                //pkt
                MessageLua.Load(s_workPath + "/pkt_table.bytes", s_luaEnv);

                //cfg
                CfgLua.Load(s_workPath + "/cfg_table.bytes", s_luaEnv);
            }
        }
Ejemplo n.º 2
0
        public static void initialize(XLua.LuaEnv luaEnv = null)
        {
            try
            {
                s_workPath = System.IO.Path.Combine(Application.persistentDataPath, "FastNet");

                if (Directory.Exists(s_workPath) == false)
                {
                    Directory.CreateDirectory(s_workPath);
                }

                s_luaEnv = luaEnv;
                var types = Assembly.GetAssembly(typeof(App)).GetTypes();

                foreach (var type in types)
                {
                    try
                    {
                        var baseType = type.BaseType;
                        if (baseType != null)
                        {
                            if ("FastNet.Cfg`2".Equals(baseType.Namespace + "." + baseType.Name))
                            {
                                var method = type.GetMethod("Init", BindingFlags.Public | BindingFlags.Static);
                                method.Invoke(null, null);
                            }
                            else if ("FastNet.Message".Equals(baseType.Namespace + "." + baseType.Name))
                            {
                                RegisterMessage(type, false);
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        UnityEngine.Debug.LogException(e);
                    }
                }

                if (luaEnv != null)
                {
                    //pkt
                    MessageLua.Load(s_workPath + "/pkt_table.bytes", luaEnv);

                    //cfg
                    CfgLua.Load(s_workPath + "/cfg_table.bytes", luaEnv);
                }
            }
            catch (Exception e)
            {
                Debug.LogException(e);
            }
        }
Ejemplo n.º 3
0
        public static void Load(String jsonPath, XLua.LuaEnv luaEnv)
        {
            try
            {
                if (!File.Exists(jsonPath))
                {
                    UnityEngine.Debug.LogError(String.Format("{0} no exists", jsonPath));
                    return;
                }

                StreamReader sr          = File.OpenText(jsonPath);
                string       input       = sr.ReadToEnd();
                var          jsonObjects = MiniJSON.MiniJSON.jsonDecode(input) as ArrayList;

                foreach (Hashtable v in jsonObjects)
                {
                    var attrs = new List <CfgLua.Attr>();
                    foreach (Hashtable c in (ArrayList)v["attrs"])
                    {
                        var attr = new CfgLua.Attr();
                        attr.name   = (String)c["name"];
                        attr.type   = (String)c["type"];
                        attr.defVal = (String)c["value"];
                        attrs.Add(attr);
                    }

                    var ttt     = v["clsId"].GetType();
                    var clsId   = (Double)v["clsId"];
                    var signId  = (Double)v["signId"];
                    var message = new CfgLua(luaEnv,
                                             (UInt32)clsId,
                                             (String)v["clsName"],
                                             (UInt32)signId,
                                             attrs,
                                             (String)v["index"],
                                             (String)v["cfgPath"]);

                    App.SetTable((String)v["clsName"], message);
                }


                foreach (Hashtable v in jsonObjects)
                {
                    var cl = luaEnv.Global.GetInPath <CfgLua>((String)v["clsName"]);
                    cl.LoadCfg();
                }
            }
            catch (Exception e)
            {
                UnityEngine.Debug.LogException(e);
            }
        }