using System; namespace Module.NavigationTool.Editor.Toolbar { internal sealed class ToolbarScenePickerProjectSettings : IToolbarProjectSettings { public string Title => "Scene"; public bool IsSettingsDirty { get; private set; } private SceneGroupReorderableListDrawer sceneGroupList; private ToolbarProjectSettings projectSettings; private Settings settings; public void Initialize(ToolbarProjectSettings projectSettings) { this.projectSettings = projectSettings; settings = projectSettings.GetValueAs(); sceneGroupList = new SceneGroupReorderableListDrawer(settings.sceneGroups.groups, "Scene groups"); sceneGroupList.onChanged += ToolScenePicker.SetAsDirty; } public void Draw() { sceneGroupList.DoLayoutList(); IsSettingsDirty = sceneGroupList.IsDirty; } public void SetSettingsValue() { projectSettings.SetValue(settings); } [Serializable] public sealed class Settings { public SceneGroupArray sceneGroups = new(); } } }