DrawSceneOperations.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. using System.Collections.Generic;
  2. using UnityEngine;
  3. using UnityEditor.VersionControl;
  4. using Unity.PlasticSCM.Editor.AssetUtils;
  5. using Unity.PlasticSCM.Editor.AssetMenu;
  6. namespace Unity.PlasticSCM.Editor.SceneView
  7. {
  8. static class DrawSceneOperations
  9. {
  10. internal static void Enable(
  11. WorkspaceOperationsMonitor workspaceOperationsMonitor)
  12. {
  13. if (sIsEnabled)
  14. return;
  15. sWorkspaceOperationsMonitor = workspaceOperationsMonitor;
  16. sIsEnabled = true;
  17. Provider.preCheckoutCallback += Provider_preCheckoutCallback;
  18. }
  19. internal static void Disable()
  20. {
  21. sIsEnabled = false;
  22. sWorkspaceOperationsMonitor = null;
  23. Provider.preCheckoutCallback -= Provider_preCheckoutCallback;
  24. }
  25. static bool Provider_preCheckoutCallback(
  26. AssetList list,
  27. ref string changesetID,
  28. ref string changesetDescription)
  29. {
  30. if (!sIsEnabled)
  31. return true;
  32. if (!FindWorkspace.HasWorkspace(Application.dataPath))
  33. {
  34. Disable();
  35. return true;
  36. }
  37. List<string> selectedPaths = GetSelectedPaths.ForOperation(
  38. list,
  39. PlasticPlugin.AssetStatusCache,
  40. AssetMenuOperations.Checkout);
  41. sWorkspaceOperationsMonitor.AddPathsToCheckout(selectedPaths);
  42. return true;
  43. }
  44. static bool sIsEnabled;
  45. static WorkspaceOperationsMonitor sWorkspaceOperationsMonitor;
  46. }
  47. }