Example #1
0
        public static void DisableLibstAtPath(string path)
        {
            List <string> files = SA_AssetDatabase.FindAssetsWithExtentions(path);

            for (int i = 0; i < files.Count; i++)
            {
                var filePath = files[i];

                //Make sure this is not a folder
                if (SA_AssetDatabase.IsValidFolder(filePath))
                {
                    continue;
                }

                //Already disabled
                if (SA_AssetDatabase.GetExtension(filePath).Equals(DISABLED_LIB_EXTENSION))
                {
                    continue;
                }

                string newFilePath;
                newFilePath = filePath + DISABLED_LIB_EXTENSION;


                float  progress = (float)(i + 1) / (float)files.Count;
                string fileName = SA_AssetDatabase.GetFileName(newFilePath);
                EditorUtility.DisplayProgressBar("Stan's Assets.", "Packing: " + fileName, progress);
                SA_AssetDatabase.MoveAsset(filePath, newFilePath);
                SA_AssetDatabase.ImportAsset(newFilePath);
            }

            EditorUtility.ClearProgressBar();
        }
Example #2
0
        public static void EnableLibsAtPath(string path)
        {
            List <string> files = SA_AssetDatabase.FindAssetsWithExtentions(path);

            for (int i = 0; i < files.Count; i++)
            {
                var file = files[i];
                //Make sure this is not a folder
                if (SA_AssetDatabase.IsValidFolder(file))
                {
                    continue;
                }


                if (SA_AssetDatabase.GetExtension(file).Equals(DISABLED_LIB_EXTENSION))
                {
                    string newFileName = file.Replace(DISABLED_LIB_EXTENSION, string.Empty);

                    string fileName = SA_AssetDatabase.GetFileName(newFileName);

                    float progress = (float)(i + 1) / (float)files.Count;
                    EditorUtility.DisplayProgressBar("Stan's Assets.", "Installing: " + fileName, progress);


                    SA_AssetDatabase.MoveAsset(file, newFileName);
                    SA_AssetDatabase.ImportAsset(newFileName);
                }
            }

            EditorUtility.ClearProgressBar();
        }
Example #3
0
        private static void ResolveInternalLibs(AN_AndroidBuildRequirements requirements)
        {
            List <string> libsToAdd    = new List <string>();
            List <string> libsToRemove = new List <string>();


            List <string> internalLibs = SA_AssetDatabase.FindAssetsWithExtentions(AN_Settings.ANDROID_INTERNAL_FOLDER);

            foreach (var lib in internalLibs)
            {
                string libName = SA_AssetDatabase.GetFileName(lib);
                if (!requirements.HasInternalLib(libName))
                {
                    libsToRemove.Add(libName);
                }
            }

            foreach (var lib in requirements.InternalLibs)
            {
                string libPath = AN_Settings.ANDROID_INTERNAL_FOLDER + lib;
                if (!SA_AssetDatabase.IsFileExists(libPath))
                {
                    libsToAdd.Add(lib);
                }
            }

            SA_PluginsEditor.UninstallLibs(AN_Settings.ANDROID_INTERNAL_FOLDER, libsToRemove);
            SA_PluginsEditor.InstallLibs(AN_Settings.ANDROID_INTERNAL_FOLDER_DISABLED, AN_Settings.ANDROID_INTERNAL_FOLDER, libsToAdd);
        }
        private void ValidateAssets <T>(List <T> assets, string requiredLocation, string requiredExtension) where T : Object
        {
            //Let's make sure we aren't missing assets under requiredLocation
            var assetPaths = SA_AssetDatabase.FindAssetsWithExtentions(requiredLocation, requiredExtension);

            foreach (var assetPath in assetPaths)
            {
                var assetExtension = SA_PathUtil.GetExtension(assetPath);
                if (assetExtension.Equals(requiredExtension))
                {
                    var file = (T)AssetDatabase.LoadAssetAtPath(assetPath, typeof(T));
                    if (!assets.Contains(file))
                    {
                        assets.Add(file);
                        return;
                    }
                }
            }

            for (var i = 0; i < assets.Count; i++)
            {
                var asset = assets[i];
                if (asset == null)
                {
                    //We do not allow null element's unless this is a last element
                    if (i != assets.Count - 1)
                    {
                        assets.Remove(asset);
                        return;
                    }
                    continue;
                }

                if (!HasValidExtension(asset, requiredExtension))
                {
                    EditorGUILayout.HelpBox(asset.name + " need to be in *" + requiredExtension + " format.", MessageType.Error);
                    continue;
                }

                if (!SA_AssetDatabase.IsAssetInsideFolder(asset, requiredLocation))
                {
                    EditorGUILayout.HelpBox(asset.name + " has to be inside: \n" + requiredLocation, MessageType.Error);
                    using (new SA_GuiBeginHorizontal()) {
                        GUILayout.FlexibleSpace();
                        var move = GUILayout.Button("Move", EditorStyles.miniButton);
                        if (move)
                        {
                            var currentPath = AssetDatabase.GetAssetPath(asset);
                            var assetName   = SA_AssetDatabase.GetFileName(currentPath);
                            var newPath     = requiredLocation + assetName;
                            SA_AssetDatabase.MoveAsset(currentPath, newPath);
                        }
                    }
                }
            }
        }
Example #5
0
        private static void ResolveBinaryLibs(AN_AndroidBuildRequirements requirements)
        {
            if (AN_Settings.Instance.UseUnityJarResolver)
            {
                AN_Dependencies.Resolve(requirements.BinaryDependencies);
                SA_AssetDatabase.DeleteAsset(AN_Settings.ANDROID_MAVEN_FOLDER);
            }
            else
            {
                AN_Dependencies.Resolve(new List <AN_BinaryDependency>());


                List <string> repositorysToAdd    = new List <string>();
                List <string> repositorysToRemove = new List <string>();

                List <string> mavenLibs = SA_AssetDatabase.FindAssetsWithExtentions(AN_Settings.ANDROID_MAVEN_FOLDER);
                foreach (var lib in mavenLibs)
                {
                    //we are only interested in folder, we also assume all folders are located inside a root folder
                    if (!SA_AssetDatabase.IsValidFolder(lib))
                    {
                        continue;
                    }

                    string libName = SA_AssetDatabase.GetFileName(lib);
                    if (!requirements.HasBinaryDependency(libName))
                    {
                        repositorysToRemove.Add(libName);
                    }
                }

                foreach (var dep in requirements.BinaryDependencies)
                {
                    string libPath = AN_Settings.ANDROID_MAVEN_FOLDER + dep.GetLocalRepositoryName();
                    if (!SA_AssetDatabase.IsDirectoryExists(libPath))
                    {
                        string localRepositoryName = dep.GetLocalRepositoryName();
                        if (!repositorysToAdd.Contains(localRepositoryName))
                        {
                            repositorysToAdd.Add(localRepositoryName);
                        }
                    }
                }

                SA_PluginsEditor.UninstallLibs(AN_Settings.ANDROID_MAVEN_FOLDER, repositorysToRemove);

                foreach (var lib in repositorysToAdd)
                {
                    string source      = AN_Settings.ANDROID_MAVEN_FOLDER_DISABLED + lib;
                    string destination = AN_Settings.ANDROID_MAVEN_FOLDER + lib;
                    SA_PluginsEditor.InstallLibFolder(source, destination);
                }
            }
        }