diff --git a/MuzikaGromche/DiscoBallManager.cs b/MuzikaGromche/DiscoBallManager.cs index d7658c3..af5c19d 100644 --- a/MuzikaGromche/DiscoBallManager.cs +++ b/MuzikaGromche/DiscoBallManager.cs @@ -82,7 +82,7 @@ namespace MuzikaGromche CachedDiscoBalls.Add(discoBall); discoBall.SetActive(false); - Debug.Log($"{nameof(MuzikaGromche)} {nameof(DiscoBallManager)} Patched tile '{tile.gameObject.name}'"); + Plugin.Log.LogDebug($"{nameof(DiscoBallManager)} Patched tile '{tile.gameObject.name}'"); } static IEnumerable FindDiscoBallAnimators(GameObject discoBall) @@ -109,7 +109,7 @@ namespace MuzikaGromche public static void Toggle(bool on) { - Debug.Log($"{nameof(MuzikaGromche)} {nameof(DiscoBallManager)} Toggle {(on ? "ON" : "OFF")} {CachedDiscoBallAnimators.Count} animators"); + Plugin.Log.LogDebug($"{nameof(DiscoBallManager)} Toggle {(on ? "ON" : "OFF")} {CachedDiscoBallAnimators.Count} animators"); foreach (var discoBall in CachedDiscoBalls) { @@ -133,7 +133,7 @@ namespace MuzikaGromche internal static void Clear() { - Debug.Log($"{nameof(MuzikaGromche)} {nameof(DiscoBallManager)} Clearing {CachedDiscoBalls.Count} disco balls & {CachedDiscoBallAnimators.Count} animators"); + Plugin.Log.LogDebug($"{nameof(DiscoBallManager)} Clearing {CachedDiscoBalls.Count} disco balls & {CachedDiscoBallAnimators.Count} animators"); CachedDiscoBallAnimators.Clear(); CachedDiscoBalls.Clear(); } diff --git a/MuzikaGromche/Plugin.cs b/MuzikaGromche/Plugin.cs index 005541c..7656b90 100644 --- a/MuzikaGromche/Plugin.cs +++ b/MuzikaGromche/Plugin.cs @@ -1,5 +1,6 @@ using BepInEx; using BepInEx.Configuration; +using BepInEx.Logging; using HarmonyLib; using LethalConfig; using LethalConfig.ConfigItems; @@ -26,6 +27,7 @@ namespace MuzikaGromche [BepInDependency("BMX.LobbyCompatibility", BepInDependency.DependencyFlags.SoftDependency)] public class Plugin : BaseUnityPlugin { + internal static ManualLogSource Log = null!; internal new static Config Config { get; private set; } = null!; // Not all lights are white by default. For example, Mineshaft's neon light is green-ish. @@ -857,7 +859,7 @@ namespace MuzikaGromche var rwi = new RandomWeightedIndex(weights); var trackId = rwi.GetRandomWeightedIndex(seed); var track = tracks[trackId]; - Debug.Log($"{nameof(MuzikaGromche)} Seed is {seed}, chosen track is \"{track.Name}\", #{trackId} of {rwi}"); + Log.LogInfo($"Seed is {seed}, chosen track is \"{track.Name}\", #{trackId} of {rwi}"); return tracks[trackId]; } @@ -890,6 +892,8 @@ namespace MuzikaGromche void Awake() { + Log = Logger; + // Sort in place by name Array.Sort(Tracks.Select(track => track.Name).ToArray(), Tracks); @@ -1311,7 +1315,7 @@ namespace MuzikaGromche void ISelectableTrack.Debug() { - Debug.Log($"{nameof(MuzikaGromche)} Track \"{Name}\", Intro={LoadedIntro.length:N4}, Loop={LoadedLoop.length:N4}"); + Plugin.Log.LogDebug($"Track \"{Name}\", Intro={LoadedIntro.length:N4}, Loop={LoadedLoop.length:N4}"); } } @@ -1337,10 +1341,10 @@ namespace MuzikaGromche void ISelectableTrack.Debug() { - Debug.Log($"{nameof(MuzikaGromche)} Track Group \"{Name}\", Count={Tracks.Length}"); + Plugin.Log.LogDebug($"Track Group \"{Name}\", Count={Tracks.Length}"); foreach (var (track, index) in Tracks.Select((x, i) => (x, i))) { - Debug.Log($"{nameof(MuzikaGromche)} Track {index} \"{track.Name}\", Intro={track.LoadedIntro.length:N4}, Loop={track.LoadedLoop.length:N4}"); + Plugin.Log.LogDebug($" Track {index} \"{track.Name}\", Intro={track.LoadedIntro.length:N4}, Loop={track.LoadedLoop.length:N4}"); } } } @@ -1717,11 +1721,10 @@ namespace MuzikaGromche IsLooping |= timestamp.IsLooping; #if DEBUG && false - Debug.LogFormat("{0} t={1,10:N4} d={2,7:N4} {3} Time={4:N4} norm={5,6:N4} beat={6,7:N4}", - nameof(MuzikaGromche), + Plugin.Log.LogDebug(string.Format("t={0,10:N4} d={1,7:N4} {2} Time={3:N4} norm={4,6:N4} beat={5,7:N4}", Time.realtimeSinceStartup, Time.deltaTime, isExtrapolated ? 'E' : '_', time, - adjustedTimeNormalized, beat); + adjustedTimeNormalized, beat)); #endif return timestamp; @@ -1783,7 +1786,7 @@ namespace MuzikaGromche LastKnownLoopOffsetBeat = loopOffsetTimestamp.Beat; var events = GetEvents(loopOffsetTimestamp, loopOffsetSpan, windUpOffsetTimestamp); #if DEBUG - Debug.Log($"{nameof(MuzikaGromche)} looping? {(LoopLoopingState.IsLooping ? 'X' : '_')}{(WindUpLoopingState.IsLooping ? 'X' : '_')} Loop={loopOffsetSpan} WindUp={windUpOffsetTimestamp} Time={Time.realtimeSinceStartup:N4} events={string.Join(",", events)}"); + Plugin.Log.LogDebug($"looping? {(LoopLoopingState.IsLooping ? 'X' : '_')}{(WindUpLoopingState.IsLooping ? 'X' : '_')} Loop={loopOffsetSpan} WindUp={windUpOffsetTimestamp} Time={Time.realtimeSinceStartup:N4} events={string.Join(",", events)}"); #endif return events; } @@ -2611,7 +2614,7 @@ namespace MuzikaGromche } catch (Exception e) { - Debug.Log($"{nameof(MuzikaGromche)} Unable to parse time series: {e}"); + Plugin.Log.LogError($"Unable to parse time series: {e}"); return null; } } @@ -2628,7 +2631,7 @@ namespace MuzikaGromche strings.Append(", "); } } - Debug.Log($"{nameof(MuzikaGromche)} format time series {ts} {strings}"); + Plugin.Log.LogDebug($"format time series {ts} {strings}"); return strings.ToString(); } T[]? parseStringArray(string str, Func parser, bool sort = false) where T : struct @@ -2641,7 +2644,7 @@ namespace MuzikaGromche } catch (Exception e) { - Debug.Log($"{nameof(MuzikaGromche)} Unable to parse array: {e}"); + Plugin.Log.LogError($"Unable to parse array: {e}"); return null; } } @@ -2731,12 +2734,12 @@ namespace MuzikaGromche .FirstOrDefault(prefab => prefab.Prefab.name == JesterEnemyPrefabName); if (networkPrefab == null) { - Debug.LogError($"{nameof(MuzikaGromche)} JesterEnemy prefab not found!"); + Plugin.Log.LogError("JesterEnemy prefab not found!"); } else { networkPrefab.Prefab.AddComponent(); - Debug.Log($"{nameof(MuzikaGromche)} Patched JesterEnemy"); + Plugin.Log.LogInfo("Patched JesterEnemy"); } } } @@ -2761,7 +2764,7 @@ namespace MuzikaGromche var farAudioTransform = gameObject.transform.Find("FarAudio"); if (farAudioTransform == null) { - Debug.LogError($"{nameof(MuzikaGromche)} JesterEnemy->FarAudio prefab not found!"); + Plugin.Log.LogError("JesterEnemy->FarAudio prefab not found!"); } else { @@ -2788,7 +2791,7 @@ namespace MuzikaGromche Config.Volume.SettingChanged += UpdateVolume; - Debug.Log($"{nameof(MuzikaGromche)} {nameof(MuzikaGromcheJesterNetworkBehaviour)} Patched JesterEnemy"); + Plugin.Log.LogInfo($"{nameof(MuzikaGromcheJesterNetworkBehaviour)} Patched JesterEnemy"); } } @@ -2856,7 +2859,7 @@ namespace MuzikaGromche [ClientRpc] public void SetTrackClientRpc(string name) { - Debug.Log($"{nameof(MuzikaGromche)} SetTrackClientRpc {name}"); + Plugin.Log.LogInfo($"SetTrackClientRpc {name}"); if (Plugin.FindTrackNamed(name) is { } track) { CurrentTrack = Config.OverrideCurrentTrack(track); @@ -2868,7 +2871,7 @@ namespace MuzikaGromche { var selectableTrack = Plugin.ChooseTrack(); var audioTrack = selectableTrack.SelectTrack(SelectedTrackIndex); - Debug.Log($"{nameof(MuzikaGromche)} ChooseTrackServerRpc {selectableTrack.Name} #{SelectedTrackIndex} {audioTrack.Name}"); + Plugin.Log.LogInfo($"ChooseTrackServerRpc {selectableTrack.Name} #{SelectedTrackIndex} {audioTrack.Name}"); SetTrackClientRpc(audioTrack.Name); SelectedTrackIndex += 1; } @@ -2877,7 +2880,7 @@ namespace MuzikaGromche { double loopStartDspTime = AudioSettings.dspTime + IntroAudioSource.clip.length - IntroAudioSource.time; LoopAudioSource.PlayScheduled(loopStartDspTime); - Debug.Log($"{nameof(MuzikaGromche)} Play Intro: dspTime={AudioSettings.dspTime:N4}, intro.time={IntroAudioSource.time:N4}/{IntroAudioSource.clip.length:N4}, scheduled Loop={loopStartDspTime}"); + Plugin.Log.LogDebug($"Play Intro: dspTime={AudioSettings.dspTime:N4}, intro.time={IntroAudioSource.time:N4}/{IntroAudioSource.clip.length:N4}, scheduled Loop={loopStartDspTime}"); } public void OverrideDeathScreenGameOverText() @@ -2938,7 +2941,7 @@ namespace MuzikaGromche if (behaviour.CurrentTrack == null) { #if DEBUG - Debug.LogError($"{nameof(MuzikaGromche)} CurrentTrack is not set!"); + Plugin.Log.LogError("CurrentTrack is not set!"); #endif return; } diff --git a/MuzikaGromche/PoweredLights.cs b/MuzikaGromche/PoweredLights.cs index 0b55433..12e76ed 100644 --- a/MuzikaGromche/PoweredLights.cs +++ b/MuzikaGromche/PoweredLights.cs @@ -205,7 +205,7 @@ namespace MuzikaGromche patch.ManualPatch?.Invoke(animationContainer); animator.runtimeAnimatorController = patch.AnimatorController; - Debug.Log($"{nameof(MuzikaGromche)} {nameof(PoweredLightsAnimatorsPatch)} {tilePatch.TileName}/{patch.AnimatorContainerPath}: Replaced animator controller"); + Plugin.Log.LogDebug($"{nameof(PoweredLightsAnimatorsPatch)} {tilePatch.TileName}/{patch.AnimatorContainerPath}: Replaced animator controller"); } } } @@ -223,7 +223,7 @@ namespace MuzikaGromche #pragma warning restore CS0162 // Unreachable code detected } targetObject.name = newName; - Debug.Log($"{nameof(MuzikaGromche)} {nameof(PoweredLightsAnimatorsPatch)} {animatorContainer.name}/{relativePath}: Renamed GameObject"); + Plugin.Log.LogDebug($"{nameof(PoweredLightsAnimatorsPatch)} {animatorContainer.name}/{relativePath}: Renamed GameObject"); }; } diff --git a/MuzikaGromche/SpawnRateManager.cs b/MuzikaGromche/SpawnRateManager.cs index 66a1591..cc18449 100644 --- a/MuzikaGromche/SpawnRateManager.cs +++ b/MuzikaGromche/SpawnRateManager.cs @@ -80,7 +80,7 @@ namespace MuzikaGromche var multiplier = Mathf.Lerp(minMultiplier, maxMultiplier, normalizedMultiplierTime); var newWeight = Mathf.FloorToInt(weights[index] * multiplier); - Debug.Log($"{nameof(MuzikaGromche)} {nameof(SpawnRatePatch)} Overriding spawn weight[{index}] {weights[index]} * {multiplier} => {newWeight} for t={SpawnTime}"); + Plugin.Log.LogInfo($"{nameof(SpawnRatePatch)} Overriding spawn weight[{index}] {weights[index]} * {multiplier} => {newWeight} for t={SpawnTime}"); weights[index] = newWeight; } }