/// <summary> /// Populate UI from song data /// </summary> public void LoadFromSong() { nameField.text = Song.songName; subNameField.text = Song.songSubName; songAuthorField.text = Song.songAuthorName; authorField.text = Song.levelAuthorName; BroadcastMessage("OnValidate"); // god unity why are you so dumb coverImageField.text = Song.coverImageFilename; audioPath.text = Song.songFilename; offset.text = Song.songTimeOffset.ToString(CultureInfo.InvariantCulture); if (Song.songTimeOffset > 0) { PersistentUI.Instance.ShowDialogBox("SongEditMenu", "songtimeoffset.warning", null, PersistentUI.DialogBoxPresetType.Ok); } bpmField.text = Song.beatsPerMinute.ToString(CultureInfo.InvariantCulture); prevStartField.text = Song.previewStartTime.ToString(CultureInfo.InvariantCulture); prevDurField.text = Song.previewDuration.ToString(CultureInfo.InvariantCulture); environmentDropdown.ClearOptions(); environmentDropdown.AddOptions(VanillaEnvironments.Select(it => it.humanName).ToList()); environmentDropdown.value = GetEnvironmentIDFromString(Song.environmentName); customPlatformsDropdown.ClearOptions(); customPlatformsDropdown.AddOptions(new List <String> { "None" }); customPlatformsDropdown.AddOptions(CustomPlatformsLoader.Instance.GetAllEnvironmentIds()); customPlatformsDropdown.value = CustomPlatformFromSong(); if (customPlatformsDropdown.value == 0) { customPlatformsDropdown.captionText.text = "None"; } contributorController.UndoChanges(); ReloadAudio(); }