少年修仙传客户端代码仓库
client_Wu Xijin
2019-04-28 8d06932ebf186837e048da4822bd837dbf90e212
Core/GameEngine/Model/Config/ContinueSignInConfig.cs
@@ -1,6 +1,6 @@
//--------------------------------------------------------
//    [Author]:           Fish
//    [  Date ]:           Wednesday, February 13, 2019
//    [  Date ]:           Thursday, February 14, 2019
//--------------------------------------------------------
using System.Collections.Generic;
@@ -9,6 +9,7 @@
using System;
using UnityEngine;
[XLua.LuaCallCSharp]
public partial class ContinueSignInConfig
{
@@ -17,6 +18,10 @@
   public readonly int IsBind;
   public readonly int[] ItemNum;
   public readonly int[] JobItemList;
   public ContinueSignInConfig()
    {
    }
    public ContinueSignInConfig(string input)
    {
@@ -55,8 +60,8 @@
        }
    }
    static Dictionary<int, ContinueSignInConfig> configs = new Dictionary<int, ContinueSignInConfig>();
    public static ContinueSignInConfig Get(int id)
    static Dictionary<string, ContinueSignInConfig> configs = new Dictionary<string, ContinueSignInConfig>();
    public static ContinueSignInConfig Get(string id)
    {   
      if (!inited)
        {
@@ -79,13 +84,45 @@
        return config;
    }
   public static bool Has(int id)
   public static ContinueSignInConfig Get(int id)
    {
        return Get(id.ToString());
    }
    public static List<string> GetKeys()
    {
        var keys = new List<string>();
        keys.AddRange(configs.Keys);
        keys.AddRange(rawDatas.Keys);
        return keys;
    }
    public static List<ContinueSignInConfig> GetValues()
    {
        var values = new List<ContinueSignInConfig>();
        values.AddRange(configs.Values);
        var keys = new List<string>(rawDatas.Keys);
        foreach (var key in keys)
        {
            values.Add(Get(key));
        }
        return values;
    }
   public static bool Has(string id)
    {
        return configs.ContainsKey(id) || rawDatas.ContainsKey(id);
    }
   public static bool Has(int id)
    {
        return Has(id.ToString());
    }
   public static bool inited { get; private set; }
    protected static Dictionary<int, string> rawDatas = null;
    protected static Dictionary<string, string> rawDatas = new Dictionary<string, string>();
    public static void Init(bool sync=false)
    {
       inited = false;
@@ -99,18 +136,43 @@
            path = AssetVersionUtility.GetAssetFilePath("config/ContinueSignIn.txt");
        }
      var tempConfig = new ContinueSignInConfig();
        var preParse = tempConfig is IConfigPostProcess;
        if (sync)
        {
            var lines = File.ReadAllLines(path);
            rawDatas = new Dictionary<int, string>(lines.Length - 3);
            if (!preParse)
            {
                rawDatas = new Dictionary<string, string>(lines.Length - 3);
            }
            for (int i = 3; i < lines.Length; i++)
            {
                var line = lines[i];
                var index = line.IndexOf("\t");
                var idString = line.Substring(0, index);
                var id = int.Parse(idString);
            try
            {
               var line = lines[i];
               var index = line.IndexOf("\t");
               if (index == -1)
               {
                  continue;
               }
               var id = line.Substring(0, index);
                rawDatas[id] = line;
               if (preParse)
               {
                  var config = new ContinueSignInConfig(line);
                  configs[id] = config;
                  (config as IConfigPostProcess).OnConfigParseCompleted();
               }
               else
               {
                  rawDatas[id] = line;
               }
            }
            catch (System.Exception ex)
                {
                    Debug.LogError(ex);
                }
            }
         inited = true;
        }
@@ -119,15 +181,37 @@
            ThreadPool.QueueUserWorkItem((object _object) =>
            {
                var lines = File.ReadAllLines(path);
                rawDatas = new Dictionary<int, string>(lines.Length - 3);
            if (!preParse)
            {
               rawDatas = new Dictionary<string, string>(lines.Length - 3);
            }
                for (int i = 3; i < lines.Length; i++)
                {
                    var line = lines[i];
                    var index = line.IndexOf("\t");
                    var idString = line.Substring(0, index);
                    var id = int.Parse(idString);
               try
               {
                  var line = lines[i];
                  var index = line.IndexOf("\t");
                  if (index == -1)
                  {
                     continue;
                  }
                  var id = line.Substring(0, index);
                    rawDatas[id] = line;
                  if (preParse)
                  {
                     var config = new ContinueSignInConfig(line);
                     configs[id] = config;
                     (config as IConfigPostProcess).OnConfigParseCompleted();
                  }
                  else
                  {
                     rawDatas[id] = line;
                  }
               }
               catch (System.Exception ex)
                    {
                        Debug.LogError(ex);
                    }
                }
                inited = true;