static bool UndoFolderInDirectory(string directory)
    {
        // Get the Textures folder. Stop if there isn't one.
        string texturesDirectory = directory + "/Textures";

        if (!Directory.Exists(texturesDirectory))
        {
            return(false);
        }

        // Move all textures out of the Textures folder.
        string[] texturePaths = SavingUtilities.GetAssetsPathsInFolder(AssetFilter.texture2D, SavingUtilities.GetCurrentFolderPath());
        foreach (var texturePath in texturePaths)
        {
            AssetDatabase.MoveAsset(texturePath, directory + "/" + Path.GetFileName(texturePath));
        }

        // Delete the Textures folder if it is now empty.
        if (Directory.GetFiles(texturesDirectory).Length < 1)
        {
            Directory.Delete(texturesDirectory);
        }
        AssetDatabase.Refresh();
        return(true);
    }
 static void CreateFolderInCurrentDirectory()
 {
     // Try to create a Textures folder in the current directory.
     if (!CreateFolderInDirectory(SavingUtilities.GetCurrentFolderPath()))
     {
         Debug.Log("No textures in directory.");
     }
 }
 static void UndoFolderInCurrentDirectory()
 {
     // Try to undo the Textures folder in the current directory.
     if (!UndoFolderInDirectory(SavingUtilities.GetCurrentFolderPath()))
     {
         Debug.Log("No Textures folder found to undo.");
     }
 }
 static void UndoFolderInCurrentChildrenDirectories()
 {
     // Remove all Textures folders under first-child directories.
     string[] directories = Directory.GetDirectories(SavingUtilities.GetCurrentFolderPath());
     foreach (var directory in directories)
     {
         UndoFolderInDirectory(directory);
     }
 }
 static void CreateFoldersInCurrentChildrenDirectories()
 {
     // Create Textures folders under all first-child directories.
     string[] directories = Directory.GetDirectories(SavingUtilities.GetCurrentFolderPath());
     foreach (var directory in directories)
     {
         CreateFolderInDirectory(directory);
     }
 }
Esempio n. 6
0
 static void PermuteTexturesOnSelectionObjects(Object[] materials, string extension, string folderPath)
 {
     // Get all textures in current directory.
     string[] texturePaths = SavingUtilities.GetAssetsPathsInFolder(AssetFilter.texture2D, folderPath);
     for (int i = 0; i < materials.Length; i++)
     {
         PermuteTexturesOnMaterialWithPaths((Material)materials[i], extension, folderPath, texturePaths);
     }
 }
Esempio n. 7
0
    public void AppendToFile(string filepath)
    {
        FileInfo file = new FileInfo(filepath);

        if (SavingUtilities.IsFileLocked(file))
        {
            MessageBox.Show("\"" + file.Name + "\" could not be saved. Maybe it is opened somewhere.", new MessageBoxCallback[] {
                new MessageBoxCallback(MessageBoxCallbackType.Cancel),
                new MessageBoxCallback(MessageBoxCallbackType.Retry, () => AppendToFile(filepath))
            });
            return;
        }
        using (StreamWriter sw = new StreamWriter(filepath, true))
            sw.WriteLine(Content, Encoding.UTF8);
    }
Esempio n. 8
0
    static void ToPNGInDirectory(string directory)
    {
        // Get all .tga textures.
        string[]      texturePaths     = SavingUtilities.GetAssetsPathsInFolder(AssetFilter.texture2D, directory);
        List <string> tgaTexturesPaths = new List <string>();

        foreach (string texturePath in texturePaths)
        {
            if (Path.GetExtension(texturePath).Equals(".tga", StringComparison.InvariantCultureIgnoreCase))
            {
                tgaTexturesPaths.Add(texturePath);
            }
        }

        // Save all .tga textures to .png textures.
        List <Texture2D> tgaTextures = SavingUtilities.LoadAssetsInFolder <Texture2D>(tgaTexturesPaths.ToArray());

        for (int i = 0; i < tgaTextures.Count; i++)
        {
            File.WriteAllBytes(directory + "/" + Path.GetFileName(tgaTexturesPaths[i]) + ".png", ImageConversion.EncodeToPNG(tgaTextures[i]));
        }
    }
    static bool CreateFolderInDirectory(string directory)
    {
        // Get all texture paths in current folder. Stop if none are found.
        string[] texturePaths = SavingUtilities.GetAssetsPathsInFolder(AssetFilter.texture2D, SavingUtilities.GetCurrentFolderPath());
        if (texturePaths.Length < 0)
        {
            return(false);
        }

        // Move all textures to a new (or existing) Textures folder.
        string newTexturesDirectory = directory + "/Textures/";

        if (!Directory.Exists(newTexturesDirectory))
        {
            Directory.CreateDirectory(newTexturesDirectory);
            AssetDatabase.Refresh();
        }
        foreach (var texturePath in texturePaths)
        {
            AssetDatabase.MoveAsset(texturePath, newTexturesDirectory + Path.GetFileName(texturePath));
        }
        return(true);
    }
Esempio n. 10
0
 public string WriteToFile(string filepath)
 {
     filepath = SavingUtilities.GetSafePath(filepath);
     File.WriteAllText(filepath, Content, Encoding.UTF8);
     return(filepath);
 }
Esempio n. 11
0
 static void PermuteToPNGs()
 {
     PermuteTexturesOnSelectionObjects(Selection.objects, ".png", SavingUtilities.GetCurrentFolderPath());
 }
Esempio n. 12
0
 static void PermuteToTGAsOnCurrentMaterial()
 {
     PermuteTexturesOnSelectionObjects(Selection.objects, ".tga", SavingUtilities.GetCurrentFolderPath());
 }
Esempio n. 13
0
 static void ToPNGInCurrentDirectory()
 {
     ToPNGInDirectory(SavingUtilities.GetCurrentFolderPath());
 }