Beispiel #1
0
    private void DrawFoldout(AssetDirectory directory)
    {
        if (directory.FoldState = EditorGUILayout.Foldout(directory.FoldState, directory.Name))
        {
            EditorGUI.indentLevel++;
            string textSpace = OutoFillSpace();
            foreach (AssetData child in directory.childs)
            {
                if (!child.Visible)
                {
                    continue;
                }

                _showCount++;

                if (child.IsDirectory())
                {
                    DrawFoldout(child as AssetDirectory);
                }
                else
                {
                    if (GUILayout.Button(textSpace + child.Name, GUI.skin.label))
                    {
                        EventHandler.Instance.HandleInvoke(EventCode.ShowDependencies, child);
                    }
                }
            }
            EditorGUI.indentLevel--;
        }
    }
Beispiel #2
0
 // Token: 0x0600107B RID: 4219 RVA: 0x0006C9D0 File Offset: 0x0006ADD0
 public static void browse(AssetDirectory directory)
 {
     AssetBrowserWindow.currentDirectory = directory;
     if (AssetBrowserWindow.browsed != null)
     {
         AssetBrowserWindow.browsed(AssetBrowserWindow.currentDirectory);
     }
 }
 // Token: 0x0600106A RID: 4202 RVA: 0x0006BF30 File Offset: 0x0006A330
 public static void handleContextDropdownOpened(Sleek2HoverDropdown dropdown, AssetDirectory directory)
 {
     AssetBrowserContextCreateAssetHandler.directory = directory;
     AssetBrowserContextCreateAssetHandler.createButtons(dropdown, ModuleHook.coreTypes);
     foreach (Module module in ModuleHook.modules)
     {
         AssetBrowserContextCreateAssetHandler.createButtons(dropdown, module.types);
     }
 }
    private void BuildDirectory(AssetDirectory directory)
    {
        string[] folders = AssetDatabase.GetSubFolders(directory.Path);
        foreach (string folder in folders)
        {
            AssetDirectory subDirectory = new AssetDirectory(folder.Substring(folder.LastIndexOf("/") + 1));
            directory.AddChild(subDirectory);
            BuildDirectory(subDirectory);
        }

        BuildSubFiles(directory);
    }
        // Token: 0x0600106F RID: 4207 RVA: 0x0006C07C File Offset: 0x0006A47C
        public AssetBrowserDirectoryButton(AssetDirectory newDirectory)
        {
            this.directory = newDirectory;
            Sleek2Label sleek2Label = new Sleek2Label();

            sleek2Label.transform.reset();
            sleek2Label.textComponent.text  = "/" + this.directory.name;
            sleek2Label.textComponent.color = Sleek2Config.darkTextColor;
            this.addElement(sleek2Label);
            this.context         = base.gameObject.AddComponent <ContextDropdownButton>();
            this.context.element = this;
            this.context.opened += this.handleContextOpened;
        }
Beispiel #6
0
        public static void WriteAssetDirectory()
        {
            AssetDirectory directory = new AssetDirectory();

            directory.LevelFiles = GetLevelList();
            string json = JsonConvert.SerializeObject(directory);

            using (FileStream fs = File.Open(FilenameToLevelPath(AssetDirectory.ThisFile), FileMode.Create))
            {
                StreamWriter sw = new StreamWriter(fs);
                sw.Write(json);
                sw.Close();
            }
        }
Beispiel #7
0
        public static string AssetPathToSystemPath(string assetPath)
        {
            const string AssetDirectory = "Assets";

            var rootDir = Path.GetDirectoryName(Application.dataPath);

            if (!assetPath.ToLowerInvariant().StartsWith(AssetDirectory.ToLowerInvariant()))
            {
                assetPath = CombinePath(AssetDirectory, assetPath);
            }
            var finalPath = CombinePath(rootDir, assetPath);

#if UNITY_EDITOR_WIN
            finalPath = finalPath.Replace('/', '\\');
#endif
            return(finalPath);
        }
