Example #1
0
        public SimpleModPackImporter(DirectoryInfo modPackDirectory, ModPackJson modPackJson, TextureViewModel textureViewModel, ModelViewModel modelViewModel, bool silent = false, bool messageInImport = false)
        {
            this.DataContext = this;

            InitializeComponent();

            JsonEntries     = new List <ModsJson>();
            SelectedEntries = new HashSet <int>();

            _modPackDirectory = modPackDirectory;
            _gameDirectory    = new DirectoryInfo(Properties.Settings.Default.FFXIV_Directory);
            _modding          = new Modding(_gameDirectory);
            _texToolsModPack  = new TTMP(new DirectoryInfo(Properties.Settings.Default.ModPack_Directory),
                                         XivStrings.TexTools);
            _messageInImport  = messageInImport;
            _textureViewModel = textureViewModel;
            _modelViewModel   = modelViewModel;

            var index = new Index(_gameDirectory);

            _indexLockStatus = index.IsIndexLocked(XivDataFile._0A_Exd);


            _packJson = modPackJson;
            _silent   = silent;

            ModListView.IsEnabled        = false;
            LockedStatusLabel.Foreground = Brushes.Black;
            LockedStatusLabel.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Left;
            LockedStatusLabel.Content = UIStrings.Loading;

            Task.Run(Initialize);
        }
Example #2
0
        public ModListView(TextureViewModel textureViewModel, ModelViewModel modelViewModel)
        {
            _textureViewModel = textureViewModel;
            _modelViewModel   = modelViewModel;

            InitializeComponent();
        }
Example #3
0
        public ImportModPackWizard(ModPackJson modPackJson, Dictionary <string, Image> imageDictionary, DirectoryInfo modPackDirectory, TextureViewModel textureViewModel, ModelViewModel modelViewModel, bool messageInImport = false)
        {
            InitializeComponent();

            _imageDictionary  = imageDictionary;
            _modPackDirectory = modPackDirectory;
            _messageInImport  = messageInImport;
            _textureViewModel = textureViewModel;
            _modelViewModel   = modelViewModel;

            ModPackNameLabel.Content    = modPackJson.Name;
            ModPackAuthorLabel.Content  = modPackJson.Author;
            ModPackVersionLabel.Content = modPackJson.Version;
            ModPackDescription.Text     = modPackJson.Description;

            _modPackEntry = new ModPack {
                name = modPackJson.Name, author = modPackJson.Author, version = modPackJson.Version
            };

            _pageCount = modPackJson.ModPackPages.Count;

            var wizPages = importModPackWizard.Items;

            for (var i = 0; i < _pageCount; i++)
            {
                wizPages.Add(new WizardPage
                {
                    Content          = new ImportWizardModPackControl(modPackJson.ModPackPages[i], imageDictionary),
                    PageType         = WizardPageType.Blank,
                    Background       = null,
                    HeaderBackground = null
                });
            }
        }
