예제 #1
0
    static void OnDelete(string relativePath, string externalPath)
    {
        string externalFile = Path.Combine(externalPath, relativePath);

        Debug.Log(string.Format("Deleted: {0} now Deleting: {1}", relativePath, externalFile));

        ModifiedFiles modifiedFiles = ModifiedFiles.GetModifiedFiles();

        if (File.Exists(externalFile))
        {
            modifiedFiles.DeleteFile(externalFile);
            AssetDatabase.SaveAssets();
        }
    }
예제 #2
0
    static void OnNewImport(string relativePath, string path, string externalPath)
    {
        string externalFile = Path.Combine(externalPath, relativePath);

        Debug.Log(string.Format("Imported: {0} now Creating: {1}", relativePath, externalFile));

        ModifiedFiles modifiedFiles = ModifiedFiles.GetModifiedFiles();

        if (File.Exists(externalFile))
        {
            if (File.GetLastWriteTime(externalFile) < File.GetLastWriteTime(path))
            {
                modifiedFiles.AddFile(path, externalFile);
                AssetDatabase.SaveAssets();
            }
        }
        else
        {
            modifiedFiles.AddFile(path, externalFile);
            AssetDatabase.SaveAssets();
        }
    }
예제 #3
0
    void OnGUI()
    {
        externalFolder = EditorPrefs.GetString(externalFolderKey);

        GUILayout.Label("Folder to Sync to");
        string newExternalFolder = EditorGUILayout.TextField(externalFolder);

        EditorPrefs.SetString(externalFolderKey, newExternalFolder);

        GUILayout.Space(20);
        ModifiedFiles modifiedFiles = ModifiedFiles.GetModifiedFiles();

        if (modifiedFiles.addedFiles == null || modifiedFiles.addedFiles.Count < 1)
        {
            GUILayout.BeginVertical();
            GUILayout.Label("No added files");
            GUILayout.EndVertical();
        }
        else
        {
            GUILayout.BeginVertical();

            for (int i = 0; i < modifiedFiles.addedFiles.Count; ++i)
            {
                FileMod modification = modifiedFiles.addedFiles[i];
                GUILayout.BeginHorizontal();
                GUILayout.Label(modification.sourcePath);
                if (GUILayout.Button("Discard"))
                {
                    Debug.Log("This is supposed to discard");
                    modifiedFiles.addedFiles.RemoveAt(i);
                    AssetDatabase.SaveAssets();
                }
                GUILayout.EndHorizontal();
            }


            if (GUILayout.Button("Push Changes"))
            {
                foreach (FileMod modification in modifiedFiles.addedFiles)
                {
                    Directory.CreateDirectory(Path.GetDirectoryName(modification.destinationPath));
                    File.Copy(modification.sourcePath, modification.destinationPath, true);
                }
                modifiedFiles.addedFiles.Clear();
                AssetDatabase.SaveAssets();
            }
            GUILayout.EndVertical();
        }
        GUILayout.Space(20);
        if (modifiedFiles.deletedFiles == null || modifiedFiles.deletedFiles.Count < 1)
        {
            GUILayout.BeginVertical();
            GUILayout.Label("No deleted files");
            GUILayout.EndVertical();
        }
        else
        {
            GUILayout.BeginVertical();

            foreach (string deletedFile in modifiedFiles.deletedFiles)
            {
                GUILayout.BeginHorizontal();
                GUILayout.Label(deletedFile);
                if (GUILayout.Button("Discard"))
                {
                    Debug.Log("This is supposed to discard");
                }
                GUILayout.EndHorizontal();
            }
            if (GUILayout.Button("Push Changes"))
            {
                Debug.Log("This doesn't work yet");
            }
            GUILayout.EndVertical();
        }
    }