Esempio n. 1
0
        /// <summary>
        /// Get level collection by level collection name.
        /// </summary>
        /// <param name="levelCollectionName"></param>
        /// <returns></returns>
        public IAnnotatedBeatmapLevelCollection GetLevelCollectionByName(String levelCollectionName)
        {
            IAnnotatedBeatmapLevelCollection levelCollection = null;

            // search level packs
            BeatmapLevelPackCollectionSO beatMapLevelPackCollection = Resources.FindObjectsOfTypeAll <BeatmapLevelPackCollectionSO>().Last();

            IBeatmapLevelPack[] levelPacks = beatMapLevelPackCollection.GetField <IBeatmapLevelPack[], BeatmapLevelPackCollectionSO>("_allBeatmapLevelPacks");
            foreach (IBeatmapLevelPack o in levelPacks)
            {
                if (String.Equals(o.collectionName, levelCollectionName))
                {
                    levelCollection = o;
                    break;
                }
            }

            // search playlists
            if (levelCollection == null)
            {
                IReadOnlyList <IAnnotatedBeatmapLevelCollection> _annotatedBeatmapLevelCollections = AnnotatedBeatmapLevelCollectionsViewController.GetField <IReadOnlyList <IAnnotatedBeatmapLevelCollection>, AnnotatedBeatmapLevelCollectionsViewController>("_annotatedBeatmapLevelCollections");
                foreach (IAnnotatedBeatmapLevelCollection c in _annotatedBeatmapLevelCollections)
                {
                    if (String.Equals(c.collectionName, levelCollectionName))
                    {
                        levelCollection = c;
                        break;
                    }
                }
            }

            return(levelCollection);
        }
        IEnumerator IEInstantiateAudioSource()
        {
            yield return(new WaitUntil(() => Resources.FindObjectsOfTypeAll <MainSettingsModelSO>().Any()));

            MainSettingsModelSO mainSettings = Resources.FindObjectsOfTypeAll <MainSettingsModelSO>().FirstOrDefault();

            _maxPreviewVolume = mainSettings.volume * 0.5f;

            yield return(new WaitUntil(() => Resources.FindObjectsOfTypeAll <SongPreviewPlayer>().Any()));

            _songPreviewPlayer = Resources.FindObjectsOfTypeAll <SongPreviewPlayer>().FirstOrDefault();
            _songPreviewPlayer.FadeOut(1);

            yield return(new WaitUntil(() => Resources.FindObjectsOfTypeAll <BeatmapLevelsModel>().Any()));

            BeatmapLevelsModel           levelsModel      = Resources.FindObjectsOfTypeAll <BeatmapLevelsModel>().FirstOrDefault();
            BeatmapLevelPackCollectionSO packCollectionSO = levelsModel.ostAndExtrasPackCollection;

            BeatmapLevelPackSO[]     levelPack         = packCollectionSO.GetField <BeatmapLevelPackSO[]>("_beatmapLevelPacks");
            BeatmapLevelCollectionSO levelCollectionSO = levelPack[5].GetField <BeatmapLevelCollectionSO>("_beatmapLevelCollection");

            BeatmapLevelSO[] levels = levelCollectionSO.GetField <BeatmapLevelSO[]>("_beatmapLevels");

            AudioClip clip = levels[1].GetField <AudioClip>("_audioClip");

            _audioSource              = new GameObject("SSAudSource").AddComponent <AudioSource>();
            _audioSource.clip         = clip;
            _audioSource.spatialBlend = 0;
            _audioSource.loop         = true;
            _audioSource.volume       = 0;
            _audioSource.time         = 20f;
            _audioSource.Play();
        }
        public static SongCoreBeatmapLevelPackCollectionSO ReplaceOriginal(BeatmapLevelPackCollectionSO original)
        {
            var newCollection = CreateInstance <SongCoreBeatmapLevelPackCollectionSO>();
            //  newCollection._allBeatmapLevelPacks.AddRange((BeatmapLevelPackSO[])original.GetField("_beatmapLevelPacks"));
            //Figure out how to properly add the preview song packs
            List <IBeatmapLevelPack> levelPacks = new List <IBeatmapLevelPack>();

            levelPacks.AddRange((BeatmapLevelPackSO[])original.GetField("_beatmapLevelPacks"));
            levelPacks.AddRange((PreviewBeatmapLevelPackSO[])original.GetField("_previewBeatmapLevelPack"));
            newCollection._allBeatmapLevelPacks = levelPacks.ToArray();


            newCollection.UpdateArray();
            newCollection.ReplaceReferences();
            return(newCollection);
        }