コード例 #1
0
        private async Task LoadModsFromServerFolder()
        {
            // build a list of mods to be processed
            var modIdList = new List <string>();

            var modDirectory = new DirectoryInfo(Path.Combine(_profile.InstallDirectory, Config.Default.ServerModsRelativePath));

            foreach (var file in modDirectory.GetFiles("*.mod"))
            {
                var modId = Path.GetFileNameWithoutExtension(file.Name);
                if (ModUtils.IsOfficialMod(modId))
                {
                    continue;
                }

                modIdList.Add(modId);
            }
            modIdList = ModUtils.ValidateModList(modIdList);

            var response = await Task.Run(() => SteamUtils.GetSteamModDetails(modIdList));

            var workshopFiles  = WorkshopFiles;
            var modsRootFolder = Path.Combine(_profile.InstallDirectory, Config.Default.ServerModsRelativePath);
            var modDetails     = ModDetailList.GetModDetails(modIdList, modsRootFolder, workshopFiles, response);

            UpdateModDetailsList(modDetails);

            ModDetailsStatusMessage = modDetails.Count > 0 && response?.publishedfiledetails == null?_globalizer.GetResourceString("ModDetails_ModDetailFetchFailed_Label") : string.Empty;

            ModDetailsChanged = true;
        }
コード例 #2
0
        private async Task LoadModsFromServerFolder()
        {
            // build a list of mods to be processed
            var modIdList = new List <string>();

            var modDirectory = new DirectoryInfo(Path.Combine(_profile.InstallDirectory, Config.Default.ServerModsRelativePath));

            foreach (var directory in modDirectory.GetDirectories())
            {
                var modId = directory.Name;
                if (ModUtils.IsOfficialMod(modId))
                {
                    continue;
                }

                var modFile = $"{directory.FullName}.mod";
                if (File.Exists(modFile))
                {
                    modIdList.Add(Path.GetFileNameWithoutExtension(modFile));
                }
            }

            modIdList = ModUtils.ValidateModList(modIdList);

            var response = await GetModDetails(modIdList);

            var modDetails = ModDetailList.GetModDetails(response, Path.Combine(_profile.InstallDirectory, Config.Default.ServerModsRelativePath), modIdList);

            UpdateModDetailsList(modDetails);

            ModDetailsChanged = true;
        }
コード例 #3
0
        private async Task LoadModsFromProfile()
        {
            // build a list of mods to be processed
            var modIdList = new List <string>();

            var serverMapModId = ServerProfile.GetProfileMapModId(_profile);

            if (!string.IsNullOrWhiteSpace(serverMapModId))
            {
                modIdList.Add(serverMapModId);
            }

            if (!string.IsNullOrWhiteSpace(_profile.TotalConversionModId))
            {
                modIdList.Add(_profile.TotalConversionModId);
            }

            modIdList.AddRange(ModUtils.GetModIdList(_profile.ServerModIds));
            modIdList = ModUtils.ValidateModList(modIdList);

            var response = await Task.Run(() => SteamUtils.GetSteamModDetails(modIdList));

            var workshopFiles  = WorkshopFiles;
            var modsRootFolder = Path.Combine(_profile.InstallDirectory, Config.Default.ServerModsRelativePath);
            var modDetails     = ModDetailList.GetModDetails(modIdList, modsRootFolder, workshopFiles, response);

            UpdateModDetailsList(modDetails);

            ModDetailsStatusMessage = modDetails.Count > 0 && response?.publishedfiledetails == null?_globalizer.GetResourceString("ModDetails_ModDetailFetchFailed_Label") : string.Empty;

            ModDetailsChanged = false;
        }
