Beispiel #1
0
 public List <string> GetUsedThemes()
 {
     ThemePackageIDs.Clear();
     ObtainUsedThemes(Atmosphere);
     ObtainUsedThemes(Structures);
     ObtainUsedThemes(Terrain);
     ObtainUsedThemes(Water);
     ObtainUsedThemes(Weather);
     return(ThemePackageIDs);
 }
Beispiel #2
0
 private static void ObtainUsedThemes(IPackageIDListProvider provider)
 {
     foreach (string packageID in provider.GetPackageIDs())
     {
         if (ThemePackageIDs.Contains(packageID))
         {
             continue;
         }
         ThemePackageIDs.Add(packageID);
     }
 }
Beispiel #3
0
 private static void RefreshSubscribedThemes()
 {
     ThemePackageIDs.Clear();
     foreach (Package.Asset mapThemeAsset in PackageManager.FilterAssets(UserAssetType.MapThemeMetaData))
     {
         if (ThemePackageIDs.Contains(mapThemeAsset.fullName))
         {
             continue;
         }
         ThemePackageIDs.Add(mapThemeAsset.fullName);
     }
 }
Beispiel #4
0
 private static void MaybeSubscribe(string packageID)
 {
     if (string.IsNullOrEmpty(packageID))
     {
         return;
     }
     if (ThemePackageIDs.Contains(packageID))
     {
         return;
     }
     if (ulong.TryParse(packageID, out ulong publishedFileID))
     {
         PlatformService.workshop.Subscribe(new PublishedFileId(publishedFileID));
     }
 }
Beispiel #5
0
        public bool ThemesMissing()
        {
            RefreshSubscribedThemes();

            var missing = false;

            foreach (string packageID in Atmosphere.GetPackageIDs())
            {
                if (!ThemePackageIDs.Contains(packageID))
                {
                    missing = true;
                }
            }
            foreach (string packageID in Structures.GetPackageIDs())
            {
                if (!ThemePackageIDs.Contains(packageID))
                {
                    missing = true;
                }
            }
            foreach (string packageID in Terrain.GetPackageIDs())
            {
                if (!ThemePackageIDs.Contains(packageID))
                {
                    missing = true;
                }
            }
            foreach (string packageID in Water.GetPackageIDs())
            {
                if (!ThemePackageIDs.Contains(packageID))
                {
                    missing = true;
                }
            }
            foreach (string packageID in Weather.GetPackageIDs())
            {
                if (!ThemePackageIDs.Contains(packageID))
                {
                    missing = true;
                }
            }

            return(missing);
        }