Exemple #1
0
        public override int GetHashCode()
        {
            int hash = 1;

            if (Enabled != false)
            {
                hash ^= Enabled.GetHashCode();
            }
            if (AvatarType != 0)
            {
                hash ^= AvatarType.GetHashCode();
            }
            hash ^= slot_.GetHashCode();
            if (BundleName.Length != 0)
            {
                hash ^= BundleName.GetHashCode();
            }
            if (AssetName.Length != 0)
            {
                hash ^= AssetName.GetHashCode();
            }
            if (GroupName.Length != 0)
            {
                hash ^= GroupName.GetHashCode();
            }
            if (SortOrder != 0)
            {
                hash ^= SortOrder.GetHashCode();
            }
            if (UnlockType != 0)
            {
                hash ^= UnlockType.GetHashCode();
            }
            hash ^= promoType_.GetHashCode();
            if (UnlockBadgeType != 0)
            {
                hash ^= UnlockBadgeType.GetHashCode();
            }
            if (IapSku.Length != 0)
            {
                hash ^= IapSku.GetHashCode();
            }
            if (UnlockBadgeLevel != 0)
            {
                hash ^= UnlockBadgeLevel.GetHashCode();
            }
            if (IconName.Length != 0)
            {
                hash ^= IconName.GetHashCode();
            }
            if (UnlockPlayerLevel != 0)
            {
                hash ^= UnlockPlayerLevel.GetHashCode();
            }
            if (_unknownFields != null)
            {
                hash ^= _unknownFields.GetHashCode();
            }
            return(hash);
        }
Exemple #2
0
 public int GetHashCode()
 {
     unchecked
     {
         return(((BundleName != null ? BundleName.GetHashCode() : 0) * 397) ^ (AssetName != null ? AssetName.GetHashCode() : 0));
     }
 }
Exemple #3
0
        public static void SetAssetBundleName()
        {
            // 清理无用asset bundle name
            AssetDatabase.RemoveUnusedAssetBundleNames();

            // 标准资源
            BundleName[] standards = new BundleName[]
            {
                new BundleName("Art/Heros", "heros"),
                new BundleName("Art/Monsters", "monsters"),
                new BundleName("Art/Weapons", "weapons"),
                new BundleName("Art/Bullets", "bullets"),
                new BundleName("Art/Effects", "effects"),
            };
            SetAssetBundleNameToStandard(standards);

            // 设置单一资源
            BundleName[] singles = new BundleName[]
            {
                new BundleName("Data/CSV", "csv", "*.csv"),
                new BundleName("Art/Behavior", "behavior", "*.asset"),
                new BundleName("Art/UIPrefabs", "uiprefabs", "*.prefab"),
            };
            SetAssetBundleNameToSingle(singles);

            // level
            SetAssetBundleNameToLevelPrefab();
            SetAssetBundleNameToLevelScene();

            // skybox
            SetAssetBundleNameToSkybox();

            Debug.Log("设置资源 assetBundleName 完成!");
        }
Exemple #4
0
 public override int GetHashCode()
 {
     unchecked
     {
         return(((BundleName != null ? BundleName.GetHashCode() : 0) * 397) ^ (AssemblyName != null ? AssemblyName.GetHashCode() : 0));
     }
 }
Exemple #5
0
        public override int GetHashCode()
        {
            int hash = 1;

            if (AssetId.Length != 0)
            {
                hash ^= AssetId.GetHashCode();
            }
            if (BundleName.Length != 0)
            {
                hash ^= BundleName.GetHashCode();
            }
            if (Version != 0L)
            {
                hash ^= Version.GetHashCode();
            }
            if (Checksum != 0)
            {
                hash ^= Checksum.GetHashCode();
            }
            if (Size != 0)
            {
                hash ^= Size.GetHashCode();
            }
            if (Key.Length != 0)
            {
                hash ^= Key.GetHashCode();
            }
            return(hash);
        }
Exemple #6
0
 public static void UnloadBundle(BundleName _bundleName, bool _unloadAllLoadedObjects)
 {
     if (isBundleLoaded[(int)_bundleName])
     {
         loadedBundles[(int)_bundleName].Unload(_unloadAllLoadedObjects);
         isBundleLoaded[(int)_bundleName] = false;
     }
 }
Exemple #7
0
    public static void LoadAssetBundle(BundleName _bundleName)
    {
        string fullPath = GetAssetsPathFromBundleName(_bundleName);


        loadedBundles[(int)_bundleName]  = AssetBundle.LoadFromFile(fullPath);
        isBundleLoaded[(int)_bundleName] = true;
    }
 /// <summary>
 /// Gets the hash code
 /// </summary>
 /// <returns>Hash code</returns>
 public override int GetHashCode()
 {
     unchecked // Overflow is fine, just wrap
     {
         var hashCode = 41;
         // Suitable nullity checks etc, of course :)
         if (Bsb != null)
         {
             hashCode = hashCode * 59 + Bsb.GetHashCode();
         }
         if (AccountNumber != null)
         {
             hashCode = hashCode * 59 + AccountNumber.GetHashCode();
         }
         if (BundleName != null)
         {
             hashCode = hashCode * 59 + BundleName.GetHashCode();
         }
         if (SpecificAccountUType != null)
         {
             hashCode = hashCode * 59 + SpecificAccountUType.GetHashCode();
         }
         if (TermDeposit != null)
         {
             hashCode = hashCode * 59 + TermDeposit.GetHashCode();
         }
         if (CreditCard != null)
         {
             hashCode = hashCode * 59 + CreditCard.GetHashCode();
         }
         if (Loan != null)
         {
             hashCode = hashCode * 59 + Loan.GetHashCode();
         }
         if (Features != null)
         {
             hashCode = hashCode * 59 + Features.GetHashCode();
         }
         if (Fees != null)
         {
             hashCode = hashCode * 59 + Fees.GetHashCode();
         }
         if (DepositRates != null)
         {
             hashCode = hashCode * 59 + DepositRates.GetHashCode();
         }
         if (LendingRates != null)
         {
             hashCode = hashCode * 59 + LendingRates.GetHashCode();
         }
         if (Address != null)
         {
             hashCode = hashCode * 59 + Address.GetHashCode();
         }
         return(hashCode);
     }
 }
