#region Copyright & License Information /* * Copyright 2007-2014 The OpenRA Developers (see AUTHORS) * This file is part of OpenRA, which is free software. It is made * available to you under the terms of the GNU General Public License * as published by the Free Software Foundation. For more information, * see COPYING. */ #endregion using System; using System.Collections.Generic; using System.Linq; using OpenRA.GameRules; namespace OpenRA { public class ModRuleset { public readonly IReadOnlyDictionary Music; public readonly IReadOnlyDictionary Movies; public readonly IReadOnlyDictionary TileSets; public ModRuleset(ModRuleset other) { this.Music = other.Music; this.Movies = other.Movies; this.TileSets = other.TileSets; } public ModRuleset( IDictionary music, IDictionary movies, IDictionary tileSets) { this.Music = new ReadOnlyDictionary(music); this.Movies = new ReadOnlyDictionary(movies); this.TileSets = new ReadOnlyDictionary(tileSets); } public IEnumerable> InstalledMusic { get { return Music.Where(m => m.Value.Exists); } } } public class MapRuleset : ModRuleset { public readonly IReadOnlyDictionary Actors; public readonly IReadOnlyDictionary Weapons; public readonly IReadOnlyDictionary Voices; public readonly IReadOnlyDictionary Notifications; public MapRuleset( ModRuleset modRuleset, IDictionary actors, IDictionary weapons, IDictionary voices, IDictionary notifications) : base(modRuleset) { this.Actors = new ReadOnlyDictionary(actors); this.Weapons = new ReadOnlyDictionary(weapons); this.Voices = new ReadOnlyDictionary(voices); this.Notifications = new ReadOnlyDictionary(notifications); } } }