Inheritance: INotifyPropertyChanged
コード例 #1
0
        /// <summary>
        /// Сохранение текущего изображения
        /// </summary>
        /// <param name="sender">Отправитель</param>
        /// <param name="e">Параметры события</param>
        private void OnSaveClick(object sender, RoutedEventArgs e)
        {
            if (IsGameImageLoaded)     //Сохраняем только если картинка загружена
            {
                ResourceItemViewModel item = (ResourceItemViewModel)ItemsComboBox.SelectedValue;
                if (item.RID == 0)                                           //Если ID = 0, считаем, то у нас есть путь ресурса, откуда берем имя файла
                {
                    sFileDialog.FileName = Path.GetFileName(item.RPath);
                }
                else
                {
                    sFileDialog.FileName = item.RID.ToString() + ".tga";    //Иначе сохраняем именем ID
                }

                var result = sFileDialog.ShowDialog();
                if (result == true)
                {
                    try {
                        File.WriteAllBytes(sFileDialog.FileName, CurrentImageBytes);
                    } catch (Exception ex) {
                        DialogManager.ShowErrorDialog(LanguageManager.Model.PersonalizationCantSave + " " + ex.Message);
                    }
                }
            }
        }
コード例 #2
0
        /// <summary>
        /// Загрузка и парсинг файла с ресурсами. Синтакс:
        /// 1) DESCRIPTION;PATH
        /// 2) DESCRIPTION;ID
        /// </summary>
        private void LoadResourceList()
        {
            ResourceModel.UnLoadData();
            string[] rlines = null;
            string   rFile  = (EnvironmentManager.ResourcesPath + string.Format(RES_LIST_FILE,
                                                                                ConfigurationManager.GetConfiguration(ProfileManager.CurrentProfile.GameModel).GameType));

            if (File.Exists(rFile))
            {
                rlines = System.IO.File.ReadAllLines(rFile);

                for (int i = 0; i < rlines.Length; i++)
                {
                    if (rlines[i].Length == 0)
                    {
                        continue;
                    }
                    rlines[i] = rlines[i].Trim();
                    if (rlines[i][0] == '#')
                    {
                        continue;
                    }
                    string[] vars = rlines[i].Split(';');
                    if (vars.Length > 1)
                    {
                        ResourceItemViewModel item = new ResourceItemViewModel();
                        item.RName = vars[0].ToUpper();
                        uint n = 0;
                        item.IsRID = uint.TryParse(vars[1], out n);
                        if (item.IsRID)
                        {
                            item.RID = n;
                        }
                        else
                        {
                            item.RPath = vars[1];
                        }
                        ResourceModel.AddData(item);
                    }
                }
            }
        }
コード例 #3
0
        /// <summary>
        /// Применяет изменения в игру. Записывает выбранное изображение.
        /// </summary>
        /// <param name="sender">Отправитель</param>
        /// <param name="e">Параметры события</param>
        private void OnApplyClick(object sender, RoutedEventArgs e)
        {
            ResourceItemViewModel selectedResource = (ResourceItemViewModel)ItemsComboBox.SelectedValue;
            bool writeResult = false;

            if (selectedResource.IsRID)
            {
                writeResult = FileSystem.WriteStream(new MemoryStream(SelectedImageBytes), selectedResource.RID);
            }
            else
            {
                writeResult = FileSystem.WriteStream(new MemoryStream(SelectedImageBytes), selectedResource.RPath);
            }

            if (!writeResult)
            {
                DialogManager.ShowErrorDialog(LanguageManager.Model.PersonalizationCantWrite);
            }
            else
            {
                IsGameImageLoaded = LoadGameImage(selectedResource);
            }
        }
コード例 #4
0
 /// <summary>
 /// Загрузка текущего изображения из игры
 /// </summary>
 /// <param name="item">VM-объект с данными</param>
 /// <returns></returns>
 private bool LoadGameImage(ResourceItemViewModel item)
 {
     if (item == null)
     {
         return(false);
     }
     if (FileSystem.IsOpened)
     {
         Stream file = item.RID != 0 ? FileSystem.ReadFile(item.RID) : FileSystem.ReadFile(item.RPath);
         if (file != null)
         {
             IsGameImageLoaded = true;
             MemoryStream ms = new MemoryStream();
             file.CopyTo(ms);
             CurrentImageBytes          = ms.ToArray();
             CurrentImageControl.Source = LoadTGA(CurrentImageBytes);
             SaveBtn.Visibility         = Visibility.Visible;
             ms.Close();
             return(true);
         }
     }
     return(false);
 }
コード例 #5
0
 public void AddData(ResourceItemViewModel item)
 {
     this.IsDataLoaded = true;
     this.Items.Add(item);
     NotifyPropertyChanged("Items");
 }
コード例 #6
0
 public void AddData(ResourceItemViewModel item)
 {
     this.IsDataLoaded = true;
     this.Items.Add(item);
     NotifyPropertyChanged("Items");
 }
コード例 #7
0
        /// <summary>
        /// Загрузка и парсинг файла с ресурсами. Синтакс:
        /// 1) DESCRIPTION;PATH
        /// 2) DESCRIPTION;ID
        /// </summary>
        private void LoadResourceList()
        {
            ResourceModel.UnLoadData();
            string[] rlines = null;
            string rFile = (EnvironmentManager.ResourcesPath + string.Format(RES_LIST_FILE,
                ConfigurationManager.GetConfiguration(ProfileManager.CurrentProfile.GameModel).GameType));
            if (File.Exists(rFile)) {
                rlines = System.IO.File.ReadAllLines(rFile);

                for (int i = 0; i < rlines.Length; i++) {
                    if (rlines[i].Length == 0) {
                        continue;
                    }
                    rlines[i] = rlines[i].Trim();
                    if (rlines[i][0] == '#') {
                        continue;
                    }
                    string[] vars = rlines[i].Split(';');
                    if (vars.Length > 1) {
                        ResourceItemViewModel item = new ResourceItemViewModel();
                        item.RName = vars[0].ToUpper();
                        uint n = 0;
                        item.IsRID = uint.TryParse(vars[1], out n);
                        if (item.IsRID)
                            item.RID = n;
                        else
                            item.RPath = vars[1];
                        ResourceModel.AddData(item);
                    }
                }
            }
        }
コード例 #8
0
 /// <summary>
 /// Загрузка текущего изображения из игры
 /// </summary>
 /// <param name="item">VM-объект с данными</param>
 /// <returns></returns>
 private bool LoadGameImage(ResourceItemViewModel item)
 {
     if (item == null) {
         return false;
     }
     if (FileSystem.IsOpened) {
         Stream file = item.RID != 0 ? FileSystem.ReadFile(item.RID) : FileSystem.ReadFile(item.RPath);
         if (file != null) {
             IsGameImageLoaded = true;
             MemoryStream ms = new MemoryStream();
             file.CopyTo(ms);
             CurrentImageBytes = ms.ToArray();
             CurrentImageControl.Source = LoadTGA(CurrentImageBytes);
             SaveBtn.Visibility = Visibility.Visible;
             ms.Close();
             return true;
         }
     }
     return false;
 }