static bool Prefix(ref GameCoreSceneSetup __instance, ref GameplayCoreSceneSetupData ____sceneSetupData) { IDifficultyBeatmap difficultyBeatmap = ____sceneSetupData.difficultyBeatmap; IReadOnlyList <BeatmapEventData> beatmapEventData = difficultyBeatmap.beatmapData.beatmapEventsData; SpawnRotationProcessor rotProcessor = new SpawnRotationProcessor(); bool is360 = false; foreach (BeatmapEventData beatmapEvent in beatmapEventData) { if (beatmapEvent.type != BeatmapEventType.Event14 && beatmapEvent.type != BeatmapEventType.Event15) { continue; } if (rotProcessor.RotationForEventValue(beatmapEvent.value) != 0) { is360 = true; break; } } if (!is360) { IPAUtils.SetProperty <BeatmapData, int>(difficultyBeatmap.beatmapData, "spawnRotationEventsCount", 0); } return(true); }
static bool Prefix(ref GameplayCoreSceneSetup __instance) { IPALogger log = Plugin._logger; log.Debug("Started patch!"); bool is360 = false; IDifficultyBeatmap difficultyBeatmap = IPAUtils.GetField <GameplayCoreSceneSetupData, GameplayCoreSceneSetup>(__instance, "_sceneSetupData").difficultyBeatmap; BeatmapEventData[] beatmapEventData = difficultyBeatmap.beatmapData.beatmapEventData; SpawnRotationProcessor rotProcessor = new SpawnRotationProcessor(); foreach (BeatmapEventData beatmapEvent in beatmapEventData) { if (!(beatmapEvent.type == BeatmapEventType.Event14 || beatmapEvent.type == BeatmapEventType.Event15)) { continue; } if (rotProcessor.RotationForEventValue(beatmapEvent.value) != 0) { log.Debug("360 is true!"); is360 = true; break; } } if (!is360) { IPAUtils.SetProperty <BeatmapData, int>(difficultyBeatmap.beatmapData, "spawnRotationEventsCount", 0); } return(true); }