コード例 #1
0
            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);
            }
コード例 #2
0
            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);
            }