Editor/Core/SceneSaveRules.cs
using System;
namespace TeamCreate;
public enum SceneSaveOutcome
{
Ignore,
Absorb,
Warn
}
public static class SceneSaveRules
{
public static readonly TimeSpan ExternalChangeGrace = TimeSpan.FromMilliseconds(250L);
public static SceneSaveOutcome Decide(bool ownSave, bool sessionLive, bool sceneTracked, bool saveGuardHolds)
{
if (ownSave || !sessionLive || !sceneTracked)
{
return SceneSaveOutcome.Ignore;
}
return saveGuardHolds ? SceneSaveOutcome.Absorb : SceneSaveOutcome.Warn;
}
public static bool ShouldFailOnDiskStamp(bool stampMatches, TimeSpan mismatchFor)
{
return !stampMatches && mismatchFor >= ExternalChangeGrace;
}
}