From ff2aabda9bd99af80e409f24b905b18716f1da7d Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Wed, 17 Feb 2016 02:43:10 +0000 Subject: [PATCH 1/3] Remove ModRules assumption from editor code. --- .../Widgets/Logic/Editor/LayerSelectorLogic.cs | 12 +++++------- .../Widgets/Logic/Editor/NewMapLogic.cs | 8 ++++---- .../Widgets/Logic/Editor/TileSelectorLogic.cs | 5 +++-- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/OpenRA.Mods.Common/Widgets/Logic/Editor/LayerSelectorLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Editor/LayerSelectorLogic.cs index e419aa5cd4..63c697dde6 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/Editor/LayerSelectorLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/Editor/LayerSelectorLogic.cs @@ -19,7 +19,6 @@ namespace OpenRA.Mods.Common.Widgets.Logic public class LayerSelectorLogic : ChromeLogic { readonly EditorViewportControllerWidget editor; - readonly Ruleset modRules; readonly World world; readonly WorldRenderer worldRenderer; @@ -27,9 +26,8 @@ namespace OpenRA.Mods.Common.Widgets.Logic readonly ScrollItemWidget layerPreviewTemplate; [ObjectCreator.UseCtor] - public LayerSelectorLogic(Widget widget, WorldRenderer worldRenderer, Ruleset modRules) + public LayerSelectorLogic(Widget widget, WorldRenderer worldRenderer) { - this.modRules = modRules; this.worldRenderer = worldRenderer; world = worldRenderer.World; @@ -45,8 +43,9 @@ namespace OpenRA.Mods.Common.Widgets.Logic void IntializeLayerPreview(Widget widget) { layerTemplateList.RemoveChildren(); - - var resources = modRules.Actors["world"].TraitInfos(); + var rules = worldRenderer.World.Map.Rules; + var resources = rules.Actors["world"].TraitInfos(); + var tileSize = worldRenderer.World.Map.Grid.TileSize; foreach (var resource in resources) { var newResourcePreviewTemplate = ScrollItemWidget.Setup(layerPreviewTemplate, @@ -61,12 +60,11 @@ namespace OpenRA.Mods.Common.Widgets.Logic layerPreview.GetPalette = () => resource.Palette; var variant = resource.Variants.FirstOrDefault(); - var sequenceProvider = modRules.Sequences[world.TileSet.Id]; + var sequenceProvider = rules.Sequences[world.TileSet.Id]; var sequence = sequenceProvider.GetSequence("resources", variant); var frame = sequence.Frames != null ? sequence.Frames.Last() : resource.MaxDensity - 1; layerPreview.GetSprite = () => sequence.GetSprite(frame); - var tileSize = Game.ModData.Manifest.Get().TileSize; layerPreview.Bounds.Width = tileSize.Width; layerPreview.Bounds.Height = tileSize.Height; newResourcePreviewTemplate.Bounds.Width = tileSize.Width + (layerPreview.Bounds.X * 2); diff --git a/OpenRA.Mods.Common/Widgets/Logic/Editor/NewMapLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Editor/NewMapLogic.cs index 8a455ba667..53b4241590 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/Editor/NewMapLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/Editor/NewMapLogic.cs @@ -20,14 +20,14 @@ namespace OpenRA.Mods.Common.Widgets.Logic Widget panel; [ObjectCreator.UseCtor] - public NewMapLogic(Action onExit, Action onSelect, Ruleset modRules, Widget widget, World world) + public NewMapLogic(Action onExit, Action onSelect, Widget widget, World world) { panel = widget; panel.Get("CANCEL_BUTTON").OnClick = () => { Ui.CloseWindow(); onExit(); }; var tilesetDropDown = panel.Get("TILESET"); - var tilesets = modRules.TileSets.Select(t => t.Key).ToList(); + var tilesets = world.Map.Rules.TileSets.Select(t => t.Key).ToList(); Func setupItem = (option, template) => { var item = ScrollItemWidget.Setup(template, @@ -55,7 +55,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic height = Math.Max(2, height); var maxTerrainHeight = world.Map.Grid.MaximumTerrainHeight; - var tileset = modRules.TileSets[tilesetDropDown.Text]; + var tileset = world.Map.Rules.TileSets[tilesetDropDown.Text]; var map = new Map(Game.ModData, tileset, width + 2, height + maxTerrainHeight + 2); var tl = new PPos(1, 1); @@ -63,7 +63,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic map.SetBounds(tl, br); map.PlayerDefinitions = new MapPlayers(map.Rules, map.SpawnPoints.Value.Length).ToMiniYaml(); - map.FixOpenAreas(modRules); + map.FixOpenAreas(world.Map.Rules); Action afterSave = uid => { diff --git a/OpenRA.Mods.Common/Widgets/Logic/Editor/TileSelectorLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Editor/TileSelectorLogic.cs index 135c2b9201..257e61aa8f 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/Editor/TileSelectorLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/Editor/TileSelectorLogic.cs @@ -23,9 +23,10 @@ namespace OpenRA.Mods.Common.Widgets.Logic readonly ScrollItemWidget itemTemplate; [ObjectCreator.UseCtor] - public TileSelectorLogic(Widget widget, WorldRenderer worldRenderer, Ruleset modRules) + public TileSelectorLogic(Widget widget, WorldRenderer worldRenderer) { - var tileset = modRules.TileSets[worldRenderer.World.Map.Tileset]; + var rules = worldRenderer.World.Map.Rules; + var tileset = rules.TileSets[worldRenderer.World.Map.Tileset]; editor = widget.Parent.Get("MAP_EDITOR"); panel = widget.Get("TILETEMPLATE_LIST"); From 84b470017f0d4e7cb4eede0e2d3ea0c3a7840c46 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Wed, 17 Feb 2016 02:39:13 +0000 Subject: [PATCH 2/3] Remove static Game.ModData references from widget logic. --- OpenRA.Game/Widgets/WidgetLoader.cs | 3 +++ .../Widgets/Logic/CncMainMenuLogic.cs | 4 +-- .../Widgets/Logic/AssetBrowserLogic.cs | 5 ++-- .../Widgets/Logic/ColorPickerLogic.cs | 4 +-- .../Widgets/Logic/CreditsLogic.cs | 3 +-- .../Widgets/Logic/Editor/SaveMapLogic.cs | 4 +-- .../Logic/Ingame/GameInfoBriefingLogic.cs | 4 +-- .../Widgets/Logic/Ingame/IngameMenuLogic.cs | 4 +-- .../Logic/Installation/InstallFromCDLogic.cs | 8 +++--- .../Widgets/Logic/Lobby/LobbyLogic.cs | 9 ++++--- .../Logic/Lobby/LobbyMapPreviewLogic.cs | 4 +-- .../Widgets/Logic/MainMenuLogic.cs | 12 ++++----- .../Widgets/Logic/MapChooserLogic.cs | 19 ++++++++------ .../Widgets/Logic/MissionBrowserLogic.cs | 6 ++--- .../Widgets/Logic/ModBrowserLogic.cs | 4 +-- .../Widgets/Logic/MultiplayerLogic.cs | 10 ++++--- .../Widgets/Logic/MusicPlayerLogic.cs | 6 ++--- .../Widgets/Logic/ReplayBrowserLogic.cs | 4 +-- .../Widgets/Logic/ServerCreationLogic.cs | 6 ++--- .../Widgets/Logic/SettingsLogic.cs | 26 +++++++++++-------- 20 files changed, 78 insertions(+), 67 deletions(-) diff --git a/OpenRA.Game/Widgets/WidgetLoader.cs b/OpenRA.Game/Widgets/WidgetLoader.cs index 0a6a941710..cc873bfc6c 100644 --- a/OpenRA.Game/Widgets/WidgetLoader.cs +++ b/OpenRA.Game/Widgets/WidgetLoader.cs @@ -49,6 +49,9 @@ namespace OpenRA if (!args.ContainsKey("modRules")) args = new WidgetArgs(args) { { "modRules", modData.DefaultRules } }; + if (!args.ContainsKey("modData")) + args = new WidgetArgs(args) { { "modData", modData } }; + var widget = NewWidget(node.Key, args); if (parent != null) diff --git a/OpenRA.Mods.Cnc/Widgets/Logic/CncMainMenuLogic.cs b/OpenRA.Mods.Cnc/Widgets/Logic/CncMainMenuLogic.cs index d8153baaf1..c068bb9114 100644 --- a/OpenRA.Mods.Cnc/Widgets/Logic/CncMainMenuLogic.cs +++ b/OpenRA.Mods.Cnc/Widgets/Logic/CncMainMenuLogic.cs @@ -18,8 +18,8 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic public class CncMainMenuLogic : MainMenuLogic { [ObjectCreator.UseCtor] - public CncMainMenuLogic(Widget widget, World world) - : base(widget, world) + public CncMainMenuLogic(Widget widget, World world, ModData modData) + : base(widget, world, modData) { var shellmapDecorations = widget.Get("SHELLMAP_DECORATIONS"); shellmapDecorations.IsVisible = () => menuType != MenuType.None && Game.Settings.Game.ShowShellmap; diff --git a/OpenRA.Mods.Common/Widgets/Logic/AssetBrowserLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/AssetBrowserLogic.cs index 0f77759ec6..a0d8bcf39d 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/AssetBrowserLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/AssetBrowserLogic.cs @@ -48,11 +48,10 @@ namespace OpenRA.Mods.Common.Widgets.Logic int currentFrame; [ObjectCreator.UseCtor] - public AssetBrowserLogic(Widget widget, Action onExit, World world, Dictionary logicArgs) + public AssetBrowserLogic(Widget widget, Action onExit, ModData modData, World world, Dictionary logicArgs) { this.world = world; - modData = Game.ModData; - + this.modData = modData; panel = widget; var ticker = panel.GetOrNull("ANIMATION_TICKER"); diff --git a/OpenRA.Mods.Common/Widgets/Logic/ColorPickerLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/ColorPickerLogic.cs index a447409949..0558ae2250 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/ColorPickerLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/ColorPickerLogic.cs @@ -20,7 +20,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic public class ColorPickerLogic : ChromeLogic { [ObjectCreator.UseCtor] - public ColorPickerLogic(Widget widget, World world, HSLColor initialColor, Action onChange, WorldRenderer worldRenderer) + public ColorPickerLogic(Widget widget, ModData modData, World world, HSLColor initialColor, Action onChange, WorldRenderer worldRenderer) { string actorType; if (!ChromeMetrics.TryGet("ColorPickerActorType", out actorType)) @@ -57,7 +57,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic }; // Set the initial state - var validator = Game.ModData.Manifest.Get(); + var validator = modData.Manifest.Get(); mixer.SetPaletteRange(validator.HsvSaturationRange[0], validator.HsvSaturationRange[1], validator.HsvValueRange[0], validator.HsvValueRange[1]); mixer.Set(initialColor); diff --git a/OpenRA.Mods.Common/Widgets/Logic/CreditsLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/CreditsLogic.cs index 102b7d7edb..d41d59887c 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/CreditsLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/CreditsLogic.cs @@ -18,10 +18,9 @@ namespace OpenRA.Mods.Common.Widgets.Logic public class CreditsLogic : ChromeLogic { [ObjectCreator.UseCtor] - public CreditsLogic(Widget widget, Action onExit) + public CreditsLogic(Widget widget, ModData modData, Action onExit) { var panel = widget.Get("CREDITS_PANEL"); - var modData = Game.ModData; panel.Get("BACK_BUTTON").OnClick = () => { diff --git a/OpenRA.Mods.Common/Widgets/Logic/Editor/SaveMapLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Editor/SaveMapLogic.cs index be817544d8..db20d5f782 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/Editor/SaveMapLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/Editor/SaveMapLogic.cs @@ -29,9 +29,9 @@ namespace OpenRA.Mods.Common.Widgets.Logic } [ObjectCreator.UseCtor] - public SaveMapLogic(Widget widget, Action onSave, Action onExit, Map map, List playerDefinitions, List actorDefinitions) + public SaveMapLogic(Widget widget, ModData modData, Action onSave, Action onExit, + Map map, List playerDefinitions, List actorDefinitions) { - var modData = Game.ModData; var title = widget.Get("TITLE"); title.Text = map.Title; diff --git a/OpenRA.Mods.Common/Widgets/Logic/Ingame/GameInfoBriefingLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Ingame/GameInfoBriefingLogic.cs index 8de4bf5b0e..ef0622cff6 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/Ingame/GameInfoBriefingLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/Ingame/GameInfoBriefingLogic.cs @@ -16,10 +16,10 @@ namespace OpenRA.Mods.Common.Widgets.Logic class GameInfoBriefingLogic : ChromeLogic { [ObjectCreator.UseCtor] - public GameInfoBriefingLogic(Widget widget, World world) + public GameInfoBriefingLogic(Widget widget, ModData modData, World world) { var previewWidget = widget.Get("MAP_PREVIEW"); - previewWidget.Preview = () => Game.ModData.MapCache[world.Map.Uid]; + previewWidget.Preview = () => modData.MapCache[world.Map.Uid]; var mapDescriptionPanel = widget.Get("MAP_DESCRIPTION_PANEL"); var mapDescription = widget.Get("MAP_DESCRIPTION"); diff --git a/OpenRA.Mods.Common/Widgets/Logic/Ingame/IngameMenuLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Ingame/IngameMenuLogic.cs index 7c9d9a79eb..fd96c28d10 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/Ingame/IngameMenuLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/Ingame/IngameMenuLogic.cs @@ -24,7 +24,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic Widget menu; [ObjectCreator.UseCtor] - public IngameMenuLogic(Widget widget, World world, Action onExit, WorldRenderer worldRenderer, IngameInfoPanel activePanel) + public IngameMenuLogic(Widget widget, ModData modData, World world, Action onExit, WorldRenderer worldRenderer, IngameInfoPanel activePanel) { var leaving = false; menu = widget.Get("INGAME_MENU"); @@ -32,7 +32,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic if (mpe != null) mpe.Fade(mpe.Info.MenuEffect); - menu.Get("VERSION_LABEL").Text = Game.ModData.Manifest.Mod.Version; + menu.Get("VERSION_LABEL").Text = modData.Manifest.Mod.Version; var hideMenu = false; menu.Get("MENU_BUTTONS").IsVisible = () => !hideMenu; diff --git a/OpenRA.Mods.Common/Widgets/Logic/Installation/InstallFromCDLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Installation/InstallFromCDLogic.cs index 3a3a2c8991..e1de4d41fb 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/Installation/InstallFromCDLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/Installation/InstallFromCDLogic.cs @@ -20,6 +20,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic { public class InstallFromCDLogic : ChromeLogic { + readonly ModData modData; readonly string modId; readonly Widget panel; readonly ProgressBarWidget progressBar; @@ -30,8 +31,9 @@ namespace OpenRA.Mods.Common.Widgets.Logic readonly ContentInstaller installData; [ObjectCreator.UseCtor] - public InstallFromCDLogic(Widget widget, Action afterInstall, string modId) + public InstallFromCDLogic(Widget widget, ModData modData, Action afterInstall, string modId) { + this.modData = modData; this.modId = modId; installData = ModMetadata.AllMods[modId].Content; this.afterInstall = afterInstall; @@ -92,11 +94,10 @@ namespace OpenRA.Mods.Common.Widgets.Logic insertDiskContainer.IsVisible = () => false; installingContainer.IsVisible = () => true; progressBar.Percentage = 0; - var modData = Game.ModData; new Thread(() => { - using (var cabExtractor = new InstallShieldCABExtractor(Game.ModData.ModFiles, source)) + using (var cabExtractor = new InstallShieldCABExtractor(modData.ModFiles, source)) { var denom = installData.InstallShieldCABFileIds.Count; var extractFiles = installData.ExtractFilesFromCD; @@ -152,7 +153,6 @@ namespace OpenRA.Mods.Common.Widgets.Logic retryButton.IsDisabled = () => true; insertDiskContainer.IsVisible = () => false; installingContainer.IsVisible = () => true; - var modData = Game.ModData; var dest = Platform.ResolvePath("^", "Content", modId); var copyFiles = installData.CopyFilesFromCD; diff --git a/OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyLogic.cs index b25e53f593..90819d8c33 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyLogic.cs @@ -30,6 +30,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic public MapPreview MapPreview { get; private set; } public Map Map { get; private set; } + readonly ModData modData; readonly Action onStart; readonly Action onExit; readonly OrderManager orderManager; @@ -110,11 +111,12 @@ namespace OpenRA.Mods.Common.Widgets.Logic } [ObjectCreator.UseCtor] - internal LobbyLogic(Widget widget, WorldRenderer worldRenderer, OrderManager orderManager, + internal LobbyLogic(Widget widget, ModData modData, WorldRenderer worldRenderer, OrderManager orderManager, Action onExit, Action onStart, bool skirmishMode, Ruleset modRules) { MapPreview = MapCache.UnknownMap; lobby = widget; + this.modData = modData; this.orderManager = orderManager; this.onStart = onStart; this.onExit = onExit; @@ -511,7 +513,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic var gameSpeed = optionsBin.GetOrNull("GAMESPEED_DROPDOWNBUTTON"); if (gameSpeed != null) { - var speeds = Game.ModData.Manifest.Get().Speeds; + var speeds = modData.Manifest.Get().Speeds; gameSpeed.IsDisabled = configurationDisabled; gameSpeed.GetText = () => @@ -738,7 +740,6 @@ namespace OpenRA.Mods.Common.Widgets.Logic if (MapPreview.Uid == uid) return; - var modData = Game.ModData; MapPreview = modData.MapCache[uid]; Map = null; if (MapPreview.Status == MapStatus.Available) @@ -768,7 +769,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic }).Start(); } else if (Game.Settings.Game.AllowDownloading) - Game.ModData.MapCache.QueryRemoteMapDetails(new[] { uid }); + modData.MapCache.QueryRemoteMapDetails(new[] { uid }); } void UpdatePlayerList() diff --git a/OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyMapPreviewLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyMapPreviewLogic.cs index 490f13d021..e2bb6719ca 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyMapPreviewLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyMapPreviewLogic.cs @@ -21,7 +21,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic int blinkTick; [ObjectCreator.UseCtor] - internal LobbyMapPreviewLogic(Widget widget, OrderManager orderManager, LobbyLogic lobby) + internal LobbyMapPreviewLogic(Widget widget, ModData modData, OrderManager orderManager, LobbyLogic lobby) { var available = widget.GetOrNull("MAP_AVAILABLE"); if (available != null) @@ -162,7 +162,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic if (lobby.MapPreview.Status == MapStatus.DownloadError) lobby.MapPreview.Install(); else if (lobby.MapPreview.Status == MapStatus.Unavailable) - Game.ModData.MapCache.QueryRemoteMapDetails(new[] { lobby.MapPreview.Uid }); + modData.MapCache.QueryRemoteMapDetails(new[] { lobby.MapPreview.Uid }); }; retry.GetText = () => lobby.MapPreview.Status == MapStatus.DownloadError ? "Retry Install" : "Retry Search"; diff --git a/OpenRA.Mods.Common/Widgets/Logic/MainMenuLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/MainMenuLogic.cs index 2e5be75d87..64a323734f 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/MainMenuLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/MainMenuLogic.cs @@ -41,10 +41,10 @@ namespace OpenRA.Mods.Common.Widgets.Logic } [ObjectCreator.UseCtor] - public MainMenuLogic(Widget widget, World world) + public MainMenuLogic(Widget widget, World world, ModData modData) { rootMenu = widget; - rootMenu.Get("VERSION_LABEL").Text = Game.ModData.Manifest.Mod.Version; + rootMenu.Get("VERSION_LABEL").Text = modData.Manifest.Mod.Version; // Menu buttons var mainMenu = widget.Get("MAIN_MENU"); @@ -70,7 +70,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic // so we can't do this inside the input handler. Game.RunAfterTick(() => { - Game.Settings.Game.PreviousMod = Game.ModData.Manifest.Mod.Id; + Game.Settings.Game.PreviousMod = modData.Manifest.Mod.Id; Game.InitializeMod("modchooser", null); }); }; @@ -103,8 +103,8 @@ namespace OpenRA.Mods.Common.Widgets.Logic }); }; - var hasCampaign = Game.ModData.Manifest.Missions.Any(); - var hasMissions = Game.ModData.MapCache + var hasCampaign = modData.Manifest.Missions.Any(); + var hasMissions = modData.MapCache .Any(p => p.Status == MapStatus.Available && p.Visibility.HasFlag(MapVisibility.MissionSelector)); missionsButton.Disabled = !hasCampaign && !hasMissions; @@ -168,7 +168,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic var onSelect = new Action(uid => { RemoveShellmapUI(); - LoadMapIntoEditor(Game.ModData.MapCache[uid].Uid); + LoadMapIntoEditor(modData.MapCache[uid].Uid); }); var newMapButton = widget.Get("NEW_MAP_BUTTON"); diff --git a/OpenRA.Mods.Common/Widgets/Logic/MapChooserLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/MapChooserLogic.cs index ee576f8401..9149a2fde1 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/MapChooserLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/MapChooserLogic.cs @@ -23,6 +23,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic { readonly Widget widget; readonly DropDownButtonWidget gameModeDropdown; + readonly ModData modData; MapClassification currentTab; @@ -38,9 +39,11 @@ namespace OpenRA.Mods.Common.Widgets.Logic string mapFilter; [ObjectCreator.UseCtor] - internal MapChooserLogic(Widget widget, string initialMap, MapClassification initialTab, Action onExit, Action onSelect, MapVisibility filter) + internal MapChooserLogic(Widget widget, ModData modData, string initialMap, + MapClassification initialTab, Action onExit, Action onSelect, MapVisibility filter) { this.widget = widget; + this.modData = modData; this.onSelect = onSelect; var approving = new Action(() => { Ui.CloseWindow(); onSelect(selectedUid); }); @@ -93,7 +96,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic } var deleteMapButton = widget.Get("DELETE_MAP_BUTTON"); - deleteMapButton.IsDisabled = () => Game.ModData.MapCache[selectedUid].Class != MapClassification.User; + deleteMapButton.IsDisabled = () => modData.MapCache[selectedUid].Class != MapClassification.User; deleteMapButton.IsVisible = () => currentTab == MapClassification.User; deleteMapButton.OnClick = () => { @@ -102,7 +105,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic RefreshMaps(currentTab, filter); EnumerateMaps(currentTab, itemTemplate); if (!tabMaps[currentTab].Any()) - SwitchTab(Game.ModData.MapCache[newUid].Class, itemTemplate); + SwitchTab(modData.MapCache[newUid].Class, itemTemplate); }); }; @@ -114,7 +117,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic { RefreshMaps(currentTab, filter); EnumerateMaps(currentTab, itemTemplate); - SwitchTab(Game.ModData.MapCache[newUid].Class, itemTemplate); + SwitchTab(modData.MapCache[newUid].Class, itemTemplate); }); }; @@ -143,7 +146,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic void RefreshMaps(MapClassification tab, MapVisibility filter) { - tabMaps[tab] = Game.ModData.MapCache.Where(m => m.Status == MapStatus.Available && + tabMaps[tab] = modData.MapCache.Where(m => m.Status == MapStatus.Available && m.Class == tab && (m.Visibility & filter) != 0).ToArray(); } @@ -285,7 +288,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic string DeleteMap(string map) { - var path = Game.ModData.MapCache[map].Package.Name; + var path = modData.MapCache[map].Package.Name; try { if (File.Exists(path)) @@ -293,7 +296,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic else if (Directory.Exists(path)) Directory.Delete(path, true); - Game.ModData.MapCache[map].Invalidate(); + modData.MapCache[map].Invalidate(); if (selectedUid == map) selectedUid = WidgetUtils.ChooseInitialMap(tabMaps[currentTab].Select(mp => mp.Uid).FirstOrDefault()); @@ -311,7 +314,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic { ConfirmationDialogs.PromptConfirmAction( title: "Delete map", - text: "Delete the map '{0}'?".F(Game.ModData.MapCache[map].Title), + text: "Delete the map '{0}'?".F(modData.MapCache[map].Title), onConfirm: () => { var newUid = DeleteMap(map); diff --git a/OpenRA.Mods.Common/Widgets/Logic/MissionBrowserLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/MissionBrowserLogic.cs index 483cc0d98d..2baa8bfa2f 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/MissionBrowserLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/MissionBrowserLogic.cs @@ -53,10 +53,10 @@ namespace OpenRA.Mods.Common.Widgets.Logic string gameSpeed; [ObjectCreator.UseCtor] - public MissionBrowserLogic(Widget widget, World world, Action onStart, Action onExit) + public MissionBrowserLogic(Widget widget, ModData modData, World world, Action onStart, Action onExit) { - modData = Game.ModData; mapCache = new Cache(p => new Map(modData, p.Package)); + this.modData = modData; this.onStart = onStart; missionList = widget.Get("MISSION_LIST"); @@ -230,7 +230,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic if (gameSpeedButton != null) { - var speeds = Game.ModData.Manifest.Get().Speeds; + var speeds = modData.Manifest.Get().Speeds; gameSpeed = "default"; gameSpeedButton.GetText = () => speeds[gameSpeed].Name; diff --git a/OpenRA.Mods.Common/Widgets/Logic/ModBrowserLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/ModBrowserLogic.cs index 53b9f5121e..c766f1d4cc 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/ModBrowserLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/ModBrowserLogic.cs @@ -38,7 +38,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic int modOffset = 0; [ObjectCreator.UseCtor] - public ModBrowserLogic(Widget widget) + public ModBrowserLogic(Widget widget, ModData modData) { modInstallStatus = new Cache(IsModInstalled); modPrerequisitesFulfilled = new Cache(Game.IsModInstalled); @@ -46,7 +46,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic modChooserPanel = widget; loadButton = modChooserPanel.Get("LOAD_BUTTON"); loadButton.OnClick = () => LoadMod(selectedMod); - loadButton.IsDisabled = () => selectedMod.Id == Game.ModData.Manifest.Mod.Id; + loadButton.IsDisabled = () => selectedMod.Id == modData.Manifest.Mod.Id; modChooserPanel.Get("QUIT_BUTTON").OnClick = Game.Exit; diff --git a/OpenRA.Mods.Common/Widgets/Logic/MultiplayerLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/MultiplayerLogic.cs index 302c39ac79..86730c90d7 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/MultiplayerLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/MultiplayerLogic.cs @@ -36,6 +36,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic readonly Color incompatibleGameStartedColor; readonly Color gameStartedColor; readonly Color incompatibleGameColor; + readonly ModData modData; GameServer currentServer; MapPreview currentMap; @@ -68,8 +69,9 @@ namespace OpenRA.Mods.Common.Widgets.Logic } [ObjectCreator.UseCtor] - public MultiplayerLogic(Widget widget, Action onStart, Action onExit, string directConnectHost, int directConnectPort) + public MultiplayerLogic(Widget widget, ModData modData, Action onStart, Action onExit, string directConnectHost, int directConnectPort) { + this.modData = modData; this.onStart = onStart; this.onExit = onExit; @@ -321,7 +323,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic return 0; // Games for the current mod+version are sorted first - if (testEntry.ModId == Game.ModData.Manifest.Mod.Id) + if (testEntry.ModId == modData.Manifest.Mod.Id) return 2; // Followed by games for different mods that are joinable @@ -331,7 +333,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic void SelectServer(GameServer server) { currentServer = server; - currentMap = server != null ? Game.ModData.MapCache[server.Map] : null; + currentMap = server != null ? modData.MapCache[server.Map] : null; } void RefreshServerListInner(IEnumerable games) @@ -438,7 +440,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic // Search for any unknown maps if (Game.Settings.Game.AllowDownloading) - Game.ModData.MapCache.QueryRemoteMapDetails(games.Where(g => !Filtered(g)).Select(g => g.Map)); + modData.MapCache.QueryRemoteMapDetails(games.Where(g => !Filtered(g)).Select(g => g.Map)); foreach (var row in rows) serverList.AddChild(row); diff --git a/OpenRA.Mods.Common/Widgets/Logic/MusicPlayerLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/MusicPlayerLogic.cs index 727cadfb29..590a454d68 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/MusicPlayerLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/MusicPlayerLogic.cs @@ -26,7 +26,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic MusicInfo currentSong = null; [ObjectCreator.UseCtor] - public MusicPlayerLogic(Widget widget, Ruleset modRules, World world, Action onExit) + public MusicPlayerLogic(Widget widget, ModData modData, Ruleset modRules, World world, Action onExit) { var panel = widget; @@ -107,11 +107,11 @@ namespace OpenRA.Mods.Common.Widgets.Logic if (installButton != null) { installButton.IsDisabled = () => world.Type != WorldType.Shellmap; - var args = new[] { "installMusic={0}".F(Game.ModData.Manifest.Mod.Id) }; + var args = new[] { "installMusic={0}".F(modData.Manifest.Mod.Id) }; installButton.OnClick = () => Game.RunAfterTick(() => Game.InitializeMod("modchooser", new Arguments(args))); - var installData = Game.ModData.Manifest.Get(); + var installData = modData.Manifest.Get(); installButton.IsVisible = () => modRules.InstalledMusic.ToArray().Length <= installData.ShippedSoundtracks; } diff --git a/OpenRA.Mods.Common/Widgets/Logic/ReplayBrowserLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/ReplayBrowserLogic.cs index 5365a746b5..6a627779a4 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/ReplayBrowserLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/ReplayBrowserLogic.cs @@ -39,7 +39,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic volatile bool cancelLoadingReplays; [ObjectCreator.UseCtor] - public ReplayBrowserLogic(Widget widget, Action onExit, Action onStart) + public ReplayBrowserLogic(Widget widget, ModData modData, Action onExit, Action onStart) { panel = widget; @@ -55,7 +55,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic replayList = panel.Get("REPLAY_LIST"); var template = panel.Get("REPLAY_TEMPLATE"); - var mod = Game.ModData.Manifest.Mod; + var mod = modData.Manifest.Mod; var dir = Platform.ResolvePath("^", "Replays", mod.Id, mod.Version); if (Directory.Exists(dir)) diff --git a/OpenRA.Mods.Common/Widgets/Logic/ServerCreationLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/ServerCreationLogic.cs index 64c5f2b964..78f23e20d9 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/ServerCreationLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/ServerCreationLogic.cs @@ -25,14 +25,14 @@ namespace OpenRA.Mods.Common.Widgets.Logic bool allowPortForward; [ObjectCreator.UseCtor] - public ServerCreationLogic(Widget widget, Action onExit, Action openLobby) + public ServerCreationLogic(Widget widget, ModData modData, Action onExit, Action openLobby) { panel = widget; onCreate = openLobby; this.onExit = onExit; var settings = Game.Settings; - preview = Game.ModData.MapCache[WidgetUtils.ChooseInitialMap(Game.Settings.Server.Map)]; + preview = modData.MapCache[WidgetUtils.ChooseInitialMap(Game.Settings.Server.Map)]; panel.Get("CREATE_BUTTON").OnClick = CreateAndJoin; @@ -46,7 +46,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic { "initialMap", preview.Uid }, { "initialTab", MapClassification.System }, { "onExit", () => { } }, - { "onSelect", (Action)(uid => preview = Game.ModData.MapCache[uid]) }, + { "onSelect", (Action)(uid => preview = modData.MapCache[uid]) }, { "filter", MapVisibility.Lobby }, { "onStart", () => { } } }); diff --git a/OpenRA.Mods.Common/Widgets/Logic/SettingsLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/SettingsLogic.cs index d0b5cad6ee..686153694b 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/SettingsLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/SettingsLogic.cs @@ -21,13 +21,6 @@ namespace OpenRA.Mods.Common.Widgets.Logic public class SettingsLogic : ChromeLogic { enum PanelType { Display, Audio, Input, Advanced } - Dictionary leavePanelActions = new Dictionary(); - Dictionary resetPanelActions = new Dictionary(); - PanelType settingsPanel = PanelType.Display; - Widget panelContainer, tabContainer; - - WorldRenderer worldRenderer; - SoundDevice soundDevice; static readonly string OriginalSoundDevice; static readonly string OriginalSoundEngine; @@ -36,6 +29,16 @@ namespace OpenRA.Mods.Common.Widgets.Logic static readonly int2 OriginalGraphicsWindowedSize; static readonly int2 OriginalGraphicsFullscreenSize; + readonly Dictionary leavePanelActions = new Dictionary(); + readonly Dictionary resetPanelActions = new Dictionary(); + readonly Widget panelContainer, tabContainer; + + readonly ModData modData; + readonly WorldRenderer worldRenderer; + + SoundDevice soundDevice; + PanelType settingsPanel = PanelType.Display; + static SettingsLogic() { var original = Game.Settings; @@ -48,9 +51,10 @@ namespace OpenRA.Mods.Common.Widgets.Logic } [ObjectCreator.UseCtor] - public SettingsLogic(Widget widget, Action onExit, WorldRenderer worldRenderer) + public SettingsLogic(Widget widget, Action onExit, ModData modData, WorldRenderer worldRenderer) { this.worldRenderer = worldRenderer; + this.modData = modData; panelContainer = widget.Get("SETTINGS_PANEL"); tabContainer = widget.Get("TAB_CONTAINER"); @@ -158,7 +162,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic BindCheckboxPref(panel, "PLAYER_STANCE_COLORS_CHECKBOX", gs, "UsePlayerStanceColors"); var languageDropDownButton = panel.Get("LANGUAGE_DROPDOWNBUTTON"); - languageDropDownButton.OnMouseDown = _ => ShowLanguageDropdown(languageDropDownButton); + languageDropDownButton.OnMouseDown = _ => ShowLanguageDropdown(languageDropDownButton, modData.Languages); languageDropDownButton.GetText = () => FieldLoader.Translate(ds.Language); var windowModeDropdown = panel.Get("MODE_DROPDOWN"); @@ -684,7 +688,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic return true; } - static bool ShowLanguageDropdown(DropDownButtonWidget dropdown) + static bool ShowLanguageDropdown(DropDownButtonWidget dropdown, IEnumerable languages) { Func setupItem = (o, itemTemplate) => { @@ -696,7 +700,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic return item; }; - dropdown.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 500, Game.ModData.Languages, setupItem); + dropdown.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 500, languages, setupItem); return true; } From a6c4eb330a0f14efb3f740df1404d4eaf4eaa82a Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Wed, 17 Feb 2016 02:53:15 +0000 Subject: [PATCH 3/3] Remove modRules widget logic argument. --- OpenRA.Game/Widgets/WidgetLoader.cs | 3 --- OpenRA.Mods.Common/Widgets/ButtonWidget.cs | 4 ++-- OpenRA.Mods.Common/Widgets/CheckboxWidget.cs | 4 ++-- OpenRA.Mods.Common/Widgets/DropDownButtonWidget.cs | 4 ++-- OpenRA.Mods.Common/Widgets/Logic/Ingame/IngameChatLogic.cs | 4 ++-- OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyLogic.cs | 6 ++++-- OpenRA.Mods.Common/Widgets/Logic/MusicPlayerLogic.cs | 4 ++-- OpenRA.Mods.Common/Widgets/MenuButtonWidget.cs | 4 ++-- OpenRA.Mods.Common/Widgets/ProductionTypeButtonWidget.cs | 4 ++-- OpenRA.Mods.Common/Widgets/ScrollItemWidget.cs | 4 ++-- OpenRA.Mods.Common/Widgets/ScrollPanelWidget.cs | 4 ++-- 11 files changed, 22 insertions(+), 23 deletions(-) diff --git a/OpenRA.Game/Widgets/WidgetLoader.cs b/OpenRA.Game/Widgets/WidgetLoader.cs index cc873bfc6c..73e883515a 100644 --- a/OpenRA.Game/Widgets/WidgetLoader.cs +++ b/OpenRA.Game/Widgets/WidgetLoader.cs @@ -46,9 +46,6 @@ namespace OpenRA public Widget LoadWidget(WidgetArgs args, Widget parent, MiniYamlNode node) { - if (!args.ContainsKey("modRules")) - args = new WidgetArgs(args) { { "modRules", modData.DefaultRules } }; - if (!args.ContainsKey("modData")) args = new WidgetArgs(args) { { "modData", modData } }; diff --git a/OpenRA.Mods.Common/Widgets/ButtonWidget.cs b/OpenRA.Mods.Common/Widgets/ButtonWidget.cs index 8da38c9efe..0002b84ede 100644 --- a/OpenRA.Mods.Common/Widgets/ButtonWidget.cs +++ b/OpenRA.Mods.Common/Widgets/ButtonWidget.cs @@ -60,9 +60,9 @@ namespace OpenRA.Mods.Common.Widgets protected readonly Ruleset ModRules; [ObjectCreator.UseCtor] - public ButtonWidget(Ruleset modRules) + public ButtonWidget(ModData modData) { - ModRules = modRules; + ModRules = modData.DefaultRules; GetText = () => Text; GetColor = () => TextColor; diff --git a/OpenRA.Mods.Common/Widgets/CheckboxWidget.cs b/OpenRA.Mods.Common/Widgets/CheckboxWidget.cs index 8018461cf8..7d1261097d 100644 --- a/OpenRA.Mods.Common/Widgets/CheckboxWidget.cs +++ b/OpenRA.Mods.Common/Widgets/CheckboxWidget.cs @@ -25,8 +25,8 @@ namespace OpenRA.Mods.Common.Widgets public bool HasPressedState = ChromeMetrics.Get("CheckboxPressedState"); [ObjectCreator.UseCtor] - public CheckboxWidget(Ruleset modRules) - : base(modRules) + public CheckboxWidget(ModData modData) + : base(modData) { GetCheckType = () => CheckType; } diff --git a/OpenRA.Mods.Common/Widgets/DropDownButtonWidget.cs b/OpenRA.Mods.Common/Widgets/DropDownButtonWidget.cs index 93ac4c95f0..2f8b3f1728 100644 --- a/OpenRA.Mods.Common/Widgets/DropDownButtonWidget.cs +++ b/OpenRA.Mods.Common/Widgets/DropDownButtonWidget.cs @@ -29,8 +29,8 @@ namespace OpenRA.Mods.Common.Widgets public string PanelRoot; [ObjectCreator.UseCtor] - public DropDownButtonWidget(Ruleset modRules) - : base(modRules) { } + public DropDownButtonWidget(ModData modData) + : base(modData) { } protected DropDownButtonWidget(DropDownButtonWidget widget) : base(widget) diff --git a/OpenRA.Mods.Common/Widgets/Logic/Ingame/IngameChatLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Ingame/IngameChatLogic.cs index c15888de7b..cfedf4e051 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/Ingame/IngameChatLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/Ingame/IngameChatLogic.cs @@ -39,10 +39,10 @@ namespace OpenRA.Mods.Common.Widgets.Logic bool teamChat; [ObjectCreator.UseCtor] - public IngameChatLogic(Widget widget, OrderManager orderManager, World world, Ruleset modRules) + public IngameChatLogic(Widget widget, OrderManager orderManager, World world, ModData modData) { this.orderManager = orderManager; - this.modRules = modRules; + this.modRules = modData.DefaultRules; chatTraits = world.WorldActor.TraitsImplementing().ToArray(); diff --git a/OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyLogic.cs index 90819d8c33..836b8b4ed4 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyLogic.cs @@ -112,7 +112,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic [ObjectCreator.UseCtor] internal LobbyLogic(Widget widget, ModData modData, WorldRenderer worldRenderer, OrderManager orderManager, - Action onExit, Action onStart, bool skirmishMode, Ruleset modRules) + Action onExit, Action onStart, bool skirmishMode) { MapPreview = MapCache.UnknownMap; lobby = widget; @@ -121,7 +121,9 @@ namespace OpenRA.Mods.Common.Widgets.Logic this.onStart = onStart; this.onExit = onExit; this.skirmishMode = skirmishMode; - this.modRules = modRules; + + // TODO: This needs to be reworked to support per-map tech levels, bots, etc. + this.modRules = modData.DefaultRules; shellmapWorld = worldRenderer.World; orderManager.AddChatLine += AddChatLine; diff --git a/OpenRA.Mods.Common/Widgets/Logic/MusicPlayerLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/MusicPlayerLogic.cs index 590a454d68..3274f9a060 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/MusicPlayerLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/MusicPlayerLogic.cs @@ -26,7 +26,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic MusicInfo currentSong = null; [ObjectCreator.UseCtor] - public MusicPlayerLogic(Widget widget, ModData modData, Ruleset modRules, World world, Action onExit) + public MusicPlayerLogic(Widget widget, ModData modData, World world, Action onExit) { var panel = widget; @@ -112,7 +112,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic Game.RunAfterTick(() => Game.InitializeMod("modchooser", new Arguments(args))); var installData = modData.Manifest.Get(); - installButton.IsVisible = () => modRules.InstalledMusic.ToArray().Length <= installData.ShippedSoundtracks; + installButton.IsVisible = () => modData.DefaultRules.InstalledMusic.ToArray().Length <= installData.ShippedSoundtracks; } var songWatcher = widget.GetOrNull("SONG_WATCHER"); diff --git a/OpenRA.Mods.Common/Widgets/MenuButtonWidget.cs b/OpenRA.Mods.Common/Widgets/MenuButtonWidget.cs index c11ec7d378..140fcc4fca 100644 --- a/OpenRA.Mods.Common/Widgets/MenuButtonWidget.cs +++ b/OpenRA.Mods.Common/Widgets/MenuButtonWidget.cs @@ -18,8 +18,8 @@ namespace OpenRA.Mods.Common.Widgets public readonly bool HideIngameUI = true; [ObjectCreator.UseCtor] - public MenuButtonWidget(Ruleset modRules) - : base(modRules) { } + public MenuButtonWidget(ModData modData) + : base(modData) { } protected MenuButtonWidget(MenuButtonWidget other) : base(other) diff --git a/OpenRA.Mods.Common/Widgets/ProductionTypeButtonWidget.cs b/OpenRA.Mods.Common/Widgets/ProductionTypeButtonWidget.cs index dad9c4cc04..b822a40d47 100644 --- a/OpenRA.Mods.Common/Widgets/ProductionTypeButtonWidget.cs +++ b/OpenRA.Mods.Common/Widgets/ProductionTypeButtonWidget.cs @@ -17,8 +17,8 @@ namespace OpenRA.Mods.Common.Widgets public readonly string HotkeyName; [ObjectCreator.UseCtor] - public ProductionTypeButtonWidget(Ruleset modRules) - : base(modRules) { } + public ProductionTypeButtonWidget(ModData modData) + : base(modData) { } protected ProductionTypeButtonWidget(ProductionTypeButtonWidget other) : base(other) diff --git a/OpenRA.Mods.Common/Widgets/ScrollItemWidget.cs b/OpenRA.Mods.Common/Widgets/ScrollItemWidget.cs index bb4b4c5558..b2dc28e050 100644 --- a/OpenRA.Mods.Common/Widgets/ScrollItemWidget.cs +++ b/OpenRA.Mods.Common/Widgets/ScrollItemWidget.cs @@ -20,8 +20,8 @@ namespace OpenRA.Mods.Common.Widgets public string BaseName = "scrollitem"; [ObjectCreator.UseCtor] - public ScrollItemWidget(Ruleset modRules) - : base(modRules) + public ScrollItemWidget(ModData modData) + : base(modData) { IsVisible = () => false; VisualHeight = 0; diff --git a/OpenRA.Mods.Common/Widgets/ScrollPanelWidget.cs b/OpenRA.Mods.Common/Widgets/ScrollPanelWidget.cs index 63c9f5fc47..4493e59e0e 100644 --- a/OpenRA.Mods.Common/Widgets/ScrollPanelWidget.cs +++ b/OpenRA.Mods.Common/Widgets/ScrollPanelWidget.cs @@ -86,9 +86,9 @@ namespace OpenRA.Mods.Common.Widgets } [ObjectCreator.UseCtor] - public ScrollPanelWidget(Ruleset modRules) + public ScrollPanelWidget(ModData modData) { - this.modRules = modRules; + this.modRules = modData.DefaultRules; Layout = new ListLayout(this); }