Beispiel #8
0
        public static bool Initialize(Window parent)
        {
            LevelPath = AttemptToFindLevelDirectory();

            if (null == LevelPath)
            {
                FileChooserDialog fcd = new FileChooserDialog("Provide path to TD directory", null, FileChooserAction.SelectFolder);
                fcd.AddButton(Stock.Cancel, ResponseType.Cancel);
                fcd.AddButton(Stock.Open, ResponseType.Ok);
                fcd.DefaultResponse = ResponseType.Ok;
                fcd.SelectMultiple  = false;

                ResponseType response = (ResponseType)fcd.Run();
                if (response == ResponseType.Ok)
                {
                    LevelPath = fcd.Filename;
                }
                else
                {
                    LevelPath = null;
                }
                fcd.Destroy();
            }

            if (LevelPath.EndsWith("Levels"))
            {
                AssetLocations = ReadObjectFromFile <AssetDirectory>(FilenameToLevelPath(AssetDirectory.ThisFile));
                if (null == AssetLocations)
                {
                    AssetLocations            = new AssetDirectory();
                    AssetLocations.LevelFiles = GetLevelList();
                    WriteAssetDirectory();
                }
                SolutionPath = Directory.GetParent(LevelPath).Parent.Parent.Parent.FullName + Path.DirectorySeparatorChar + "Solutions";
                if (!Directory.Exists(SolutionPath))
                {
                    Directory.CreateDirectory(SolutionPath);
                }
                return(true);
            }
            else
            {
                return(false);
            }
        }
Beispiel #9
0
 // Token: 0x0600107F RID: 4223 RVA: 0x0006CA44 File Offset: 0x0006AE44
 protected void handleBrowsed(AssetDirectory directory)
 {
     this.pathPanel.clearElements();
     this.itemsPanel.clearElements();
     this.itemsPanel.transform.offsetMin = new Vector2(0f, 0f);
     this.itemsPanel.transform.offsetMax = new Vector2(0f, 0f);
     if (directory == null)
     {
         return;
     }
     for (int i = 0; i < directory.assets.Count; i++)
     {
         AssetBrowserAssetButton assetBrowserAssetButton = new AssetBrowserAssetButton(directory.assets[i]);
         assetBrowserAssetButton.clicked += this.handleAssetButtonClicked;
         this.itemsPanel.addElement(assetBrowserAssetButton);
     }
     for (int j = 0; j < directory.directories.Count; j++)
     {
         AssetBrowserDirectoryButton assetBrowserDirectoryButton = new AssetBrowserDirectoryButton(directory.directories[j]);
         assetBrowserDirectoryButton.clicked += this.handleDirectoryButtonClicked;
         this.itemsPanel.addElement(assetBrowserDirectoryButton);
     }
     do
     {
         AssetBrowserDirectoryButton assetBrowserDirectoryButton2 = new AssetBrowserDirectoryButton(directory);
         assetBrowserDirectoryButton2.transform.anchorMin = new Vector2(0f, 0f);
         assetBrowserDirectoryButton2.transform.anchorMax = new Vector2(0f, 1f);
         assetBrowserDirectoryButton2.transform.pivot     = new Vector2(0f, 1f);
         assetBrowserDirectoryButton2.transform.sizeDelta = new Vector2(150f, 0f);
         assetBrowserDirectoryButton2.clicked            += this.handleDirectoryButtonClicked;
         this.pathPanel.addElement(assetBrowserDirectoryButton2, 0);
         if (directory.parent != null)
         {
             Sleek2Label sleek2Label = new Sleek2Label();
             sleek2Label.transform.anchorMin = new Vector2(0f, 0f);
             sleek2Label.transform.anchorMax = new Vector2(0f, 1f);
             sleek2Label.transform.pivot     = new Vector2(0f, 1f);
             sleek2Label.transform.sizeDelta = new Vector2(30f, 0f);
             sleek2Label.textComponent.text  = ">";
             this.pathPanel.addElement(sleek2Label, 0);
         }
     }while ((directory = directory.parent) != null);
 }