Exemple #9
0
        public static string GetBundleName(DirectoryReference ProjectDirectory, FileReference ProjectFile)
        {
            ConfigHierarchy Ini = GetIni(ProjectDirectory);
            string          BundleName;

            Ini.GetString("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "BundleName", out BundleName);

            BundleName = BundleName.Replace("[PROJECT_NAME]", ((ProjectFile != null) ? ProjectFile.GetFileNameWithoutAnyExtensions() : "UE4Game")).Replace("_", "");
            return(BundleName);
        }
Exemple #10
0
    public static AssetBundle GetAssetBundle(BundleName _bundleName)
    {
        if (!isBundleLoaded[(int)_bundleName] || loadedBundles[(int)_bundleName] == null)
        {
            if (loadedBundles[(int)_bundleName] != null)
            {
                loadedBundles[(int)_bundleName].Unload(false);
            }

            LoadAssetBundle(_bundleName);
        }

        return(loadedBundles[(int)_bundleName]);
    }
Exemple #11
0
        public override int GetHashCode()
        {
            int hash = 1;

            if (BundleName.Length != 0)
            {
                hash ^= BundleName.GetHashCode();
            }
            if (BundleUrl.Length != 0)
            {
                hash ^= BundleUrl.GetHashCode();
            }
            if (LoadTime != 0D)
            {
                hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(LoadTime);
            }
            if (_unknownFields != null)
            {
                hash ^= _unknownFields.GetHashCode();
            }
            return(hash);
        }
Exemple #12
0
    private static void MapResBundleFolder(string a_bundleName, string a_bundlePath)
    {
        string dirName = a_bundleName;

        BundleMap  bundleMap  = null;
        BundleName bundleName = new BundleName(dirName);

        if (currentBundleMap.TryGetValue(bundleName, out bundleMap) == false) // No Path Map Exists
        {
            bundleMap = new BundleMap();
        }

        DirectoryInfo bundleDir = new DirectoryInfo(a_bundlePath);

        for (int i = 0; i < (int)bundleMap.Count; ++i)
        {
            AssetType type      = (AssetType)i;
            string    extension = AssetTypeExtensionLookup[type];
            RecursivelyMapBundleDir(bundleDir, bundleMap[type], currentTypeMaps[i], extension);
        }

        Debug.Log("Map Directory Complete!");
    }
Exemple #13
0
    private static void MapResBundleFolder(DirectoryInfo a_bundleDir)
    {
        string dirName = a_bundleDir.Name;

        BundleMap  bundleMap  = null;
        BundleName bundleName = new BundleName(dirName);

        if (currentBundleMap.TryGetValue(bundleName, out bundleMap) == false) // No Path Map Exists
        {
            bundleMap = new BundleMap();
            currentBundleMap.Add(bundleName, bundleMap);
        }

        for (int i = 0; i < (int)AssetType.COUNT; ++i)
        {
            AssetType type = (AssetType)i;
            string    extension;

            if (AssetTypeExtensionLookup.TryGetValue(type, out extension) == false)
            {
                continue;
            }

            PathMap pathMap;
            if (bundleMap.TryGetValue(type, out pathMap) == false)
            {
                Debug.LogError("Failed to get path map of type " + type + " from bundlemap!");
                continue;
            }

            PathMap globalPathMap = currentTypeMaps[i];

            RecursivelyMapBundleDir(a_bundleDir, pathMap, globalPathMap, extension);
        }

        Debug.Log("Map Directory Complete!");
    }
Exemple #14
0
        public static bool GeneratePList(string ProjectDirectory, bool bIsUE4Game, string GameName, string ProjectName, string InEngineDir, string AppDirectory)
        {
            // generate the Info.plist for future use
            string BuildDirectory        = ProjectDirectory + "/Build/IOS";
            bool   bSkipDefaultPNGs      = false;
            string IntermediateDirectory = (bIsUE4Game ? InEngineDir : ProjectDirectory) + "/Intermediate/IOS";
            string PListFile             = IntermediateDirectory + "/" + GameName + "-Info.plist";

            VersionUtilities.BuildDirectory = BuildDirectory;
            VersionUtilities.GameName       = GameName;

            // read the old file
            string OldPListData = File.Exists(PListFile) ? File.ReadAllText(PListFile) : "";

            // determine if there is a launch.xib
            string LaunchXib = InEngineDir + "/Build/IOS/Resources/Interface/LaunchScreen.xib";

            if (File.Exists(BuildDirectory + "/Resources/Interface/LaunchScreen.xib"))
            {
                LaunchXib = BuildDirectory + "/Resources/Interface/LaunchScreen.xib";
            }

            // get the settings from the ini file
            // plist replacements
            ConfigCacheIni Ini = new ConfigCacheIni(UnrealTargetPlatform.IOS, "Engine", UnrealBuildTool.GetUProjectPath());

            // orientations
            string SupportedOrientations = "";
            bool   bSupported            = true;

            Ini.GetBool("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "bSupportsPortraitOrientation", out bSupported);
            SupportedOrientations += bSupported ? "\t\t<string>UIInterfaceOrientationPortrait</string>\n" : "";
            Ini.GetBool("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "bSupportsUpsideDownOrientation", out bSupported);
            SupportedOrientations += bSupported ? "\t\t<string>UIInterfaceOrientationPortraitUpsideDown</string>\n" : "";
            Ini.GetBool("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "bSupportsLandscapeLeftOrientation", out bSupported);
            SupportedOrientations += bSupported ? "\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n" : "";
            Ini.GetBool("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "bSupportsLandscapeRightOrientation", out bSupported);
            SupportedOrientations += bSupported ? "\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n" : "";

            // bundle display name
            string BundleDisplayName;

            Ini.GetString("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "BundleDisplayName", out BundleDisplayName);

            // bundle identifier
            string BundleIdentifier;

            Ini.GetString("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "BundleIdentifier", out BundleIdentifier);

            // bundle name
            string BundleName;

            Ini.GetString("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "BundleName", out BundleName);

            // short version string
            string BundleShortVersion;

            Ini.GetString("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "VersionInfo", out BundleShortVersion);

            // required capabilities
            string RequiredCaps = "\t\t<string>armv7</string>\n";

            Ini.GetBool("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "bSupportsOpenGLES2", out bSupported);
            RequiredCaps += bSupported ? "\t\t<string>opengles-2</string>\n" : "";
            if (!bSupported)
            {
                Ini.GetBool("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "bSupportsMetal", out bSupported);
                RequiredCaps += bSupported ? "\t\t<string>metal</string>\n" : "";
            }

            // minimum iOS version
            string MinVersion;

            if (Ini.GetString("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "MinimumiOSVersion", out MinVersion))
            {
                switch (MinVersion)
                {
                case "IOS_61":
                    MinVersion = "6.1";
                    break;

                case "IOS_7":
                    MinVersion = "7.0";
                    break;

                case "IOS_8":
                    MinVersion = "8.0";
                    break;
                }
            }
            else
            {
                MinVersion = "6.1";
            }

            // Get Facebook Support details
            bool bEnableFacebookSupport = true;

            Ini.GetBool("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "bEnableFacebookSupport", out bEnableFacebookSupport);

            // Write the Facebook App ID if we need it.
            string FacebookAppID = "";

            Ini.GetString("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "FacebookAppID", out FacebookAppID);
            bEnableFacebookSupport = bEnableFacebookSupport && !string.IsNullOrWhiteSpace(FacebookAppID);

            // extra plist data
            string ExtraData = "";

            Ini.GetString("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "AdditionalPlistData", out ExtraData);

            // generate the plist file
            StringBuilder Text = new StringBuilder();

            Text.AppendLine("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
            Text.AppendLine("<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">");
            Text.AppendLine("<plist version=\"1.0\">");
            Text.AppendLine("<dict>");
            Text.AppendLine("\t<key>CFBundleURLTypes</key>");
            Text.AppendLine("\t<array>");
            Text.AppendLine("\t\t<dict>");
            Text.AppendLine("\t\t\t<key>CFBundleURLName</key>");
            Text.AppendLine("\t\t\t<string>com.Epic.Unreal</string>");
            Text.AppendLine("\t\t\t<key>CFBundleURLSchemes</key>");
            Text.AppendLine("\t\t\t<array>");
            Text.AppendLine(string.Format("\t\t\t\t<string>{0}</string>", bIsUE4Game ? "UE4Game" : GameName));
            if (bEnableFacebookSupport)
            {
                // This is needed for facebook login to redirect back to the app after completion.
                Text.AppendLine(string.Format("\t\t\t\t<string>fb{0}</string>", FacebookAppID));
            }
            Text.AppendLine("\t\t\t</array>");
            Text.AppendLine("\t\t</dict>");
            Text.AppendLine("\t</array>");
            Text.AppendLine("\t<key>CFBundleDevelopmentRegion</key>");
            Text.AppendLine("\t<string>English</string>");
            Text.AppendLine("\t<key>CFBundleDisplayName</key>");
            Text.AppendLine(string.Format("\t<string>{0}</string>", BundleDisplayName.Replace("[PROJECT_NAME]", ProjectName).Replace("_", "")));
            Text.AppendLine("\t<key>CFBundleExecutable</key>");
            Text.AppendLine(string.Format("\t<string>{0}</string>", bIsUE4Game ? "UE4Game" : GameName));
            Text.AppendLine("\t<key>CFBundleIdentifier</key>");
            Text.AppendLine(string.Format("\t<string>{0}</string>", BundleIdentifier.Replace("[PROJECT_NAME]", ProjectName).Replace("_", "")));
            Text.AppendLine("\t<key>CFBundleInfoDictionaryVersion</key>");
            Text.AppendLine("\t<string>6.0</string>");
            Text.AppendLine("\t<key>CFBundleName</key>");
            Text.AppendLine(string.Format("\t<string>{0}</string>", BundleName.Replace("[PROJECT_NAME]", ProjectName).Replace("_", "")));
            Text.AppendLine("\t<key>CFBundlePackageType</key>");
            Text.AppendLine("\t<string>APPL</string>");
            Text.AppendLine("\t<key>CFBundleSignature</key>");
            Text.AppendLine("\t<string>????</string>");
            Text.AppendLine("\t<key>CFBundleVersion</key>");
            Text.AppendLine(string.Format("\t<string>{0}</string>", VersionUtilities.UpdateBundleVersion(OldPListData)));
            Text.AppendLine("\t<key>CFBundleShortVersionString</key>");
            Text.AppendLine(string.Format("\t<string>{0}</string>", BundleShortVersion));
            Text.AppendLine("\t<key>LSRequiresIPhoneOS</key>");
            Text.AppendLine("\t<true/>");
            Text.AppendLine("\t<key>UIStatusBarHidden</key>");
            Text.AppendLine("\t<true/>");
            Text.AppendLine("\t<key>UIViewControllerBasedStatusBarAppearance</key>");
            Text.AppendLine("\t<false/>");
            Text.AppendLine("\t<key>UISupportedInterfaceOrientations</key>");
            Text.AppendLine("\t<array>");
            foreach (string Line in SupportedOrientations.Split("\r\n".ToCharArray()))
            {
                if (!string.IsNullOrWhiteSpace(Line))
                {
                    Text.AppendLine(Line);
                }
            }
            Text.AppendLine("\t</array>");
            Text.AppendLine("\t<key>UIRequiredDeviceCapabilities</key>");
            Text.AppendLine("\t<array>");
            foreach (string Line in RequiredCaps.Split("\r\n".ToCharArray()))
            {
                if (!string.IsNullOrWhiteSpace(Line))
                {
                    Text.AppendLine(Line);
                }
            }
            Text.AppendLine("\t</array>");
            Text.AppendLine("\t<key>CFBundleIcons</key>");
            Text.AppendLine("\t<dict>");
            Text.AppendLine("\t\t<key>CFBundlePrimaryIcon</key>");
            Text.AppendLine("\t\t<dict>");
            Text.AppendLine("\t\t\t<key>CFBundleIconFiles</key>");
            Text.AppendLine("\t\t\t<array>");
            Text.AppendLine("\t\t\t\t<string>Icon29.png</string>");
            Text.AppendLine("\t\t\t\t<string>[email protected]</string>");
            Text.AppendLine("\t\t\t\t<string>Icon40.png</string>");
            Text.AppendLine("\t\t\t\t<string>[email protected]</string>");
            Text.AppendLine("\t\t\t\t<string>Icon57.png</string>");
            Text.AppendLine("\t\t\t\t<string>[email protected]</string>");
            Text.AppendLine("\t\t\t\t<string>[email protected]</string>");
            Text.AppendLine("\t\t\t</array>");
            Text.AppendLine("\t\t\t<key>UIPrerenderedIcon</key>");
            Text.AppendLine("\t\t\t<true/>");
            Text.AppendLine("\t\t</dict>");
            Text.AppendLine("\t</dict>");
            Text.AppendLine("\t<key>CFBundleIcons~ipad</key>");
            Text.AppendLine("\t<dict>");
            Text.AppendLine("\t\t<key>CFBundlePrimaryIcon</key>");
            Text.AppendLine("\t\t<dict>");
            Text.AppendLine("\t\t\t<key>CFBundleIconFiles</key>");
            Text.AppendLine("\t\t\t<array>");
            Text.AppendLine("\t\t\t\t<string>Icon29.png</string>");
            Text.AppendLine("\t\t\t\t<string>[email protected]</string>");
            Text.AppendLine("\t\t\t\t<string>Icon40.png</string>");
            Text.AppendLine("\t\t\t\t<string>[email protected]</string>");
            Text.AppendLine("\t\t\t\t<string>Icon50.png</string>");
            Text.AppendLine("\t\t\t\t<string>[email protected]</string>");
            Text.AppendLine("\t\t\t\t<string>Icon72.png</string>");
            Text.AppendLine("\t\t\t\t<string>[email protected]</string>");
            Text.AppendLine("\t\t\t\t<string>Icon76.png</string>");
            Text.AppendLine("\t\t\t\t<string>[email protected]</string>");
            Text.AppendLine("\t\t\t</array>");
            Text.AppendLine("\t\t\t<key>UIPrerenderedIcon</key>");
            Text.AppendLine("\t\t\t<true/>");
            Text.AppendLine("\t\t</dict>");
            Text.AppendLine("\t</dict>");
            if (File.Exists(LaunchXib))
            {
                // TODO: compile the xib via remote tool
                Text.AppendLine("\t<key>UILaunchStoryboardName</key>");
                Text.AppendLine("\t<string>LaunchScreen</string>");
                bSkipDefaultPNGs = true;
            }
            else
            {
                // this is a temp way to inject the iphone 6 images without needing to upgrade everyone's plist
                // eventually we want to generate this based on what the user has set in the project settings
                string[] IPhoneConfigs =
                {
                    "Default-IPhone6",               "Landscape", "{375, 667}",
                    "Default-IPhone6",               "Portrait",  "{375, 667}",
                    "Default-IPhone6Plus-Landscape", "Landscape", "{414, 736}",
                    "Default-IPhone6Plus-Portrait",  "Portrait",  "{414, 736}",
                    "Default",                       "Landscape", "{320, 480}",
                    "Default",                       "Portrait",  "{320, 480}",
                    "Default-568h",                  "Landscape", "{320, 568}",
                    "Default-568h",                  "Portrait",  "{320, 568}",
                };

                Text.AppendLine("\t<key>UILaunchImages~iphone</key>");
                Text.AppendLine("\t<array>");
                for (int ConfigIndex = 0; ConfigIndex < IPhoneConfigs.Length; ConfigIndex += 3)
                {
                    Text.AppendLine("\t\t<dict>");
                    Text.AppendLine("\t\t\t<key>UILaunchImageMinimumOSVersion</key>");
                    Text.AppendLine("\t\t\t<string>8.0</string>");
                    Text.AppendLine("\t\t\t<key>UILaunchImageName</key>");
                    Text.AppendLine(string.Format("\t\t\t<string>{0}</string>", IPhoneConfigs[ConfigIndex + 0]));
                    Text.AppendLine("\t\t\t<key>UILaunchImageOrientation</key>");
                    Text.AppendLine(string.Format("\t\t\t<string>{0}</string>", IPhoneConfigs[ConfigIndex + 1]));
                    Text.AppendLine("\t\t\t<key>UILaunchImageSize</key>");
                    Text.AppendLine(string.Format("\t\t\t<string>{0}</string>", IPhoneConfigs[ConfigIndex + 2]));
                    Text.AppendLine("\t\t</dict>");
                }

                // close it out
                Text.AppendLine("\t</array>");
            }
            Text.AppendLine("\t<key>UILaunchImages~ipad</key>");
            Text.AppendLine("\t<array>");
            Text.AppendLine("\t\t<dict>");
            Text.AppendLine("\t\t\t<key>UILaunchImageMinimumOSVersion</key>");
            Text.AppendLine("\t\t\t<string>7.0</string>");
            Text.AppendLine("\t\t\t<key>UILaunchImageName</key>");
            Text.AppendLine("\t\t\t<string>Default-Landscape</string>");
            Text.AppendLine("\t\t\t<key>UILaunchImageOrientation</key>");
            Text.AppendLine("\t\t\t<string>Landscape</string>");
            Text.AppendLine("\t\t\t<key>UILaunchImageSize</key>");
            Text.AppendLine("\t\t\t<string>{768, 1024}</string>");
            Text.AppendLine("\t\t</dict>");
            Text.AppendLine("\t\t<dict>");
            Text.AppendLine("\t\t\t<key>UILaunchImageMinimumOSVersion</key>");
            Text.AppendLine("\t\t\t<string>7.0</string>");
            Text.AppendLine("\t\t\t<key>UILaunchImageName</key>");
            Text.AppendLine("\t\t\t<string>Default-Portrait</string>");
            Text.AppendLine("\t\t\t<key>UILaunchImageOrientation</key>");
            Text.AppendLine("\t\t\t<string>Portrait</string>");
            Text.AppendLine("\t\t\t<key>UILaunchImageSize</key>");
            Text.AppendLine("\t\t\t<string>{768, 1024}</string>");
            Text.AppendLine("\t\t</dict>");
            Text.AppendLine("\t</array>");
            Text.AppendLine("\t<key>CFBundleSupportedPlatforms</key>");
            Text.AppendLine("\t<array>");
            Text.AppendLine("\t\t<string>iPhoneOS</string>");
            Text.AppendLine("\t</array>");
            Text.AppendLine("\t<key>MinimumOSVersion</key>");
            Text.AppendLine(string.Format("\t<string>{0}</string>", MinVersion));
            if (bEnableFacebookSupport)
            {
                Text.AppendLine("\t<key>FacebookAppID</key>");
                Text.AppendLine(string.Format("\t<string>{0}</string>", FacebookAppID));
            }
            if (!string.IsNullOrEmpty(ExtraData))
            {
                ExtraData = ExtraData.Replace("\\n", "\n");
                foreach (string Line in ExtraData.Split("\r\n".ToCharArray()))
                {
                    if (!string.IsNullOrWhiteSpace(Line))
                    {
                        Text.AppendLine("\t" + Line);
                    }
                }
            }
            Text.AppendLine("</dict>");
            Text.AppendLine("</plist>");

            // write the file out
            if (!Directory.Exists(IntermediateDirectory))
            {
                Directory.CreateDirectory(IntermediateDirectory);
            }
            File.WriteAllText(PListFile, Text.ToString());
            if (BuildHostPlatform.Current.Platform == UnrealTargetPlatform.Mac)
            {
                if (!Directory.Exists(AppDirectory))
                {
                    Directory.CreateDirectory(AppDirectory);
                }
                File.WriteAllText(AppDirectory + "/Info.plist", Text.ToString());
            }

            return(bSkipDefaultPNGs);
        }
Exemple #15
0
    void OnGUI()
    {
        GUILayout.Space(20);
        ExportPath = EditorGUILayout.TextField("Export Path: ", ExportPath);
        GUILayout.Space(10);
        BundleName = EditorGUILayout.TextField("Custom Stage Name: ", BundleName);
        GUILayout.Space(10);
        IsForSpinMode = EditorGUILayout.Toggle("For spin mode?", IsForSpinMode);

        GUILayout.Space(70);
        if (GUILayout.Button("Export PC"))
        {
            if (BundleName == null || BundleName.Equals(string.Empty))
            {
                Debug.LogError("Please set the bundle name");
                EditorUtility.DisplayDialog("Custom Stage Name Empty", "The Custom Stage name must not be empty", "Ok");
            }
            else
            {
                Debug.Log($"Bundle Name set to {BundleName}");

                string extention = "stage";
                if (IsForSpinMode)
                {
                    extention = "spinstage";
                }
                string sanitizeBundleName = SanitizeString(BundleName);
                AssetImporter.GetAtPath(AssetsPath).SetAssetBundleNameAndVariant($"{sanitizeBundleName}.{extention}", "");
                string bundleExportPath = $"{Application.dataPath}/../{ExportPath}/{sanitizeBundleName}/";

                if (!Directory.Exists(bundleExportPath))
                {
                    Directory.CreateDirectory(bundleExportPath);
                }

                BuildPipeline.BuildAssetBundles(bundleExportPath, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows);
                EditorUtility.RevealInFinder($"{bundleExportPath}");
                Debug.Log($"Export complete, to directory {bundleExportPath}");
                this.Close();
            }
        }

        if (GUILayout.Button("Export Quest"))
        {
            if (BundleName == null || BundleName.Equals(string.Empty))
            {
                Debug.LogError("Please set the bundle name");
                EditorUtility.DisplayDialog("Custom Stage Name Empty", "The Custom Stage name must not be empty", "Ok");
            }
            else
            {
                Debug.Log($"Bundle Name set to {BundleName}");

                string extention = "stagequest";
                if (IsForSpinMode)
                {
                    extention = "spinstagequest";
                }
                string sanitizeBundleName = SanitizeString(BundleName);

                AssetImporter.GetAtPath(AssetsPath).SetAssetBundleNameAndVariant($"{sanitizeBundleName}.{extention}", "");
                string bundleExportPath = $"{Application.dataPath}/../{ExportPath}/{sanitizeBundleName}/";

                //Check if Android Build support is install before exporting so that people
                //do not get confused when it doesn't export when Android SDK isn't installed
                //Debug.Log(BuildPipeline.IsBuildTargetSupported(BuildTargetGroup.Android, BuildTarget.Android));
                if (BuildPipeline.IsBuildTargetSupported(BuildTargetGroup.Android, BuildTarget.Android) == true)
                {
                    Debug.Log("Andriod is Supported meaning Android SDK is INSTALLED!");
                    if (!Directory.Exists(bundleExportPath))
                    {
                        Directory.CreateDirectory(bundleExportPath);
                    }
                    try
                    {
                        BuildPipeline.BuildAssetBundles(bundleExportPath, BuildAssetBundleOptions.None, BuildTarget.Android);
                        EditorUtility.RevealInFinder($"{bundleExportPath}");
                        Debug.Log($"Export complete, to directory {bundleExportPath}");
                    }
                    catch (Exception E)
                    {
                        Debug.LogError("FAILED TO EXPORT! Caused by: " + E);
                    }
                }
                else
                {
                    Debug.LogError("ANDROID SDK NOT INSTALLED!");
                    EditorUtility.DisplayDialog("EXPORT FAILED!", "Exporting to Quest failed because the Android SDK is not installed! Install it from Unity Hub and restart the editor to continue", "Ok");
                }


                this.Close();
            }
        }

        if (GUILayout.Button("Cancel"))
        {
            this.Close();
        }
        this.Repaint();
    }
Exemple #16
0
    void OnGUI()
    {
        GUILayout.Space(20);
        ExportPath = EditorGUILayout.TextField("Export Path: ", ExportPath);
        GUILayout.Space(10);
        BundleName = EditorGUILayout.TextField("Custom Stage Name: ", BundleName);
        GUILayout.Space(10);
        IsForSpinMode = EditorGUILayout.Toggle("For spin mode?", IsForSpinMode);

        GUILayout.Space(70);
        if (GUILayout.Button("Export PC"))
        {
            if (BundleName == null || BundleName.Equals(string.Empty))
            {
                Debug.LogError("Please set the bundle name");
            }
            else
            {
                Debug.Log($"Bundle Name set to {BundleName}");

                string extention = "stage";
                if (IsForSpinMode)
                {
                    extention = "spinstage";
                }
                string sanitizeBundleName = SanitizeString(BundleName);
                AssetImporter.GetAtPath(AssetsPath).SetAssetBundleNameAndVariant($"{sanitizeBundleName}.{extention}", "");
                string bundleExportPath = $"{Application.dataPath}/../{ExportPath}/{sanitizeBundleName}/";

                if (!Directory.Exists(bundleExportPath))
                {
                    Directory.CreateDirectory(bundleExportPath);
                }

                BuildPipeline.BuildAssetBundles(bundleExportPath, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows);
                EditorUtility.RevealInFinder($"{bundleExportPath}");
                Debug.Log($"Export complete, to directory {bundleExportPath}");
                this.Close();
            }
        }

        if (GUILayout.Button("Export Quest"))
        {
            if (BundleName == null || BundleName.Equals(string.Empty))
            {
                Debug.LogError("Please set the bundle name");
            }
            else
            {
                Debug.Log($"Bundle Name set to {BundleName}");

                string extention = "stagequest";
                if (IsForSpinMode)
                {
                    extention = "spinstagequest";
                }
                string sanitizeBundleName = SanitizeString(BundleName);
                AssetImporter.GetAtPath(AssetsPath).SetAssetBundleNameAndVariant($"{sanitizeBundleName}.{extention}", "");
                string bundleExportPath = $"{Application.dataPath}/../{ExportPath}/{sanitizeBundleName}/";

                if (!Directory.Exists(bundleExportPath))
                {
                    Directory.CreateDirectory(bundleExportPath);
                }

                BuildPipeline.BuildAssetBundles(bundleExportPath, BuildAssetBundleOptions.None, BuildTarget.Android);
                EditorUtility.RevealInFinder($"{bundleExportPath}");
                Debug.Log($"Export complete, to directory {bundleExportPath}");
                this.Close();
            }
        }

        if (GUILayout.Button("Cancel"))
        {
            this.Close();
        }
        this.Repaint();
    }
Exemple #17
0
 static string GetAssetsPathFromBundleName(BundleName _bundleName)
 {
     return(System.IO.Path.Combine(Application.streamingAssetsPath, Enum.GetName(typeof(BundleName), _bundleName).ToLower()));
 }
        /// <summary>
        /// Returns true if BankingAccountDetail instances are equal
        /// </summary>
        /// <param name="other">Instance of BankingAccountDetail to be compared</param>
        /// <returns>Boolean</returns>
        public bool Equals(BankingAccountDetail other)
        {
            if (ReferenceEquals(null, other))
            {
                return(false);
            }
            if (ReferenceEquals(this, other))
            {
                return(true);
            }

            return
                ((
                     Bsb == other.Bsb ||
                     Bsb != null &&
                     Bsb.Equals(other.Bsb)
                     ) &&
                 (
                     AccountNumber == other.AccountNumber ||
                     AccountNumber != null &&
                     AccountNumber.Equals(other.AccountNumber)
                 ) &&
                 (
                     BundleName == other.BundleName ||
                     BundleName != null &&
                     BundleName.Equals(other.BundleName)
                 ) &&
                 (
                     SpecificAccountUType == other.SpecificAccountUType ||
                     SpecificAccountUType != null &&
                     SpecificAccountUType.Equals(other.SpecificAccountUType)
                 ) &&
                 (
                     TermDeposit == other.TermDeposit ||
                     TermDeposit != null &&
                     TermDeposit.Equals(other.TermDeposit)
                 ) &&
                 (
                     CreditCard == other.CreditCard ||
                     CreditCard != null &&
                     CreditCard.Equals(other.CreditCard)
                 ) &&
                 (
                     Loan == other.Loan ||
                     Loan != null &&
                     Loan.Equals(other.Loan)
                 ) &&
                 (
                     Features == other.Features ||
                     Features != null &&
                     Features.SequenceEqual(other.Features)
                 ) &&
                 (
                     Fees == other.Fees ||
                     Fees != null &&
                     Fees.SequenceEqual(other.Fees)
                 ) &&
                 (
                     DepositRates == other.DepositRates ||
                     DepositRates != null &&
                     DepositRates.SequenceEqual(other.DepositRates)
                 ) &&
                 (
                     LendingRates == other.LendingRates ||
                     LendingRates != null &&
                     LendingRates.SequenceEqual(other.LendingRates)
                 ) &&
                 (
                     Address == other.Address ||
                     Address != null &&
                     Address.Equals(other.Address)
                 ));
        }
Exemple #19
0
        public static bool GenerateTVOSPList(string ProjectDirectory, bool bIsUE4Game, string GameName, string ProjectName, string InEngineDir, string AppDirectory)
        {
            // @todo tvos: THIS!


            // generate the Info.plist for future use
            string BuildDirectory        = ProjectDirectory + "/Build/TVOS";
            bool   bSkipDefaultPNGs      = false;
            string IntermediateDirectory = (bIsUE4Game ? InEngineDir : ProjectDirectory) + "/Intermediate/TVOS";
            string PListFile             = IntermediateDirectory + "/" + GameName + "-Info.plist";

            // @todo tvos: This is really nasty - both IOS and TVOS are setting static vars
            VersionUtilities.BuildDirectory = BuildDirectory;
            VersionUtilities.GameName       = GameName;

            // read the old file
            string OldPListData = File.Exists(PListFile) ? File.ReadAllText(PListFile) : "";

            // determine if there is a launch.xib
            string LaunchXib = InEngineDir + "/Build/IOS/Resources/Interface/LaunchScreen.xib";

            if (File.Exists(BuildDirectory + "/Resources/Interface/LaunchScreen.xib"))
            {
                LaunchXib = BuildDirectory + "/Resources/Interface/LaunchScreen.xib";
            }

            // get the settings from the ini file
            // plist replacements
            // @todo tvos: Are we going to make TVOS specific .ini files?
            ConfigCacheIni Ini = ConfigCacheIni.CreateConfigCacheIni(UnrealTargetPlatform.IOS, "Engine", bIsUE4Game? null : new DirectoryReference(ProjectDirectory));

            // bundle display name
            string BundleDisplayName;

            Ini.GetString("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "BundleDisplayName", out BundleDisplayName);

            // bundle identifier
            string BundleIdentifier;

            Ini.GetString("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "BundleIdentifier", out BundleIdentifier);

            // bundle name
            string BundleName;

            Ini.GetString("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "BundleName", out BundleName);

            // short version string
            string BundleShortVersion;

            Ini.GetString("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "VersionInfo", out BundleShortVersion);

            // required capabilities
            string RequiredCaps = "\t\t<string>arm64</string>\n";

            // minimum iOS version
            string MinVersion;

            if (Ini.GetString("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "MinimumTVOSVersion", out MinVersion))
            {
                switch (MinVersion)
                {
                case "TVOS_9":
                    MinVersion = "9.0";
                    break;
                }
            }
            else
            {
                MinVersion = "9.0";
            }

            // extra plist data
            string ExtraData = "";

            Ini.GetString("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "AdditionalPlistData", out ExtraData);

            // generate the plist file
            StringBuilder Text = new StringBuilder();

            Text.AppendLine("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
            Text.AppendLine("<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">");
            Text.AppendLine("<plist version=\"1.0\">");
            Text.AppendLine("<dict>");
            Text.AppendLine("\t<key>CFBundleDevelopmentRegion</key>");
            Text.AppendLine("\t<string>en</string>");
            Text.AppendLine("\t<key>CFBundleDisplayName</key>");
            Text.AppendLine(string.Format("\t<string>{0}</string>", BundleDisplayName.Replace("[PROJECT_NAME]", ProjectName).Replace("_", "")));
            Text.AppendLine("\t<key>CFBundleExecutable</key>");
            Text.AppendLine(string.Format("\t<string>{0}</string>", bIsUE4Game ? "UE4Game" : GameName.Replace("_", "")));
            Text.AppendLine("\t<key>CFBundleIdentifier</key>");
            Text.AppendLine(string.Format("\t<string>{0}</string>", BundleIdentifier.Replace("[PROJECT_NAME]", ProjectName).Replace("_", "")));
            Text.AppendLine("\t<key>CFBundleInfoDictionaryVersion</key>");
            Text.AppendLine("\t<string>6.0</string>");
            Text.AppendLine("\t<key>CFBundleName</key>");
            Text.AppendLine(string.Format("\t<string>{0}</string>", BundleName.Replace("[PROJECT_NAME]", ProjectName).Replace("_", "")));
            Text.AppendLine("\t<key>CFBundlePackageType</key>");
            Text.AppendLine("\t<string>APPL</string>");
            Text.AppendLine("\t<key>CFBundleSignature</key>");
            Text.AppendLine("\t<string>????</string>");
            Text.AppendLine("\t<key>CFBundleVersion</key>");
            Text.AppendLine(string.Format("\t<string>{0}</string>", VersionUtilities.UpdateBundleVersion(OldPListData)));
            Text.AppendLine("\t<key>CFBundleShortVersionString</key>");
            Text.AppendLine(string.Format("\t<string>{0}</string>", BundleShortVersion));
            Text.AppendLine("\t<key>LSRequiresIPhoneOS</key>");
            Text.AppendLine("\t<true/>");
            Text.AppendLine("\t<key>UIRequiredDeviceCapabilities</key>");
            Text.AppendLine("\t<array>");
            foreach (string Line in RequiredCaps.Split("\r\n".ToCharArray()))
            {
                if (!string.IsNullOrWhiteSpace(Line))
                {
                    Text.AppendLine(Line);
                }
            }
            Text.AppendLine("\t</array>");

/*			Text.AppendLine("\t<key>CFBundleIcons</key>");
 *                      Text.AppendLine("\t<dict>");
 *                      Text.AppendLine("\t\t<key>CFBundlePrimaryIcon</key>");
 *                      Text.AppendLine("\t\t<dict>");
 *                      Text.AppendLine("\t\t\t<key>CFBundleIconFiles</key>");
 *                      Text.AppendLine("\t\t\t<array>");
 *                      Text.AppendLine("\t\t\t\t<string>Icon29.png</string>");
 *                      Text.AppendLine("\t\t\t\t<string>[email protected]</string>");
 *                      Text.AppendLine("\t\t\t\t<string>Icon40.png</string>");
 *                      Text.AppendLine("\t\t\t\t<string>[email protected]</string>");
 *                      Text.AppendLine("\t\t\t\t<string>Icon57.png</string>");
 *                      Text.AppendLine("\t\t\t\t<string>[email protected]</string>");
 *                      Text.AppendLine("\t\t\t\t<string>[email protected]</string>");
 *                      Text.AppendLine("\t\t\t</array>");
 *                      Text.AppendLine("\t\t\t<key>UIPrerenderedIcon</key>");
 *                      Text.AppendLine("\t\t\t<true/>");
 *                      Text.AppendLine("\t\t</dict>");
 *                      Text.AppendLine("\t</dict>");
 *                      Text.AppendLine("\t<key>CFBundleIcons~ipad</key>");
 *                      Text.AppendLine("\t<dict>");
 *                      Text.AppendLine("\t\t<key>CFBundlePrimaryIcon</key>");
 *                      Text.AppendLine("\t\t<dict>");
 *                      Text.AppendLine("\t\t\t<key>CFBundleIconFiles</key>");
 *                      Text.AppendLine("\t\t\t<array>");
 *                      Text.AppendLine("\t\t\t\t<string>Icon29.png</string>");
 *                      Text.AppendLine("\t\t\t\t<string>[email protected]</string>");
 *                      Text.AppendLine("\t\t\t\t<string>Icon40.png</string>");
 *                      Text.AppendLine("\t\t\t\t<string>[email protected]</string>");
 *                      Text.AppendLine("\t\t\t\t<string>Icon50.png</string>");
 *                      Text.AppendLine("\t\t\t\t<string>[email protected]</string>");
 *                      Text.AppendLine("\t\t\t\t<string>Icon72.png</string>");
 *                      Text.AppendLine("\t\t\t\t<string>[email protected]</string>");
 *                      Text.AppendLine("\t\t\t\t<string>Icon76.png</string>");
 *                      Text.AppendLine("\t\t\t\t<string>[email protected]</string>");
 *                      Text.AppendLine("\t\t\t</array>");
 *                      Text.AppendLine("\t\t\t<key>UIPrerenderedIcon</key>");
 *                      Text.AppendLine("\t\t\t<true/>");
 *                      Text.AppendLine("\t\t</dict>");
 *                      Text.AppendLine("\t</dict>");
 *                      if (File.Exists(LaunchXib))
 *                      {
 *                              // TODO: compile the xib via remote tool
 *                              Text.AppendLine("\t<key>UILaunchStoryboardName</key>");
 *                              Text.AppendLine("\t<string>LaunchScreen</string>");
 *                              bSkipDefaultPNGs = true;
 *                      }
 *                      else
 *                      {
 *                              // this is a temp way to inject the iphone 6 images without needing to upgrade everyone's plist
 *                              // eventually we want to generate this based on what the user has set in the project settings
 *                              string[] IPhoneConfigs =
 *                                      {
 *                                              "Default-IPhone6", "Landscape", "{375, 667}",
 *                                              "Default-IPhone6", "Portrait", "{375, 667}",
 *                                              "Default-IPhone6Plus-Landscape", "Landscape", "{414, 736}",
 *                                              "Default-IPhone6Plus-Portrait", "Portrait", "{414, 736}",
 *                                              "Default", "Landscape", "{320, 480}",
 *                                              "Default", "Portrait", "{320, 480}",
 *                                              "Default-568h", "Landscape", "{320, 568}",
 *                                              "Default-568h", "Portrait", "{320, 568}",
 *                                      };
 *
 *                              Text.AppendLine("\t<key>UILaunchImages~iphone</key>");
 *                              Text.AppendLine("\t<array>");
 *                              for (int ConfigIndex = 0; ConfigIndex < IPhoneConfigs.Length; ConfigIndex += 3)
 *                              {
 *                                      Text.AppendLine("\t\t<dict>");
 *                                      Text.AppendLine("\t\t\t<key>UILaunchImageMinimumOSVersion</key>");
 *                                      Text.AppendLine("\t\t\t<string>8.0</string>");
 *                                      Text.AppendLine("\t\t\t<key>UILaunchImageName</key>");
 *                                      Text.AppendLine(string.Format("\t\t\t<string>{0}</string>", IPhoneConfigs[ConfigIndex + 0]));
 *                                      Text.AppendLine("\t\t\t<key>UILaunchImageOrientation</key>");
 *                                      Text.AppendLine(string.Format("\t\t\t<string>{0}</string>", IPhoneConfigs[ConfigIndex + 1]));
 *                                      Text.AppendLine("\t\t\t<key>UILaunchImageSize</key>");
 *                                      Text.AppendLine(string.Format("\t\t\t<string>{0}</string>", IPhoneConfigs[ConfigIndex + 2]));
 *                                      Text.AppendLine("\t\t</dict>");
 *                              }
 *
 *                              // close it out
 *                              Text.AppendLine("\t</array>");
 *                      }
 *                      Text.AppendLine("\t<key>UILaunchImages~ipad</key>");
 *                      Text.AppendLine("\t<array>");
 *                      Text.AppendLine("\t\t<dict>");
 *                      Text.AppendLine("\t\t\t<key>UILaunchImageMinimumOSVersion</key>");
 *                      Text.AppendLine("\t\t\t<string>7.0</string>");
 *                      Text.AppendLine("\t\t\t<key>UILaunchImageName</key>");
 *                      Text.AppendLine("\t\t\t<string>Default-Landscape</string>");
 *                      Text.AppendLine("\t\t\t<key>UILaunchImageOrientation</key>");
 *                      Text.AppendLine("\t\t\t<string>Landscape</string>");
 *                      Text.AppendLine("\t\t\t<key>UILaunchImageSize</key>");
 *                      Text.AppendLine("\t\t\t<string>{768, 1024}</string>");
 *                      Text.AppendLine("\t\t</dict>");
 *                      Text.AppendLine("\t\t<dict>");
 *                      Text.AppendLine("\t\t\t<key>UILaunchImageMinimumOSVersion</key>");
 *                      Text.AppendLine("\t\t\t<string>7.0</string>");
 *                      Text.AppendLine("\t\t\t<key>UILaunchImageName</key>");
 *                      Text.AppendLine("\t\t\t<string>Default-Portrait</string>");
 *                      Text.AppendLine("\t\t\t<key>UILaunchImageOrientation</key>");
 *                      Text.AppendLine("\t\t\t<string>Portrait</string>");
 *                      Text.AppendLine("\t\t\t<key>UILaunchImageSize</key>");
 *                      Text.AppendLine("\t\t\t<string>{768, 1024}</string>");
 *                      Text.AppendLine("\t\t</dict>");
 *                      Text.AppendLine("\t</array>”);
 *                      Text.AppendLine("\t<key>CFBundleSupportedPlatforms</key>");
 *                      Text.AppendLine("\t<array>");
 *                      Text.AppendLine("\t\t<string>iPhoneOS</string>");
 *                      Text.AppendLine("\t</array>");
 *                      Text.AppendLine("\t<key>MinimumOSVersion</key>");
 *                      Text.AppendLine(string.Format("\t<string>{0}</string>", MinVersion));
 *                      if (!string.IsNullOrEmpty(ExtraData))
 *                      {
 *                              ExtraData = ExtraData.Replace("\\n", "\n");
 *                              foreach (string Line in ExtraData.Split("\r\n".ToCharArray()))
 *                              {
 *                                      if (!string.IsNullOrWhiteSpace(Line))
 *                                      {
 *                                              Text.AppendLine("\t" + Line);
 *                                      }
 *                              }
 *                      }*/
            Text.AppendLine("</dict>");
            Text.AppendLine("</plist>");

            // write the file out
            if (!Directory.Exists(IntermediateDirectory))
            {
                Directory.CreateDirectory(IntermediateDirectory);
            }
            File.WriteAllText(PListFile, Text.ToString());
            if (BuildHostPlatform.Current.Platform == UnrealTargetPlatform.Mac)
            {
                if (!Directory.Exists(AppDirectory))
                {
                    Directory.CreateDirectory(AppDirectory);
                }
                File.WriteAllText(AppDirectory + "/Info.plist", Text.ToString());
            }

            return(bSkipDefaultPNGs);
        }