Beispiel #1
0
        /// <summary>
        /// 惰式初始化
        /// </summary>
        public static void Init()
        {
            if (_isInited)
            {
                return;
            }

            var settingPath   = string.Format("I18N/{0}{1}", Lang, AppEngine.GetConfig(KEngineDefaultConfigs.SettingExt));
            var settingReader = SettingModule.Get(settingPath, false);

            foreach (var row in settingReader)
            {
                Strs[row["Id"]] = row["Value"];
            }

#if UNITY_EDITOR
            // 开发热重载
            if (SettingModule.IsFileSystemMode)
            {
                SettingModule.WatchSetting(settingPath, (_) =>
                {
                    _isInited = false;
                });
            }
#endif
            _isInited = true;
        }
        /// <summary>
        /// Get the singleton
        /// </summary>
        /// <returns></returns>
        public static SubdirSubSubDirExample3Settings GetInstance()
        {
            if (_instance == null)
            {
                _instance = new SubdirSubSubDirExample3Settings();

                _instance._ReloadAll(true);
    #if UNITY_EDITOR
                if (SettingModule.IsFileSystemMode)
                {
                    for (var j = 0; j < TabFilePaths.Length; j++)
                    {
                        var tabFilePath = TabFilePaths[j];
                        SettingModule.WatchSetting(tabFilePath, (path) =>
                        {
                            if (path.Replace("\\", "/").EndsWith(path))
                            {
                                _instance.ReloadAll();
                                Log.LogConsole_MultiThread("Reload success! -> " + path);
                            }
                        });
                    }
                }
    #endif
            }
            return(_instance);
        }
Beispiel #3
0
        /// <summary>
        /// Get the singleton
        /// </summary>
        /// <returns></returns>
        public static GameConfigSettings GetInstance()
        {
            if (ReloadCount == 0)
            {
                _instance._ReloadAll(true);
    #if UNITY_EDITOR
                if (SettingModule.IsFileSystemMode)
                {
                    for (var j = 0; j < TabFilePaths.Length; j++)
                    {
                        var tabFilePath = TabFilePaths[j];
                        SettingModule.WatchSetting(tabFilePath, (path) =>
                        {
                            if (path.Replace("\\", "/").EndsWith(path))
                            {
                                _instance.ReloadAll();
                                Log.LogConsole_MultiThread("File Watcher! Reload success! -> " + path);
                            }
                        });
                    }
                }
    #endif
            }

            return(_instance);
        }
Beispiel #4
0
        /// <summary>
        /// 惰式初始化
        /// </summary>
        public static void Init()
        {
            if (_isInited)
            {
                return;
            }
            Strs.Clear();
            //读取语言包
            var lang_file   = $"I18N/lang{AppConfig.LangFileFlag}.txt";
            var bytes       = KResourceModule.LoadAssetsSync(SettingModule.GetSettingFilePath(lang_file));
            var fileContent = Encoding.UTF8.GetString(bytes);

            TextParser.ParseText(fileContent, Strs);

#if UNITY_EDITOR
            // 开发热重载
            if (SettingModule.IsFileSystemMode)
            {
                SettingModule.WatchSetting(lang_file, (_) =>
                {
                    _isInited = false;
                });
            }
#endif
            _isInited = true;
        }
Beispiel #5
0
    IEnumerator Start()
    {
        KGameSettings.Instance.InitAction += OnGameSettingsInit;

        var engine = KEngine.AppEngine.New(
            gameObject,
            new IModule[]
        {
            //KGameSettings.Instance,
        },
            null,
            null);

        while (!engine.IsInited)
        {
            yield return(null);
        }

        KUIModule.Instance.OpenWindow <KUIDemoHome>();

        KUIModule.Instance.CallUI <KUIDemoHome>(ui =>
        {
            // Do some UI stuff
        });

        Debug.Log("[SettingModule]Table: " + ExampleInfo.TabFilePath);
        var exampleInfoTable = SettingModule.Get <ExampleInfo>(ExampleInfo.TabFilePath);

        foreach (var info in exampleInfoTable.GetAll())
        {
            Debug.Log(string.Format("Name: {0}", info.Name));
        }
    }