Beispiel #10
0
        public void AddAssetDirectory <T>(AssetDirectory <T> directory) where T : ScriptObject
        {
            BeforeLoad(directory.Clear);

            m_catalogLoadActions.Add((onComplete) =>
            {
                var cats = ScriptObjectDirectory.Instance.GetAllCatalogs <T>();

                if (cats != null)
                {
                    foreach (var cat in cats)
                    {
                        directory.AddCatalog(cat);
                    }
                }

                onComplete();
            });
        }
Beispiel #11
0
        public void AddCatalogLoad <T>(string catalogName, AssetDirectory <T> directory, bool?useDevCatalog = null)
            where T : ScriptObject
        {
            if (string.IsNullOrEmpty(catalogName))
            {
                return;
            }

            BeforeLoad(directory.Clear);

            m_catalogLoadActions.Add((onComplete) =>
            {
                LoadCatalog <T>(SpaceName, catalogName, (cat) =>
                {
                    directory.AddCatalog(cat);

                    onComplete();
                }, useDevCatalog);
            });
        }
    private void BuildSubFiles(AssetDirectory directory)
    {
        DirectoryInfo direction = new DirectoryInfo(directory.Path);

        FileInfo[] files = direction.GetFiles();

        for (int i = 0; i < files.Length; i++)
        {
            if (files[i].Name.EndsWith(".meta"))
            {
                continue;
            }

            AssetFile file = new AssetFile(files[i].Name);
            directory.AddChild(file);
            _assetDatas.AllAssetFiles.Add(file);

            string[] test = AssetDatabase.GetDependencies(file.Path, false);
            _dependenciesDic.Add(file.Path, test);

            EditorUtility.DisplayProgressBar("Loading Asset Datas", file.Name, (float)(_progressValue++) / _progressTotal);
        }
    }
