少年修仙传客户端代码仓库
hch
2020-10-27 b08443fb08f90dea26be474e6e8d6767036a7182
Merge branch 'master' of http://mobile.173on.com:10010/r/snxxz_scripts
4个文件已修改
2个文件已添加
249 ■■■■■ 已修改文件
Core/GameEngine/Login/Launch.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/InitialFunctionConfig.cs 215 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/InitialFunctionConfig.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Language/Language.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/SystemSetting/SystemSetWin.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/ConfigInitiator.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Login/Launch.cs
@@ -299,6 +299,7 @@
                SDKUtility.Instance.CopyOneAsset("config/PriorBundle.txt");
                SDKUtility.Instance.CopyOneAsset("config/PriorLanguage.txt");
                SDKUtility.Instance.CopyOneAsset("config/ApkUpdateUrl.txt");
                SDKUtility.Instance.CopyOneAsset("config/InitialFunction.txt");
                //AssetDeCompressTask.Decompress(ResourcesPath.Instance.ExternalStorePath);
                LocalSave.SetString("BuiltInAssetCopyCompleted_Android", VersionConfig.Get().version);
Core/GameEngine/Model/Config/InitialFunctionConfig.cs
New file
@@ -0,0 +1,215 @@
//--------------------------------------------------------
//    [Author]:           Fish
//    [  Date ]:           Friday, October 23, 2020
//--------------------------------------------------------
using System.Collections.Generic;
using System.IO;
using System.Threading;
using System;
using UnityEngine;
[XLua.LuaCallCSharp]
public partial class InitialFunctionConfig
{
    public readonly string KEY;
    public readonly string Numerical1;
    public readonly string Numerical2;
    public readonly string Numerical3;
    public readonly string Numerical4;
    public readonly string Numerical5;
    public InitialFunctionConfig()
    {
    }
    public InitialFunctionConfig(string input)
    {
        try
        {
            var tables = input.Split('\t');
            KEY = tables[0];
            Numerical1 = tables[1];
            Numerical2 = tables[2];
            Numerical3 = tables[3];
            Numerical4 = tables[4];
            Numerical5 = tables[5];
        }
        catch (Exception ex)
        {
            DebugEx.Log(ex);
        }
    }
    static Dictionary<string, InitialFunctionConfig> configs = new Dictionary<string, InitialFunctionConfig>();
    public static InitialFunctionConfig Get(string id)
    {
        if (!inited)
        {
            Debug.Log("InitialFunctionConfig 还未完成初始化。");
            return null;
        }
        if (configs.ContainsKey(id))
        {
            return configs[id];
        }
        InitialFunctionConfig config = null;
        if (rawDatas.ContainsKey(id))
        {
            config = configs[id] = new InitialFunctionConfig(rawDatas[id]);
            rawDatas.Remove(id);
        }
        return config;
    }
    public static InitialFunctionConfig 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<InitialFunctionConfig> GetValues()
    {
        var values = new List<InitialFunctionConfig>();
        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<string, string> rawDatas = new Dictionary<string, string>();
    public static void Init(bool sync=false)
    {
        inited = false;
        var path = string.Empty;
        if (AssetSource.refdataFromEditor)
        {
            path = ResourcesPath.CONFIG_FODLER +"/InitialFunction.txt";
        }
        else
        {
            path = AssetVersionUtility.GetAssetFilePath("config/InitialFunction.txt");
        }
        configs.Clear();
        var tempConfig = new InitialFunctionConfig();
        var preParse = tempConfig is IConfigPostProcess;
        if (sync)
        {
            var lines = File.ReadAllLines(path);
            if (!preParse)
            {
                rawDatas = new Dictionary<string, string>(lines.Length - 3);
            }
            for (int i = 3; i < lines.Length; i++)
            {
                try
                {
                    var line = lines[i];
                    var index = line.IndexOf("\t");
                    if (index == -1)
                    {
                        continue;
                    }
                    var id = line.Substring(0, index);
                    if (preParse)
                    {
                        var config = new InitialFunctionConfig(line);
                        configs[id] = config;
                        (config as IConfigPostProcess).OnConfigParseCompleted();
                    }
                    else
                    {
                        rawDatas[id] = line;
                    }
                }
                catch (System.Exception ex)
                {
                    Debug.LogError(ex);
                }
            }
            inited = true;
        }
        else
        {
            ThreadPool.QueueUserWorkItem((object _object) =>
            {
                var lines = File.ReadAllLines(path);
                if (!preParse)
                {
                    rawDatas = new Dictionary<string, string>(lines.Length - 3);
                }
                for (int i = 3; i < lines.Length; i++)
                {
                    try
                    {
                       var line = lines[i];
                        var index = line.IndexOf("\t");
                        if (index == -1)
                        {
                            continue;
                        }
                        var id = line.Substring(0, index);
                        if (preParse)
                        {
                            var config = new InitialFunctionConfig(line);
                            configs[id] = config;
                            (config as IConfigPostProcess).OnConfigParseCompleted();
                        }
                        else
                        {
                            rawDatas[id] = line;
                        }
                    }
                    catch (System.Exception ex)
                    {
                        Debug.LogError(ex);
                    }
                }
                inited = true;
            });
        }
    }
}
Core/GameEngine/Model/Config/InitialFunctionConfig.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: ba21797c0400fc6478f2a3897966dcbb
timeCreated: 1603421252
licenseType: Free
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/Language/Language.cs
@@ -25,7 +25,7 @@
    //默认ID
    private static string defaultId
    {
        get { return PriorLanguageConfig.Get("36").Content; }
        get { return InitialFunctionConfig.Get("Language").Numerical1; }
    }
    /// <summary>
@@ -34,7 +34,7 @@
    public static void InitDefaultLanguage()
    {
        Debug.LogFormat("系统语言:{0}", Application.systemLanguage);
        var config = PriorLanguageConfig.Get("37").Content;
        var config = InitialFunctionConfig.Get("Language").Numerical2;
        if (string.IsNullOrEmpty(config))
            return;
        var id = LocalSave.GetString("LANGUAGE_ID");
System/SystemSetting/SystemSetWin.cs
@@ -185,12 +185,12 @@
        private void InitLanguageOptions()
        {
            m_LDListView.SetActive(false);
            if (string.IsNullOrEmpty(PriorLanguageConfig.Get("37").Content))
            if (string.IsNullOrEmpty(InitialFunctionConfig.Get("Language").Numerical2))
            {
                this.m_LanguageMenu.SetActive(false);
                return;
            }
            var json = LitJson.JsonMapper.ToObject(PriorLanguageConfig.Get("37").Content);
            var json = LitJson.JsonMapper.ToObject(InitialFunctionConfig.Get("Language").Numerical2);
            m_LDListView.transform.ClearAllChilds();
            m_LDLabel.text = "未知";
            foreach (var key in json.Keys)
Utility/ConfigInitiator.cs
@@ -18,10 +18,13 @@
        PriorLanguageConfig.Init(true);
        ContactConfig.Init(true);
        HelpInfoConfig.Init(true);
        InitialFunctionConfig.Init(true);
    }
    public static bool IsLoginConfigInited {
        get {
    public static bool IsLoginConfigInited
    {
        get
        {
            return IconConfig.inited
                && LoginSeverListConfig.inited
                && LanguageConfig.inited
@@ -31,8 +34,10 @@
        }
    }
    public static bool IsCreateRoleConfigInited {
        get {
    public static bool IsCreateRoleConfigInited
    {
        get
        {
            return ItemConfig.inited
                  && DirtyWordConfig.inited
                  && CreateRoleConfig.inited