From 8d06932ebf186837e048da4822bd837dbf90e212 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期日, 28 四月 2019 10:33:01 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into ViewOtherPlayer
---
Core/GameEngine/Model/Config/ContinueSignInConfig.cs | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 101 insertions(+), 17 deletions(-)
diff --git a/Core/GameEngine/Model/Config/ContinueSignInConfig.cs b/Core/GameEngine/Model/Config/ContinueSignInConfig.cs
index e230f38..a01b832 100644
--- a/Core/GameEngine/Model/Config/ContinueSignInConfig.cs
+++ b/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;
--
Gitblit v1.8.0