From 895f02d7cbbf8f0322f767b75a9cc9db4a1c3306 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Mon, 22 Dec 2014 21:32:07 +0100 Subject: [PATCH] update the music player widget when the music changes --- OpenRA.Mods.RA/Widgets/Logic/MusicPlayerLogic.cs | 13 +++++++++++++ mods/cnc/chrome/music.yaml | 1 + mods/ra/chrome/musicplayer.yaml | 1 + 3 files changed, 15 insertions(+) diff --git a/OpenRA.Mods.RA/Widgets/Logic/MusicPlayerLogic.cs b/OpenRA.Mods.RA/Widgets/Logic/MusicPlayerLogic.cs index 930009129b..40466bffe8 100644 --- a/OpenRA.Mods.RA/Widgets/Logic/MusicPlayerLogic.cs +++ b/OpenRA.Mods.RA/Widgets/Logic/MusicPlayerLogic.cs @@ -11,6 +11,7 @@ using System; using System.Linq; using OpenRA.GameRules; +using OpenRA.Mods.Common.Widgets; using OpenRA.Traits; using OpenRA.Widgets; @@ -96,6 +97,18 @@ namespace OpenRA.Mods.RA.Widgets.Logic installButton.IsVisible = () => modRules.InstalledMusic.ToArray().Length <= installData.ShippedSoundtracks; } + var songWatcher = widget.GetOrNull("SONG_WATCHER"); + if (songWatcher != null) + { + songWatcher.OnTick = () => + { + if (Sound.CurrentMusic == null || currentSong == Sound.CurrentMusic) + return; + + currentSong = Sound.CurrentMusic; + }; + } + panel.Get("BACK_BUTTON").OnClick = () => { Game.Settings.Save(); Ui.CloseWindow(); onExit(); }; } diff --git a/mods/cnc/chrome/music.yaml b/mods/cnc/chrome/music.yaml index b7faa30885..8e8c1dbe59 100644 --- a/mods/cnc/chrome/music.yaml +++ b/mods/cnc/chrome/music.yaml @@ -5,6 +5,7 @@ Container@MUSIC_PANEL: Width: 360 Height: 435 Children: + LogicTicker@SONG_WATCHER: Label@TITLE: Width: 360 Y: 0-25 diff --git a/mods/ra/chrome/musicplayer.yaml b/mods/ra/chrome/musicplayer.yaml index 5189cdc0f8..474b41b11b 100644 --- a/mods/ra/chrome/musicplayer.yaml +++ b/mods/ra/chrome/musicplayer.yaml @@ -5,6 +5,7 @@ Background@MUSIC_PANEL: Width: 360 Height: 450 Children: + LogicTicker@SONG_WATCHER: ScrollPanel@MUSIC_LIST: X: 15 Y: 45