/// <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); }