Beispiel #6
0
        /// <summary>
        /// Do reload the setting file: GameConfig
        /// </summary>
        void _ReloadAll(bool throwWhenDuplicatePrimaryKey, string customContent = null)
        {
            for (var j = 0; j < TabFilePaths.Length; j++)
            {
                var       tabFilePath = TabFilePaths[j];
                TableFile tableFile;
                if (customContent == null)
                {
                    tableFile = SettingModule.Get(tabFilePath, false);
                }
                else
                {
                    tableFile = TableFile.LoadFromString(customContent);
                }

                using (tableFile)
                {
                    foreach (var row in tableFile)
                    {
                        var pk = GameConfigSetting.ParsePrimaryKey(row);
                        GameConfigSetting setting;
                        if (!_dict.TryGetValue(pk, out setting))
                        {
                            setting           = new GameConfigSetting(row);
                            _dict[setting.Id] = setting;
                        }
                        else
                        {
                            if (throwWhenDuplicatePrimaryKey)
                            {
                                throw new System.Exception(string.Format("DuplicateKey, Class: {0}, File: {1}, Key: {2}", this.GetType().Name, tabFilePath, pk));
                            }
                            else
                            {
                                setting.Reload(row);
                            }
                        }
                    }
                }
            }

            if (OnReload != null)
            {
                OnReload();
            }

            ReloadCount++;
            Log.Info("Reload settings: {0}, Row Count: {1}, Reload Count: {2}", GetType(), Count, ReloadCount);
        }
        /// <summary>
        /// Do reload the setting file: SubdirSubSubDirExample3
        /// </summary>
        void _ReloadAll(bool throwWhenDuplicatePrimaryKey)
        {
            for (var j = 0; j < TabFilePaths.Length; j++)
            {
                var tabFilePath = TabFilePaths[j];
                using (var tableFile = SettingModule.Get(tabFilePath, false))
                {
                    foreach (var row in tableFile)
                    {
                        var pk = SubdirSubSubDirExample3Setting.ParsePrimaryKey(row);
                        SubdirSubSubDirExample3Setting setting;
                        if (!_dict.TryGetValue(pk, out setting))
                        {
                            setting           = new SubdirSubSubDirExample3Setting(row);
                            _dict[setting.Id] = setting;
                        }
                        else
                        {
                            if (throwWhenDuplicatePrimaryKey)
                            {
                                throw new System.Exception(string.Format("DuplicateKey, Class: {0}, File: {1}, Key: {2}", this.GetType().Name, tabFilePath, pk));
                            }
                            else
                            {
                                setting.Reload(row);
                            }
                        }
                    }
                }
            }

            if (OnReload != null)
            {
                OnReload();
            }
        }
Beispiel #8
0
        private static void Host_PostWirelessSetting(object sender, Chromium.Remote.Event.CfrV8HandlerExecuteEventArgs e)
        {
            try
            {
                int wirelessNumber = e.Arguments[0].IntValue;
                int frequency      = e.Arguments[1].IntValue;

                Task.Factory.StartNew(() =>
                {
                    SettingModule settingModule = SettingReceived();
                    try
                    {
                        ViewCallFunction.ViewWirelessMessage("打开模块设置功能。");
                        byte[] by = PortAgreement.OpenModular();
                        SerialPortManager.WriteSerialPortData(SerialPortManager.Device1, by);
                        Thread.Sleep(20);

                        #region 设置模块发送ID

                        for (int i = 0; i < 3; i++)
                        {
                            settingModule.SettingOver = false;
                            ViewCallFunction.ViewWirelessMessage("设置模块发送ID(编号)。");
                            by = PortAgreement.SetModuleTid(wirelessNumber);
                            SerialPortManager.WriteSerialPortData(SerialPortManager.Device1, by);
                            Thread.Sleep(250);
                            if (settingModule.SettingOver)
                            {
                                break;
                            }
                        }

                        for (int i = 0; i < 3; i++)
                        {
                            settingModule.SettingOver = false;
                            ViewCallFunction.ViewWirelessMessage("设置模块接收ID(编号)。");
                            by = PortAgreement.SetModuleRid(wirelessNumber);
                            SerialPortManager.WriteSerialPortData(SerialPortManager.Device1, by);
                            Thread.Sleep(250);
                            if (settingModule.SettingOver)
                            {
                                break;
                            }
                        }

                        for (int i = 0; i < 3; i++)
                        {
                            settingModule.SettingOver = false;
                            ViewCallFunction.ViewWirelessMessage("设置模块频率。");
                            by = PortAgreement.SetModuleFrequency(frequency);
                            SerialPortManager.WriteSerialPortData(SerialPortManager.Device1, by);
                            Thread.Sleep(250);
                            if (settingModule.SettingOver)
                            {
                                break;
                            }
                        }

                        for (int i = 0; i < 3; i++)
                        {
                            settingModule.SettingOver = false;
                            ViewCallFunction.ViewWirelessMessage("设置模块回传功能。");
                            by = PortAgreement.SetModuleComesBack(1);
                            SerialPortManager.WriteSerialPortData(SerialPortManager.Device1, by);
                            Thread.Sleep(250);
                            if (settingModule.SettingOver)
                            {
                                break;
                            }
                        }

                        ViewCallFunction.ViewWirelessMessage("关闭模块设置功能。");
                        by = PortAgreement.CloseModular();
                        SerialPortManager.WriteSerialPortData(SerialPortManager.Device1, by);
                        Thread.Sleep(20);

                        for (int i = 0; i < 3; i++)
                        {
                            settingModule.SettingOver = false;
                            ViewCallFunction.ViewWirelessMessage("发送数据测试。");
                            by = PortAgreement.SetModular("ABCDEF");
                            SerialPortManager.WriteSerialPortData(SerialPortManager.Device1, by);
                            Thread.Sleep(250);
                            if (settingModule.SettingOver)
                            {
                                break;
                            }
                        }

                        #endregion 设置模块发送ID
                    }
                    catch (Exception ex)
                    {
                        Log4Helper.ErrorInfo(ex.Message, ex);
                        ViewCallFunction.ViewAlert(ex.Message);
                    }
                    finally
                    {
                        OverTimeManager.Stop();
                        ViewCallFunction.ViewWirelessOver();
                    }
                });
            }
            catch (Exception ex)
            {
                Log4Helper.ErrorInfo(ex.Message, ex);
                ViewCallFunction.ViewAlert(ex.Message);
            }
        }