Beispiel #13
0
        protected string GenerateCommandLineCommands(string ManifestFile, string currentAbi, string currentResourceOutputFile)
        {
            // For creating Resource.Designer.cs:
            //   Running command: C:\Program Files (x86)\Android\android-sdk-windows\platform-tools\aapt
            //     "package"
            //     "-M" "C:\Users\Jonathan\AppData\Local\Temp\ryob4gaw.way\AndroidManifest.xml"
            //     "-J" "C:\Users\Jonathan\AppData\Local\Temp\ryob4gaw.way"
            //     "-F" "C:\Users\Jonathan\AppData\Local\Temp\ryob4gaw.way\resources.apk"
            //     "-S" "c:\users\jonathan\documents\visual studio 2010\Projects\MonoAndroidApplication4\MonoAndroidApplication4\obj\Debug\res"
            //     "-I" "C:\Program Files (x86)\Android\android-sdk-windows\platforms\android-8\android.jar"
            //     "--max-res-version" "10"

            // For packaging:
            //   Running command: C:\Program Files (x86)\Android\android-sdk-windows\platform-tools\aapt
            //     "package"
            //     "-f"
            //     "-m"
            //     "-M" "AndroidManifest.xml"
            //     "-J" "src"
            //     "--custom-package" "androidmsbuildtest.androidmsbuildtest"
            //     "-F" "bin\packaged_resources"
            //     "-S" "C:\Users\Jonathan\Documents\Visual Studio 2010\Projects\AndroidMSBuildTest\AndroidMSBuildTest\obj\Debug\res"
            //     "-I" "C:\Program Files (x86)\Android\android-sdk-windows\platforms\android-8\android.jar"
            //     "--extra-packages" "com.facebook.android:my.another.library"

            var cmd = new CommandLineBuilder();

            cmd.AppendSwitch("package");

            if (MonoAndroidHelper.LogInternalExceptions)
            {
                cmd.AppendSwitch("-v");
            }
            if (NonConstantId)
            {
                cmd.AppendSwitch("--non-constant-id");
            }
            cmd.AppendSwitch("-f");
            cmd.AppendSwitch("-m");
            string manifestFile;
            string manifestDir = Path.Combine(Path.GetDirectoryName(ManifestFile), currentAbi != null ? currentAbi : "manifest");

            Directory.CreateDirectory(manifestDir);
            manifestFile = Path.Combine(manifestDir, Path.GetFileName(ManifestFile));
            ManifestDocument manifest = new ManifestDocument(ManifestFile, this.Log);

            if (currentAbi != null)
            {
                manifest.SetAbi(currentAbi);
            }
            manifest.ApplicationName = ApplicationName;
            manifest.Save(manifestFile);

            cmd.AppendSwitchIfNotNull("-M ", manifestFile);
            Directory.CreateDirectory(JavaDesignerOutputDirectory);
            cmd.AppendSwitchIfNotNull("-J ", JavaDesignerOutputDirectory);

            if (PackageName != null)
            {
                cmd.AppendSwitchIfNotNull("--custom-package ", PackageName.ToLowerInvariant());
            }

            if (!string.IsNullOrEmpty(currentResourceOutputFile))
            {
                cmd.AppendSwitchIfNotNull("-F ", currentResourceOutputFile + ".bk");
            }
            // The order of -S arguments is *important*, always make sure this one comes FIRST
            cmd.AppendSwitchIfNotNull("-S ", ResourceDirectory.TrimEnd('\\'));
            if (AdditionalResourceDirectories != null)
            {
                foreach (var resdir in AdditionalResourceDirectories)
                {
                    cmd.AppendSwitchIfNotNull("-S ", resdir.ItemSpec.TrimEnd('\\'));
                }
            }
            if (AdditionalAndroidResourcePaths != null)
            {
                foreach (var dir in AdditionalAndroidResourcePaths)
                {
                    cmd.AppendSwitchIfNotNull("-S ", Path.Combine(dir.ItemSpec.TrimEnd(System.IO.Path.DirectorySeparatorChar), "res"));
                }
            }

            if (LibraryProjectJars != null)
            {
                foreach (var jar in LibraryProjectJars)
                {
                    cmd.AppendSwitchIfNotNull("-j ", jar);
                }
            }

            cmd.AppendSwitchIfNotNull("-I ", JavaPlatformJarPath);

            // Add asset directory if it exists
            if (!string.IsNullOrWhiteSpace(AssetDirectory) && Directory.Exists(AssetDirectory))
            {
                cmd.AppendSwitchIfNotNull("-A ", AssetDirectory.TrimEnd('\\'));
            }

            if (!string.IsNullOrWhiteSpace(UncompressedFileExtensions))
            {
                foreach (var ext in UncompressedFileExtensions.Split(new char[] { ';', ',' }, StringSplitOptions.RemoveEmptyEntries))
                {
                    cmd.AppendSwitchIfNotNull("-0 ", ext);
                }
            }

            if (!string.IsNullOrEmpty(ExtraPackages))
            {
                cmd.AppendSwitchIfNotNull("--extra-packages ", ExtraPackages);
            }

            // TODO: handle resource names
            if (ExplicitCrunch)
            {
                cmd.AppendSwitch("--no-crunch");
            }

            cmd.AppendSwitch("--auto-add-overlay");

            var extraArgsExpanded = ExpandString(ExtraArgs);

            if (extraArgsExpanded != ExtraArgs)
            {
                Log.LogDebugMessage("  ExtraArgs expanded: {0}", extraArgsExpanded);
            }

            if (!string.IsNullOrWhiteSpace(extraArgsExpanded))
            {
                cmd.AppendSwitch(extraArgsExpanded);
            }

            if (!AndroidUseLatestPlatformSdk)
            {
                cmd.AppendSwitchIfNotNull("--max-res-version ", ApiLevel);
            }

            return(cmd.ToString());
        }
