From ea856f33391b8d013a7620388dc679978355d22a Mon Sep 17 00:00:00 2001 From: PopSlime Date: Tue, 15 Nov 2022 11:05:10 +0800 Subject: [PATCH] Code cleanup. --- Assets/Cryville/Crtr/ChartPlayer.cs | 34 ++++++++++++------- .../Extensions/Malody/MalodyChartConverter.cs | 9 ++--- 2 files changed, 26 insertions(+), 17 deletions(-) diff --git a/Assets/Cryville/Crtr/ChartPlayer.cs b/Assets/Cryville/Crtr/ChartPlayer.cs index 7c2e61a..4487ccd 100644 --- a/Assets/Cryville/Crtr/ChartPlayer.cs +++ b/Assets/Cryville/Crtr/ChartPlayer.cs @@ -107,8 +107,14 @@ namespace Cryville.Crtr { bool firstFrame; double atime0; void Update() { - // if (Input.GetKeyDown(KeyCode.Return)) TogglePlay(); - if (started) { + if (started) GameUpdate(); +#if !NO_THREAD + else if (loadThread != null) LoadUpdate(); +#endif + if (logEnabled) LogUpdate(); + else Game.MainLogger.Enumerate((level, module, msg) => { }); + } + void GameUpdate() { try { if (Screen.width != screenSize.x || Screen.height != screenSize.y) throw new InvalidOperationException("Window resized while playing"); @@ -144,8 +150,7 @@ namespace Cryville.Crtr { Stop(); } } -#if !NO_THREAD - else if (loadThread != null) { + void LoadUpdate() { if (texLoader != null) { string url = texLoader.url; string name = StringUtils.TrimExt(url.Substring(url.LastIndexOfAny(new char[] {'/', '\\'}) + 1)); @@ -203,8 +208,8 @@ namespace Cryville.Crtr { } } } -#endif - if (logEnabled) { + string timetext = string.Empty; + void LogUpdate() { string _logs = logs.text; Game.MainLogger.Enumerate((level, module, msg) => { string color; @@ -239,19 +244,19 @@ namespace Cryville.Crtr { UnityEngine.Profiling.Profiler.GetTotalReservedMemory() #endif ); - if (started) sttext += string.Format( + sttext += timetext; + if (judge != null) sttext += "\n== Scores ==\n" + judge.GetFullFormattedScoreString(); + status.text = sttext; + } + void OnCameraPostRender(Camera cam) { + if (started) timetext = string.Format( "\nSTime: {0:R}\nATime: {1:R}\nITime: {2:R}", cbus.Time, Game.AudioClient.Position - atime0, inputProxy.GetTimestampAverage() ); - if (judge != null) sttext += "\n== Scores ==\n" + judge.GetFullFormattedScoreString(); - status.text = sttext; + else timetext = string.Empty; } - else { - Game.MainLogger.Enumerate((level, module, msg) => { }); - } - } #endregion #region Triggers @@ -309,6 +314,8 @@ namespace Cryville.Crtr { Game.NetworkTaskWorker.SuspendBackgroundTasks(); Game.AudioSession = Game.AudioSequencer.NewSession(); + Camera.onPostRender += OnCameraPostRender; + var hitPlane = new Plane(Vector3.forward, Vector3.zero); var r0 = Camera.main.ViewportPointToRay(new Vector3(0, 0, 1)); float dist; @@ -430,6 +437,7 @@ namespace Cryville.Crtr { if (nbus != null) nbus.Dispose(); inputProxy.Deactivate(); foreach (var t in texs) Texture.Destroy(t.Value); + Camera.onPostRender -= OnCameraPostRender; Logger.Log("main", 1, "Game", "Stopped"); } catch (Exception ex) { diff --git a/Assets/Cryville/Crtr/Extensions/Malody/MalodyChartConverter.cs b/Assets/Cryville/Crtr/Extensions/Malody/MalodyChartConverter.cs index 154ee4f..0877e85 100644 --- a/Assets/Cryville/Crtr/Extensions/Malody/MalodyChartConverter.cs +++ b/Assets/Cryville/Crtr/Extensions/Malody/MalodyChartConverter.cs @@ -21,6 +21,7 @@ namespace Cryville.Crtr.Extensions.Malody { src = JsonConvert.DeserializeObject(reader.ReadToEnd()); } if (src.meta.mode != 0) throw new NotImplementedException("The chart mode is not supported"); + if (src.meta.mode_ext.column != 4) throw new NotImplementedException("The key count is not supported"); ChartMeta meta = new ChartMeta() { song = new ChartMeta.MetaInfo() { @@ -68,7 +69,7 @@ namespace Cryville.Crtr.Extensions.Malody { float pbeat = 0f, ctime = 0f; int[] endbeat = new int[] { 0, 0, 1 }; foreach (var ev in events) { - float cbeat = bp(ev.beat); + float cbeat = ConvertBeat(ev.beat); ctime += baseBpm == null ? 0 : (cbeat - pbeat) / baseBpm.Value * 60f; pbeat = cbeat; if (ev is MalodyChart.Time) { @@ -105,7 +106,7 @@ namespace Cryville.Crtr.Extensions.Malody { else throw new NotImplementedException(); } else { - if (bp(tev.beat) > bp(endbeat)) endbeat = tev.beat; + if (ConvertBeat(tev.beat) > ConvertBeat(endbeat)) endbeat = tev.beat; var rn = new Chart.Note() { time = new BeatTime(tev.beat[0], tev.beat[1], tev.beat[2]), motions = new List { @@ -113,7 +114,7 @@ namespace Cryville.Crtr.Extensions.Malody { }, }; if (tev.endbeat != null) { - if (bp(tev.endbeat) > bp(endbeat)) endbeat = tev.endbeat; + if (ConvertBeat(tev.endbeat) > ConvertBeat(endbeat)) endbeat = tev.endbeat; rn.endtime = new BeatTime(tev.endbeat[0], tev.endbeat[1], tev.endbeat[2]); longEvents.Add(ev, new StartEventState { Destination = rn, @@ -152,7 +153,7 @@ namespace Cryville.Crtr.Extensions.Malody { public ChartEvent Destination { get; set; } } - float bp(int[] beat) { + float ConvertBeat(int[] beat) { return beat[0] + (float)beat[1] / beat[2]; } }