Beispiel #9
0
        private static void Host_PostWirelessSearch(object sender, Chromium.Remote.Event.CfrV8HandlerExecuteEventArgs e)
        {
            try
            {
                Task.Factory.StartNew(() =>
                {
                    SettingModule settingModule = SettingReceived();
                    OverTimeManager.Stop();

                    byte[] by;
                    try
                    {
                        for (int i = 1; i <= 64; i++)
                        {
                            if (m_StopWirelessSearch)
                            {
                                break;
                            }

                            ViewCallFunction.ViewWirelessMessage($"搜索目标频率{i}/64。");

                            //ViewCallFunction.ViewWirelessMessage("打开模块设置功能。");
                            by = PortAgreement.OpenModular();
                            SerialPortManager.WriteSerialPortData(SerialPortManager.Device1, by);
                            Thread.Sleep(20);

                            for (int j = 0; j < 3; j++)
                            {
                                if (m_StopWirelessSearch)
                                {
                                    break;
                                }
                                settingModule.SettingOver = false;
                                ViewCallFunction.ViewWirelessMessage("设置模块频率。");
                                by = PortAgreement.SetModuleFrequency(i);
                                SerialPortManager.WriteSerialPortData(SerialPortManager.Device1, by);
                                Thread.Sleep(250);
                                if (settingModule.SettingOver)
                                {
                                    break;
                                }
                            }

                            for (int j = 0; j < 3; j++)
                            {
                                if (m_StopWirelessSearch)
                                {
                                    break;
                                }
                                settingModule.SettingOver = false;
                                //ViewCallFunction.ViewWirelessMessage("设置模块回传功能。");
                                by = PortAgreement.SetModuleComesBack(1);
                                SerialPortManager.WriteSerialPortData(SerialPortManager.Device1, by);
                                Thread.Sleep(250);
                                if (settingModule.SettingOver)
                                {
                                    break;
                                }
                            }

                            //ViewCallFunction.ViewWirelessMessage("关闭模块设置功能。");
                            by = PortAgreement.CloseModular();
                            SerialPortManager.WriteSerialPortData(SerialPortManager.Device1, by);
                            Thread.Sleep(20);

                            for (int j = 0; j < 3; j++)
                            {
                                if (m_StopWirelessSearch)
                                {
                                    break;
                                }
                                settingModule.SettingOver = false;
                                ViewCallFunction.ViewWirelessMessage("发送数据测试。");
                                by = PortAgreement.SetModular("ABCDEF");
                                SerialPortManager.WriteSerialPortData(SerialPortManager.Device1, by);
                                Thread.Sleep(250);
                                if (settingModule.SettingOver)
                                {
                                    ViewCallFunction.ViewWirelessMessage($"无线频率 {i} 发现设备。");
                                    break;
                                }
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        Log4Helper.ErrorInfo(ex.Message, ex);
                        ViewCallFunction.ViewAlert(ex.Message);
                    }
                    finally
                    {
                        m_StopWirelessSearch = false;
                        ViewCallFunction.ViewWirelessOver();
                    }
                });
            }
            catch (Exception ex)
            {
                Log4Helper.ErrorInfo(ex.Message, ex);
                ViewCallFunction.ViewAlert(ex.Message);
            }
        }
Beispiel #10
0
        public void OnSaveBtnClick()
        {
            SettingModule settingModule = ModuleAPI.SettingModule;

            settingModule.SetBgmVolume(BgmSlider.value);
        }