Beispiel #14
0
        protected string GenerateCommandLineCommands(string ManifestFile, string currentAbi, string currentResourceOutputFile)
        {
            // For creating Resource.designer.cs:
            //   Running command: C:\Program Files (x86)\Android\android-sdk-windows\platform-tools\aapt
            //     "package"
            //     "-M" "C:\Users\Jonathan\AppData\Local\Temp\ryob4gaw.way\AndroidManifest.xml"
            //     "-J" "C:\Users\Jonathan\AppData\Local\Temp\ryob4gaw.way"
            //     "-F" "C:\Users\Jonathan\AppData\Local\Temp\ryob4gaw.way\resources.apk"
            //     "-S" "c:\users\jonathan\documents\visual studio 2010\Projects\MonoAndroidApplication4\MonoAndroidApplication4\obj\Debug\res"
            //     "-I" "C:\Program Files (x86)\Android\android-sdk-windows\platforms\android-8\android.jar"
            //     "--max-res-version" "10"

            // For packaging:
            //   Running command: C:\Program Files (x86)\Android\android-sdk-windows\platform-tools\aapt
            //     "package"
            //     "-f"
            //     "-m"
            //     "-M" "AndroidManifest.xml"
            //     "-J" "src"
            //     "--custom-package" "androidmsbuildtest.androidmsbuildtest"
            //     "-F" "bin\packaged_resources"
            //     "-S" "C:\Users\Jonathan\Documents\Visual Studio 2010\Projects\AndroidMSBuildTest\AndroidMSBuildTest\obj\Debug\res"
            //     "-I" "C:\Program Files (x86)\Android\android-sdk-windows\platforms\android-8\android.jar"
            //     "--extra-packages" "com.facebook.android:my.another.library"

            var cmd = new CommandLineBuilder();

            cmd.AppendSwitch("package");

            if (MonoAndroidHelper.LogInternalExceptions)
            {
                cmd.AppendSwitch("-v");
            }
            if (NonConstantId)
            {
                cmd.AppendSwitch("--non-constant-id");
            }
            cmd.AppendSwitch("-f");
            cmd.AppendSwitch("-m");
            string manifestFile;
            string manifestDir = Path.Combine(Path.GetDirectoryName(ManifestFile), currentAbi != null ? currentAbi : "manifest");

            Directory.CreateDirectory(manifestDir);
            manifestFile = Path.Combine(manifestDir, Path.GetFileName(ManifestFile));
            ManifestDocument manifest = new ManifestDocument(ManifestFile);

            manifest.SdkVersion = AndroidSdkPlatform;
            if (!string.IsNullOrEmpty(VersionCodePattern))
            {
                try {
                    manifest.CalculateVersionCode(currentAbi, VersionCodePattern, VersionCodeProperties);
                } catch (ArgumentOutOfRangeException ex) {
                    LogCodedError("XA0003", ManifestFile, 0, ex.Message);
                    return(string.Empty);
                }
            }
            if (currentAbi != null && string.IsNullOrEmpty(VersionCodePattern))
            {
                manifest.SetAbi(currentAbi);
            }
            if (!manifest.ValidateVersionCode(out string error, out string errorCode))
            {
                LogCodedError(errorCode, ManifestFile, 0, error);
                return(string.Empty);
            }
            manifest.ApplicationName = ApplicationName;
            manifest.Save(LogCodedWarning, manifestFile);

            cmd.AppendSwitchIfNotNull("-M ", manifestFile);
            var designerDirectory = Path.IsPathRooted(JavaDesignerOutputDirectory) ? JavaDesignerOutputDirectory : Path.Combine(WorkingDirectory, JavaDesignerOutputDirectory);

            Directory.CreateDirectory(designerDirectory);
            cmd.AppendSwitchIfNotNull("-J ", JavaDesignerOutputDirectory);

            if (PackageName != null)
            {
                cmd.AppendSwitchIfNotNull("--custom-package ", PackageName.ToLowerInvariant());
            }

            if (!string.IsNullOrEmpty(currentResourceOutputFile))
            {
                cmd.AppendSwitchIfNotNull("-F ", currentResourceOutputFile + ".bk");
            }
            // The order of -S arguments is *important*, always make sure this one comes FIRST
            cmd.AppendSwitchIfNotNull("-S ", resourceDirectory.TrimEnd('\\'));
            if (AdditionalResourceDirectories != null)
            {
                foreach (var dir in AdditionalResourceDirectories)
                {
                    var resdir = dir.ItemSpec.TrimEnd('\\');
                    if (Directory.Exists(resdir))
                    {
                        cmd.AppendSwitchIfNotNull("-S ", resdir);
                    }
                }
            }
            if (AdditionalAndroidResourcePaths != null)
            {
                foreach (var dir in AdditionalAndroidResourcePaths)
                {
                    var resdir = Path.Combine(dir.ItemSpec, "res");
                    if (Directory.Exists(resdir))
                    {
                        cmd.AppendSwitchIfNotNull("-S ", resdir);
                    }
                }
            }

            if (LibraryProjectJars != null)
            {
                foreach (var jar in LibraryProjectJars)
                {
                    cmd.AppendSwitchIfNotNull("-j ", jar);
                }
            }

            cmd.AppendSwitchIfNotNull("-I ", JavaPlatformJarPath);

            // Add asset directory if it exists
            if (!string.IsNullOrWhiteSpace(AssetDirectory))
            {
                var assetDir = AssetDirectory.TrimEnd('\\');
                if (!Path.IsPathRooted(assetDir))
                {
                    assetDir = Path.Combine(WorkingDirectory, assetDir);
                }
                if (!string.IsNullOrWhiteSpace(assetDir) && Directory.Exists(assetDir))
                {
                    cmd.AppendSwitchIfNotNull("-A ", assetDir);
                }
            }
            if (!string.IsNullOrWhiteSpace(UncompressedFileExtensions))
            {
                foreach (var ext in UncompressedFileExtensions.Split(new char[] { ';', ',' }, StringSplitOptions.RemoveEmptyEntries))
                {
                    cmd.AppendSwitchIfNotNull("-0 ", ext.StartsWith(".", StringComparison.OrdinalIgnoreCase) ? ext : $".{ext}");
                }
            }

            if (!string.IsNullOrEmpty(ExtraPackages))
            {
                cmd.AppendSwitchIfNotNull("--extra-packages ", ExtraPackages);
            }

            cmd.AppendSwitch("--auto-add-overlay");

            if (!string.IsNullOrEmpty(ResourceSymbolsTextFileDirectory))
            {
                cmd.AppendSwitchIfNotNull("--output-text-symbols ", ResourceSymbolsTextFileDirectory);
            }

            var extraArgsExpanded = ExpandString(ExtraArgs);

            if (extraArgsExpanded != ExtraArgs)
            {
                LogDebugMessage("  ExtraArgs expanded: {0}", extraArgsExpanded);
            }

            if (!string.IsNullOrWhiteSpace(extraArgsExpanded))
            {
                cmd.AppendSwitch(extraArgsExpanded);
            }

            if (!AndroidUseLatestPlatformSdk)
            {
                cmd.AppendSwitchIfNotNull("--max-res-version ", ApiLevel);
            }

            return(cmd.ToString());
        }
 public void Dispose()
 {
     AllAssetFiles.Clear();
     Root.Dispose();
     Root = null;
 }
 public AssetDatas()
 {
     AllAssetFiles = new List <AssetFile>();
     Root          = new AssetDirectory("Assets");
 }