Exemple #1
0
 private void SaveConfig()
 {
     using (FileStream outputStream = new FileStream(ViewerConfigPath, FileMode.Create))
     {
         AppVM.ViewerConfig.InternalGameEngineConfig.CopyOptionsFrom(InternalGameEngineConfig.GetOptionsClone()); // Repopulate with current engine values
         AppVM.ViewerConfig.SaveConfig(outputStream);
     }
 }
Exemple #2
0
        private ViewerConfig LoadConfig()
        {
            using (FileStream inputStream = new FileStream(ViewerConfigPath, FileMode.OpenOrCreate))
            {
                ViewerConfig viewerConfig = new ViewerConfig();
                viewerConfig.InternalGameEngineConfig = InternalGameEngineConfig.GetOptionsClone(); // Create clone to store user values

                try
                {
                    viewerConfig.LoadConfig(inputStream);
                }
                catch (Exception) { }

                return(viewerConfig);
            }
        }
Exemple #3
0
        private AppViewModel(AppViewModelParameters parameters)
        {
            if (null == parameters)
            {
                throw new ArgumentNullException(nameof(parameters));
            }

            ProgramTitle             = parameters.ProgramTitle;
            FullVersion              = parameters.FullVersion;
            ViewerConfig             = parameters.ViewerConfig ?? throw new ArgumentNullException(nameof(parameters.ViewerConfig));
            DoOnUIThread             = parameters.DoOnUIThread ?? throw new ArgumentNullException(nameof(parameters.DoOnUIThread));
            TextToClipboard          = parameters.TextToClipboard ?? throw new ArgumentNullException(nameof(parameters.TextToClipboard));
            EngineWrapper            = parameters.EngineWrapper;
            InternalGameEngineConfig = parameters.InternalGameEngineConfig;

            try
            {
                EngineWrapper?.StartEngine();
            }
            catch (Exception ex)
            {
                EngineWrapper?.StopEngine();
                EngineWrapper          = null;
                EngineExceptionOnStart = ex;
            }

            if (null == EngineWrapper)
            {
                // No engine started, use an internal one
                EngineWrapper = new InternalEngineWrapper($"{ProgramTitle} v{FullVersion}", InternalGameEngineConfig);
                EngineWrapper.StartEngine();
            }

            // Now that the engine is started, load user options from viewer config
            InternalGameEngineConfig.CopyOptionsFrom(ViewerConfig.InternalGameEngineConfig);
        }