2025-03-11 15:30:07 +08:00

61 lines
1.6 KiB
C#

using System.Collections.Generic;
using UnityEngine;
using UnityEditor.VersionControl;
using Unity.PlasticSCM.Editor.AssetUtils;
using Unity.PlasticSCM.Editor.AssetMenu;
namespace Unity.PlasticSCM.Editor.SceneView
{
static class DrawSceneOperations
{
internal static void Enable(
WorkspaceOperationsMonitor workspaceOperationsMonitor)
{
if (sIsEnabled)
return;
sWorkspaceOperationsMonitor = workspaceOperationsMonitor;
sIsEnabled = true;
Provider.preCheckoutCallback += Provider_preCheckoutCallback;
}
internal static void Disable()
{
sIsEnabled = false;
sWorkspaceOperationsMonitor = null;
Provider.preCheckoutCallback -= Provider_preCheckoutCallback;
}
static bool Provider_preCheckoutCallback(
AssetList list,
ref string changesetID,
ref string changesetDescription)
{
if (!sIsEnabled)
return true;
if (!FindWorkspace.HasWorkspace(Application.dataPath))
{
Disable();
return true;
}
List<string> selectedPaths = GetSelectedPaths.ForOperation(
list,
PlasticPlugin.AssetStatusCache,
AssetMenuOperations.Checkout);
sWorkspaceOperationsMonitor.AddPathsToCheckout(selectedPaths);
return true;
}
static bool sIsEnabled;
static WorkspaceOperationsMonitor sWorkspaceOperationsMonitor;
}
}