namespace NightclubArcadia.EditorTools
{
///
/// The scene paths the one-shot setup menus operate on.
///
/// These used to be a literal "Assets/Scenes/DialogueTest.unity" repeated in four
/// Editor scripts, which is why renaming the scene meant finding all four. One
/// place now.
///
public static class ScenePaths
{
/// Entry point. Loads Systems, then a level.
public const string Bootstrap = "Assets/Scenes/Bootstrap.unity";
/// Persistent systems: dialogue, skills, UI, camera rig, player.
public const string Systems = "Assets/Scenes/Systems/Systems.unity";
///
/// The scene the setup menus wire into. SC-101's conference hall.
///
/// Only for menus that OPEN and MODIFY a scene. A menu that builds a scene from
/// scratch and saves over its target must never point here — see Sandbox.
///
public const string WorkingLevel = "Assets/Scenes/Levels/SC101_ConferenceHall.unity";
///
/// Scratch scene for menus that generate a scene wholesale.
///
/// This exists because pointing such a menu at WorkingLevel destroyed it once:
/// YarnDemoSetup builds a demo scene and calls SaveScene over its target, so
/// running it replaced SC-101 with a bare Yarn demo. Anything under Scenes/Dev
/// is disposable by definition; nothing outside it is.
///
public const string Sandbox = "Assets/Scenes/Dev/YarnSandbox.unity";
///
/// Guard for any menu that overwrites a whole scene. Generated scenes belong in
/// Scenes/Dev and nowhere else.
///
public static bool IsDisposable(string scenePath) =>
!string.IsNullOrEmpty(scenePath) &&
scenePath.Replace('\\', '/').StartsWith("Assets/Scenes/Dev/", System.StringComparison.Ordinal);
}
}