Include add/replace playlist entries support using map.yaml

This commit is contained in:
atlimit8
2015-09-29 15:41:24 -05:00
parent 8c6872fff0
commit f6180d7fa4
3 changed files with 17 additions and 4 deletions

View File

@@ -15,6 +15,7 @@ using Eluant;
using OpenRA.Effects;
using OpenRA.FileFormats;
using OpenRA.FileSystem;
using OpenRA.GameRules;
using OpenRA.Graphics;
using OpenRA.Mods.Common.Effects;
using OpenRA.Mods.Common.Traits;
@@ -55,14 +56,22 @@ namespace OpenRA.Mods.Common.Scripting
}
Action onComplete;
[Desc("Play track defined in music.yaml or keep it empty for a random song.")]
[Desc("Play track defined in music.yaml or map.yaml, or keep track empty for playing a random song.")]
public void PlayMusic(string track = null, LuaFunction func = null)
{
if (!playlist.IsMusicAvailable)
return;
var musicInfo = !string.IsNullOrEmpty(track) ? world.Map.Rules.Music[track]
: playlist.GetNextSong();
MusicInfo musicInfo;
if (string.IsNullOrEmpty(track))
musicInfo = playlist.GetNextSong();
else if (world.Map.Rules.Music.ContainsKey(track))
musicInfo = world.Map.Rules.Music[track];
else
{
Log.Write("lua", "Missing music track: " + track);
return;
}
if (func != null)
{