public Live2DManaged()
        {
            CharacterNotify.Instance.CharacterLoadSubject.Subscribe(CharacterLoad);
            CharacterNotify.Instance.SetAnimationSubject.Subscribe(SetAnimation);
            var repo = ServiceLocator.Instance.GetInstance <BabumiConfigRepository>();

            _babumiConfig = repo.GetConfig();
        }
示例#2
0
        protected override void OnStartup(StartupEventArgs e)
        {
            Thread.GetDomain().UnhandledException += (sender, args) =>
            {
                var exception = args.ExceptionObject as Exception;
                if (exception != null)
                {
                    logger.Error(exception);
                }
            };

            SetupRegistory();

            base.OnStartup(e);
            ServiceLocator.Instance.InitializeServiceLocator();

            //!< プロジェクトのコンフィグファイルを読み込む
            var repo = ServiceLocator.Instance.GetInstance <BabumiConfigRepository>();

            try
            {
                repo.Save("Babumi.config");
            }
            catch (Exception exception) when(exception is FileNotFoundException)
            {
                MessageBox.Show(DesktopCharacter.Properties.Resources.App_ConfigCreateNotify);
                //!< Configファイルを自動作成してみてアプリケーションを再起動を試みる
                try
                {
                    var config = BabumiConfig.DefaultConfig();
                    if (config != null)
                    {
                        repo.Save(config);
                        repo.ExportXML("Babumi.config");
                        System.Windows.Forms.Application.Restart();
                    }
                    else
                    {
                        MessageBox.Show(DesktopCharacter.Properties.Resources.App_Live2DModelNotFound);
                    }
                    //例外が発生したら必ず終了する
                    Environment.Exit(0);
                }
                catch (Exception ex) when(ex is DirectoryNotFoundException)
                {
                    MessageBox.Show(DesktopCharacter.Properties.Resources.App_Live2DFolderNotFound);
                    Environment.Exit(0);
                }
            }
            catch (Exception exception)
            {
                //!< 致命的エラーなので終了する
                MessageBox.Show(string.Format("[ERROR]\n{0}", exception.Message));
                //例外が発生したら必ず終了する
                Environment.Exit(0);
            }
        }
        public CharacterSettingViewModel()
        {
            _listCollection = new ObservableCollection <CharacterName>();
            var repo = ServiceLocator.Instance.GetInstance <BabumiConfigRepository>();

            _babumiConfig = repo.GetConfig();
            _topmostFlag  = _babumiConfig.Topmost;
            _zoomLevel    = _babumiConfig.ZoomLevel;
            Reload();
        }
        /// <summary>
        /// XMLの情報をセーブ
        /// </summary>
        /// <param name="xml"></param>
        public void Save(string xml)
        {
            BabumiConfig config = new BabumiConfig();

            try
            {
                using (var fs = new FileStream(Directory.GetCurrentDirectory() + "\\" + xml, FileMode.Open))
                {
                    // XmlSerializerを使ってファイルに保存
                    XmlSerializer serializer = new XmlSerializer(typeof(BabumiConfig));
                    config = (BabumiConfig)serializer.Deserialize(fs);
                }
            }
            catch (Exception e)
            {
                throw e;
            }
            Save(config);
        }
 /// <summary>
 /// オブジェクトファイルをセーブ
 /// </summary>
 /// <param name="settings"></param>
 public void Save(BabumiConfig settings)
 {
     _babumiConfig = settings;
 }