コード例 #4
0
        private async Task LoadModsFromProfile()
        {
            // build a list of mods to be processed
            var modIdList = new List <string>();

            var serverMapModId = ServerProfile.GetProfileMapModId(_profile);

            if (!string.IsNullOrWhiteSpace(serverMapModId))
            {
                modIdList.Add(serverMapModId);
            }

            if (!string.IsNullOrWhiteSpace(_profile.TotalConversionModId))
            {
                modIdList.Add(_profile.TotalConversionModId);
            }

            modIdList.AddRange(ModUtils.GetModIdList(_profile.ServerModIds));
            modIdList = ModUtils.ValidateModList(modIdList);

            var response = await GetModDetails(modIdList);

            var modDetails = ModDetailList.GetModDetails(response, Path.Combine(_profile.InstallDirectory, Config.Default.ServerModsRelativePath), modIdList);

            UpdateModDetailsList(modDetails);

            ModDetailsChanged = false;
        }
コード例 #5
0
        public WorkshopFilesWindow(ModDetailList modDetails, ServerProfile profile)
        {
            InitializeComponent();
            WindowUtils.RemoveDefaultResourceDictionary(this, Config.Default.DefaultGlobalizationFile);

            _profile   = profile;
            this.Title = string.Format(_globalizer.GetResourceString("WorkshopFiles_ProfileTitle"), _profile?.ProfileName);

            UpdateModDetailsList(modDetails);

            this.DataContext = this;
        }
コード例 #6
0
        private async Task LoadModsFromList()
        {
            var modIdList = ModDetails.Select(m => m.ModId).ToList();

            var response = await GetModDetails(modIdList);

            var modDetails = ModDetailList.GetModDetails(response, Path.Combine(_profile.InstallDirectory, Config.Default.ServerModsRelativePath), modIdList);

            UpdateModDetailsList(modDetails);

            ModDetailsChanged = true;
        }
コード例 #7
0
        public void UpdateModDetailsList(ModDetailList modDetails)
        {
            if (_modDetails != null)
            {
                _modDetails.CollectionChanged -= ModDetails_CollectionChanged;
            }

            _modDetails = modDetails ?? new ModDetailList();
            if (_modDetails != null)
            {
                _modDetails.CollectionChanged += ModDetails_CollectionChanged;
            }

            WorkshopFilesView?.Refresh();
        }
コード例 #8
0
        private void UpdateModDetailsList(ModDetailList modDetails)
        {
            if (ModDetails != null)
            {
                ModDetails.CollectionChanged -= ModDetails_CollectionChanged;
            }

            ModDetails = modDetails ?? new ModDetailList();
            if (ModDetails != null)
            {
                ModDetails.CollectionChanged += ModDetails_CollectionChanged;
            }

            ModDetailsView?.Refresh();
        }
コード例 #9
0
        private async Task LoadModsFromList()
        {
            // build a list of mods to be processed
            var modIdList = new List <string>();

            modIdList.AddRange(ModDetails.Select(m => m.ModId));
            modIdList = ModUtils.ValidateModList(modIdList);

            var response = await Task.Run(() => SteamUtils.GetSteamModDetails(modIdList));

            var workshopFiles  = WorkshopFiles;
            var modsRootFolder = Path.Combine(_profile.InstallDirectory, Config.Default.ServerModsRelativePath);
            var modDetails     = ModDetailList.GetModDetails(modIdList, modsRootFolder, workshopFiles, response);

            UpdateModDetailsList(modDetails);

            ModDetailsStatusMessage = modDetails.Count > 0 && response?.publishedfiledetails == null?_globalizer.GetResourceString("ModDetails_ModDetailFetchFailed_Label") : string.Empty;

            ModDetailsChanged = true;
        }
コード例 #10
0
        private async Task LoadModsFromServerFolder()
        {
            // build a list of mods to be processed
            var modIdList = new List <string>();

            var directoryNames = Directory.GetDirectories(Path.Combine(_profile.InstallDirectory, Config.Default.ServerModsRelativePath));

            foreach (var directoryName in directoryNames)
            {
                var modFile = $"{directoryName}.mod";
                if (File.Exists(modFile))
                {
                    modIdList.Add(Path.GetFileNameWithoutExtension(modFile));
                }
            }

            var response = await GetModDetails(modIdList);

            var modDetails = ModDetailList.GetModDetails(response, Path.Combine(_profile.InstallDirectory, Config.Default.ServerModsRelativePath));

            UpdateModDetailsList(modDetails);

            ModDetailsChanged = true;
        }