/// <summary> /// </summary> public EditorScreen(Qua map) { if (OnlineManager.IsSpectatingSomeone) { OnlineManager.Client?.StopSpectating(); } OriginalMap = map; WorkingMap = ObjectHelper.DeepClone(OriginalMap); FixInvalidHitObjectLayers(); MapManager.Selected.Value.Qua = WorkingMap; // Discord Rich Presence DiscordHelper.Presence.Details = WorkingMap.ToString(); DiscordHelper.Presence.State = "Editing"; DiscordHelper.Presence.StartTimestamp = (long)(TimeHelper.GetUnixTimestampMilliseconds() / 1000); DiscordHelper.Presence.EndTimestamp = 0; DiscordRpc.UpdatePresence(ref DiscordHelper.Presence); ActiveLayerInterface = new Bindable <EditorLayerInterface>(EditorLayerInterface.Composition) { Value = EditorLayerInterface.Composition }; ModManager.RemoveSpeedMods(); if (!LoadAudioTrack()) { return; } CustomAudioSampleCache.LoadSamples(MapManager.Selected.Value, MapManager.Selected.Value.Md5Checksum); SetHitSoundObjectIndex(); GameBase.Game.IsMouseVisible = true; GameBase.Game.GlobalUserInterface.Cursor.Visible = false; GameBase.Game.Window.FileDropped += OnFileDropped; if (MapManager.Selected.Value.Game == MapGame.Quaver) { BeginWatchingFiles(); } Metronome = new Metronome(WorkingMap); View = new EditorScreenView(this); CreateRuleset(); AppDomain.CurrentDomain.UnhandledException += OnCrash; if (File.Exists($"{ConfigManager.SongDirectory}/{MapManager.Selected.Value.Directory}/{MapManager.Selected.Value.Path}.autosave")) { DialogManager.Show(new EditorAutosaveDetectionDialog()); } }
/// <inheritdoc /> /// <summary> /// </summary> /// <returns></returns> public override UserClientStatus GetClientStatus() => new UserClientStatus(ClientStatus.Editing, -1, "", (byte)GameMode.Keys4, WorkingMap.ToString(), 0);