暂无描述
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

DrawSceneOperations.cs 2.2KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. using System.Collections.Generic;
  2. using UnityEditor.VersionControl;
  3. using Codice.LogWrapper;
  4. using Unity.PlasticSCM.Editor.AssetUtils;
  5. using Unity.PlasticSCM.Editor.AssetsOverlays.Cache;
  6. using Unity.PlasticSCM.Editor.AssetMenu;
  7. using Unity.PlasticSCM.Editor.AssetUtils.Processor;
  8. namespace Unity.PlasticSCM.Editor.SceneView
  9. {
  10. static class DrawSceneOperations
  11. {
  12. internal static void Enable(
  13. string wkPath,
  14. WorkspaceOperationsMonitor workspaceOperationsMonitor,
  15. IAssetStatusCache assetStatusCache)
  16. {
  17. if (mIsEnabled)
  18. return;
  19. mLog.Debug("Enable");
  20. mWkPath = wkPath;
  21. mWorkspaceOperationsMonitor = workspaceOperationsMonitor;
  22. mAssetStatusCache = assetStatusCache;
  23. mIsEnabled = true;
  24. Provider.preCheckoutCallback += Provider_preCheckoutCallback;
  25. }
  26. internal static void Disable()
  27. {
  28. mLog.Debug("Disable");
  29. mIsEnabled = false;
  30. Provider.preCheckoutCallback -= Provider_preCheckoutCallback;
  31. mWkPath = null;
  32. mWorkspaceOperationsMonitor = null;
  33. mAssetStatusCache = null;
  34. }
  35. static bool Provider_preCheckoutCallback(
  36. AssetList list,
  37. ref string changesetID,
  38. ref string changesetDescription)
  39. {
  40. if (!mIsEnabled)
  41. return true;
  42. if (!FindWorkspace.HasWorkspace(ApplicationDataPath.Get()))
  43. {
  44. Disable();
  45. return true;
  46. }
  47. List<string> selectedPaths = GetSelectedPaths.ForOperation(
  48. mWkPath, list, mAssetStatusCache,
  49. AssetMenuOperations.Checkout);
  50. if (selectedPaths.Count == 0)
  51. return true;
  52. mWorkspaceOperationsMonitor.AddPathsToCheckout(selectedPaths);
  53. return true;
  54. }
  55. static bool mIsEnabled;
  56. static IAssetStatusCache mAssetStatusCache;
  57. static WorkspaceOperationsMonitor mWorkspaceOperationsMonitor;
  58. static string mWkPath;
  59. static readonly ILog mLog = PlasticApp.GetLogger("DrawSceneOperations");
  60. }
  61. }