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); } }