Example #4
0
        public static Image ToImage(this TextureViewModel @this)
        {
            if (@this.ResourceName == null)
            {
                return(null);
            }

            var brush = new VisualBrush
            {
                TileMode      = TileMode.Tile,
                Viewport      = new Rect(0, 0, 32, 32),
                ViewportUnits = BrushMappingMode.Absolute
            };

            var textureImage = new BitmapImage();

            textureImage.BeginInit();
            textureImage.UriSource = new Uri($"pack://*****:*****@this.ResourceName}.png");
            textureImage.EndInit();

            return(new Image
            {
                Source = textureImage
            });
        }
        public ModList(ModelViewModel mvm, TextureViewModel tvm)
        {
            InitializeComponent();

            this.mvm = mvm;
            this.tvm = tvm;

            ModListViewModel vm = new ModListViewModel();

            modListTreeView.DataContext = vm;
        }
        public ImportModPackWizard(ModPackJson modPackJson, Dictionary <string, Image> imageDictionary, DirectoryInfo modPackDirectory, TextureViewModel textureViewModel, ModelViewModel modelViewModel, bool messageInImport = false)
        {
            InitializeComponent();

            _imageDictionary  = imageDictionary;
            _modPackDirectory = modPackDirectory;
            _messageInImport  = messageInImport;
            _textureViewModel = textureViewModel;
            _modelViewModel   = modelViewModel;

            ModPackNameLabel.Content    = modPackJson.Name;
            ModPackAuthorLabel.Content  = modPackJson.Author;
            ModPackVersionLabel.Content = modPackJson.Version;
            ModPackDescription.Text     = modPackJson.Description;
            ModPackUrlLabel.Text        = modPackJson.Url;
            ModPackUrlLabel.PreviewMouseLeftButtonDown += ModPackUrlLabel_PreviewMouseLeftButtonDown;


            if (!String.IsNullOrEmpty(modPackJson.MinimumFrameworkVersion))
            {
                Version ver;
                bool    success = Version.TryParse(modPackJson.MinimumFrameworkVersion, out ver);
                if (success)
                {
                    var frameworkVersion = typeof(XivCache).Assembly.GetName().Version;
                    if (ver > frameworkVersion)
                    {
                        var Win32Window = new WindowWrapper(new WindowInteropHelper(this).Handle);
                        FlexibleMessageBox.Show(Win32Window, "This Modpack requires a more recent version of TexTools to install.", "Framework Version Error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
                        Close();
                        return;
                    }
                }
            }

            _modPackEntry = new ModPack {
                name = modPackJson.Name, author = modPackJson.Author, version = modPackJson.Version
            };

            _pageCount = modPackJson.ModPackPages.Count;

            var wizPages = importModPackWizard.Items;

            for (var i = 0; i < _pageCount; i++)
            {
                wizPages.Add(new WizardPage
                {
                    Content          = new ImportWizardModPackControl(modPackJson.ModPackPages[i], imageDictionary),
                    PageType         = WizardPageType.Blank,
                    Background       = null,
                    HeaderBackground = null
                });
            }
        }
Example #7
0
        public TextureView()
        {
            InitializeComponent();

            this.textureViewModel = new TextureViewModel(this);
            this.DataContext      = this.textureViewModel;

            CustomizeViewModel customizeViewModel = new CustomizeViewModel(null);

            this.ExportContextMenu.DataContext = customizeViewModel;
            this.ExportFormatLabel.DataContext = customizeViewModel;
        }
Example #8
0
        public ImportModPackWizard(ModPackJson modPackJson, Dictionary <string, Image> imageDictionary, DirectoryInfo modPackDirectory, TextureViewModel textureViewModel, ModelViewModel modelViewModel, bool messageInImport = false)
        {
            InitializeComponent();

            _imageDictionary  = imageDictionary;
            _modPackDirectory = modPackDirectory;
            _messageInImport  = messageInImport;
            _textureViewModel = textureViewModel;
            _modelViewModel   = modelViewModel;

            ModPackNameLabel.Content    = modPackJson.Name;
            ModPackAuthorLabel.Content  = modPackJson.Author;
            ModPackVersionLabel.Content = modPackJson.Version;
            ModPackDescription.Text     = modPackJson.Description;


            if (String.IsNullOrEmpty(modPackJson.MinimumFrameworkVersion))
            {
                Version ver;
                bool    success = Version.TryParse(modPackJson.MinimumFrameworkVersion, out ver);
                if (success)
                {
                    var frameworkVersion = typeof(XivCache).Assembly.GetName().Version;
                    if (ver > frameworkVersion)
                    {
                        throw new NotSupportedException("This modpack requires a more recent TexTools version to install.");
                    }
                }
            }

            _modPackEntry = new ModPack {
                name = modPackJson.Name, author = modPackJson.Author, version = modPackJson.Version
            };

            _pageCount = modPackJson.ModPackPages.Count;

            var wizPages = importModPackWizard.Items;

            for (var i = 0; i < _pageCount; i++)
            {
                wizPages.Add(new WizardPage
                {
                    Content          = new ImportWizardModPackControl(modPackJson.ModPackPages[i], imageDictionary),
                    PageType         = WizardPageType.Blank,
                    Background       = null,
                    HeaderBackground = null
                });
            }
        }
Example #9
0
        public SimpleModPackImporter(DirectoryInfo modPackDirectory, ModPackJson modPackJson, TextureViewModel textureViewModel, ModelViewModel modelViewModel, bool silent = false, bool messageInImport = false)
        {
            InitializeComponent();

            _modPackDirectory = modPackDirectory;
            _gameDirectory    = new DirectoryInfo(Properties.Settings.Default.FFXIV_Directory);
            _texToolsModPack  = new TTMP(new DirectoryInfo(Properties.Settings.Default.ModPack_Directory),
                                         XivStrings.TexTools);
            _messageInImport  = messageInImport;
            _textureViewModel = textureViewModel;
            _modelViewModel   = modelViewModel;

            var index = new Index(_gameDirectory);

            _indexLockStatus = index.IsIndexLocked(XivDataFile._0A_Exd);

            ModListView.ItemsSource = _simpleDataList;

            Initialize(modPackJson, silent);
        }
        /// <summary>
        /// This method opens the modpack import wizard or imports a modpack silently
        /// </summary>
        /// <param name="path">The path to the modpack</param>
        /// <param name="silent">If the modpack wizard should be shown or the modpack should just be imported without any user interaction</param>
        /// <returns></returns>
        private async Task <int> ImportModpack(DirectoryInfo path, DirectoryInfo modPackDirectory, bool silent = false, bool messageInImport = false)
        {
            var              importError      = false;
            TextureView      textureView      = null;
            TextureViewModel textureViewModel = null;
            ModelView        modelView        = null;
            ModelViewModel   modelViewModel   = null;

            if (TextureTabItem != null && ModelTabItem != null)
            {
                textureView      = TextureTabItem.Content as TextureView;
                textureViewModel = textureView.DataContext as TextureViewModel;
                modelView        = ModelTabItem.Content as ModelView;
                modelViewModel   = modelView.DataContext as ModelViewModel;
            }

            if (!path.Extension.Contains("ttmp"))
            {
                FlexibleMessageBox.Show(string.Format(UIMessages.UnsupportedFileExtensionErrorMessage, path.Extension),
                                        UIMessages.UnsupportedFileExtensionErrorTitle, MessageBoxButtons.OK, MessageBoxIcon.Error);

                return(0);
            }

            try
            {
                var ttmp     = new TTMP(modPackDirectory, XivStrings.TexTools);
                var ttmpData = await ttmp.GetModPackJsonData(path);

                if (ttmpData.ModPackJson.TTMPVersion.Contains("w"))
                {
                    var gameDirectory = new DirectoryInfo(Settings.Default.FFXIV_Directory);
                    var index         = new Index(gameDirectory);

                    if (index.IsIndexLocked(XivDataFile._0A_Exd))
                    {
                        FlexibleMessageBox.Show(UIMessages.IndexLockedErrorMessage, UIMessages.IndexLockedErrorTitle, MessageBoxButtons.OK, MessageBoxIcon.Error);

                        return(0);
                    }

                    try
                    {
                        var importWizard = new ImportModPackWizard(ttmpData.ModPackJson, ttmpData.ImageDictionary,
                                                                   path, textureViewModel, modelViewModel, messageInImport);

                        if (messageInImport)
                        {
                            importWizard.WindowStartupLocation = WindowStartupLocation.CenterScreen;
                        }
                        else
                        {
                            importWizard.Owner = this;
                        }

                        var result = importWizard.ShowDialog();

                        if (result == true)
                        {
                            return(importWizard.TotalModsImported);
                        }
                    }
                    catch
                    {
                        importError = true;
                    }
                }
                else if (ttmpData.ModPackJson.TTMPVersion.Contains("s"))
                {
                    try
                    {
                        var simpleImport = new SimpleModPackImporter(path,
                                                                     ttmpData.ModPackJson, textureViewModel, modelViewModel, silent, messageInImport);

                        if (messageInImport)
                        {
                            simpleImport.WindowStartupLocation = WindowStartupLocation.CenterScreen;
                        }
                        else
                        {
                            simpleImport.Owner = this;
                        }

                        var result = simpleImport.ShowDialog();

                        if (result == true)
                        {
                            return(simpleImport.TotalModsImported);
                        }
                    }
                    catch
                    {
                        importError = true;
                    }
                }
            }
            catch (Exception ex)
            {
                if (!importError)
                {
                    var simpleImport = new SimpleModPackImporter(path, null, textureViewModel, modelViewModel, silent, messageInImport);

                    if (messageInImport)
                    {
                        simpleImport.WindowStartupLocation = WindowStartupLocation.CenterScreen;
                    }
                    else
                    {
                        simpleImport.Owner = this;
                    }

                    var result = simpleImport.ShowDialog();

                    if (result == true)
                    {
                        return(simpleImport.TotalModsImported);
                    }
                }
                else
                {
                    FlexibleMessageBox.Show(string.Format(UIMessages.ModPackImportErrorMessage, path.FullName, ex.Message), UIMessages.ModPackImportErrorTitle, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return(0);
                }
            }

            return(0);
        }
 public Texture(ECOSITE ecosite)
 {
     InitializeComponent();
     _viewmodel          = new TextureViewModel(Navigation, ecosite);
     this.BindingContext = _viewmodel;
 }
 public Texture(SOIL soil)
 {
     InitializeComponent();
     _viewmodel          = new TextureViewModel(Navigation, soil);
     this.BindingContext = _viewmodel;
 }