コード例 #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
ファイル: SaberBindPatch.cs プロジェクト: ErisApps/SiraUtil
            private static DiContainer GetContainer(GameCoreSceneSetup gameCoreSceneSetup)
            {
                MonoInstallerBase monoInstaller = gameCoreSceneSetup;
                DiContainer       container     = Zenject.Installer.AccessDiContainer(ref monoInstaller);

                return(container);
            }
コード例 #3
0
ファイル: SaberBindPatch.cs プロジェクト: ErisApps/SiraUtil
            public static void Prefix(ref GameCoreSceneSetup __instance, ref BasicSaberModelController ____basicSaberModelControllerPrefab)
            {
                // Borrow the XWeaponTrail and expose it to Zenject ;)

                var trail     = ____basicSaberModelControllerPrefab.GetField <XWeaponTrail, BasicSaberModelController>("_saberWeaponTrail");
                var container = GetContainer(__instance);

                container.Bind <XWeaponTrail>().FromComponentOn(trail.gameObject).AsTransient();
            }
コード例 #4
0
ファイル: SaberBindPatch.cs プロジェクト: ErisApps/SiraUtil
 private static void ConditionalModelControllerBind(GameCoreSceneSetup gameCoreSceneSetup)
 {
     if (SaberModelProvider.providers.Count == 0)
     {
         var modelController = gameCoreSceneSetup.GetField <BasicSaberModelController, GameCoreSceneSetup>("_basicSaberModelControllerPrefab");
         if (modelController != null)
         {
             var container = GetContainer(gameCoreSceneSetup);
             container.Bind <ISaberModelController>().FromComponentInNewPrefab(modelController).AsTransient();
         }
     }
 }
コード例 #5
0
ファイル: SaberBindPatch.cs プロジェクト: ErisApps/SiraUtil
            public static void Postfix(ref GameCoreSceneSetup __instance)
            {
                var container = GetContainer(__instance);

                var topProvider = SaberModelProvider.providers.OrderByDescending(q => q.Priority).FirstOrDefault();

                if (topProvider != null)
                {
                    if (topProvider.ModelController is MonoBehaviour mbtp)
                    {
                        container.Bind <ISaberModelController>().FromComponentInNewPrefab(mbtp).AsTransient();
                    }
                    else
                    {
                        container.Bind <ISaberModelController>().FromInstance(topProvider.ModelController).AsTransient();
                    }
                }
            }