#2051 fixed -- Widget.Get() throws by default
This commit is contained in:
@@ -85,7 +85,7 @@ namespace OpenRA.Widgets
|
||||
var panel = (ScrollPanelWidget)Ui.LoadWidget(panelTemplate, null, new WidgetArgs()
|
||||
{{ "substitutions", substitutions }});
|
||||
|
||||
var itemTemplate = panel.GetWidget<ScrollItemWidget>("TEMPLATE");
|
||||
var itemTemplate = panel.Get<ScrollItemWidget>("TEMPLATE");
|
||||
panel.RemoveChildren();
|
||||
foreach (var option in options)
|
||||
{
|
||||
|
||||
@@ -363,25 +363,36 @@ namespace OpenRA.Widgets
|
||||
c.Removed();
|
||||
}
|
||||
|
||||
public Widget GetWidget(string id)
|
||||
public Widget GetOrNull(string id)
|
||||
{
|
||||
if (this.Id == id)
|
||||
return this;
|
||||
|
||||
foreach (var child in Children)
|
||||
{
|
||||
var w = child.GetWidget(id);
|
||||
var w = child.GetOrNull(id);
|
||||
if (w != null)
|
||||
return w;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public T GetWidget<T>(string id) where T : Widget
|
||||
public T GetOrNull<T>(string id) where T : Widget
|
||||
{
|
||||
var widget = GetWidget(id);
|
||||
return (widget != null) ? (T)widget : null;
|
||||
return (T) GetOrNull(id);
|
||||
}
|
||||
|
||||
public T Get<T>(string id) where T : Widget
|
||||
{
|
||||
var t = GetOrNull<T>(id);
|
||||
if (t == null)
|
||||
throw new InvalidOperationException(
|
||||
"Widget {0} has no child {1} of type {2}".F(
|
||||
Id, id, typeof(T).Name));
|
||||
return t;
|
||||
}
|
||||
|
||||
public Widget Get(string id) { return Get<Widget>(id); }
|
||||
}
|
||||
|
||||
public class ContainerWidget : Widget
|
||||
|
||||
@@ -33,7 +33,7 @@ namespace OpenRA.Mods.Cnc.Widgets
|
||||
this.world = world;
|
||||
|
||||
tabsWidget = Lazy.New(() =>
|
||||
Ui.Root.GetWidget<ProductionTabsWidget>(info.ProductionTabsWidget));
|
||||
Ui.Root.Get<ProductionTabsWidget>(info.ProductionTabsWidget));
|
||||
}
|
||||
|
||||
public void SelectionChanged()
|
||||
|
||||
@@ -20,16 +20,16 @@ namespace OpenRA.Mods.Cnc.Widgets
|
||||
public static void PromptConfirmAction(string title, string text, Action onConfirm, Action onCancel)
|
||||
{
|
||||
var prompt = Ui.OpenWindow("CONFIRM_PROMPT");
|
||||
prompt.GetWidget<LabelWidget>("PROMPT_TITLE").GetText = () => title;
|
||||
prompt.GetWidget<LabelWidget>("PROMPT_TEXT").GetText = () => text;
|
||||
prompt.Get<LabelWidget>("PROMPT_TITLE").GetText = () => title;
|
||||
prompt.Get<LabelWidget>("PROMPT_TEXT").GetText = () => text;
|
||||
|
||||
prompt.GetWidget<ButtonWidget>("CONFIRM_BUTTON").OnClick = () =>
|
||||
prompt.Get<ButtonWidget>("CONFIRM_BUTTON").OnClick = () =>
|
||||
{
|
||||
Ui.CloseWindow();
|
||||
onConfirm();
|
||||
};
|
||||
|
||||
prompt.GetWidget<ButtonWidget>("CANCEL_BUTTON").OnClick = () =>
|
||||
prompt.Get<ButtonWidget>("CANCEL_BUTTON").OnClick = () =>
|
||||
{
|
||||
Ui.CloseWindow();
|
||||
onCancel();
|
||||
|
||||
@@ -37,7 +37,7 @@ namespace OpenRA.Mods.Cnc.Widgets
|
||||
: base(world, worldRenderer)
|
||||
{
|
||||
tooltipContainer = Lazy.New(() =>
|
||||
Ui.Root.GetWidget<TooltipContainerWidget>(TooltipContainer));
|
||||
Ui.Root.Get<TooltipContainerWidget>(TooltipContainer));
|
||||
}
|
||||
|
||||
public override void MouseEntered()
|
||||
|
||||
@@ -17,8 +17,8 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
||||
[ObjectCreator.UseCtor]
|
||||
public ButtonTooltipLogic(Widget widget, ToggleButtonWidget button)
|
||||
{
|
||||
var label = widget.GetWidget<LabelWidget>("LABEL");
|
||||
var hotkey = widget.GetWidget<LabelWidget>("HOTKEY");
|
||||
var label = widget.Get<LabelWidget>("LABEL");
|
||||
var hotkey = widget.Get<LabelWidget>("HOTKEY");
|
||||
|
||||
label.GetText = () => button.TooltipText;
|
||||
var labelWidth = Game.Renderer.Fonts[label.Font].Measure(button.TooltipText).X;
|
||||
|
||||
@@ -19,16 +19,16 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
||||
[ObjectCreator.UseCtor]
|
||||
public CncConquestObjectivesLogic(Widget widget, World world)
|
||||
{
|
||||
var panel = widget.GetWidget("CONQUEST_OBJECTIVES");
|
||||
panel.GetWidget<LabelWidget>("TITLE").GetText = () => "Conquest: " + world.Map.Title;
|
||||
var panel = widget.Get("CONQUEST_OBJECTIVES");
|
||||
panel.Get<LabelWidget>("TITLE").GetText = () => "Conquest: " + world.Map.Title;
|
||||
|
||||
var statusLabel = panel.GetWidget<LabelWidget>("STATUS");
|
||||
var statusLabel = panel.Get<LabelWidget>("STATUS");
|
||||
statusLabel.IsVisible = () => world.LocalPlayer != null;
|
||||
|
||||
if (world.LocalPlayer != null)
|
||||
{
|
||||
var lp = world.LocalPlayer;
|
||||
var objectiveCheckbox = panel.GetWidget<CheckboxWidget>("1");
|
||||
var objectiveCheckbox = panel.Get<CheckboxWidget>("1");
|
||||
objectiveCheckbox.IsChecked = () => lp.WinState != WinState.Undefined;
|
||||
objectiveCheckbox.GetCheckType = () => lp.WinState == WinState.Won ?
|
||||
"checked" : "crossed";
|
||||
@@ -39,8 +39,8 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
||||
lp.WinState == WinState.Lost ? Color.Red : Color.White;
|
||||
}
|
||||
|
||||
var scrollpanel = panel.GetWidget<ScrollPanelWidget>("PLAYER_LIST");
|
||||
var itemTemplate = scrollpanel.GetWidget("PLAYER_TEMPLATE");
|
||||
var scrollpanel = panel.Get<ScrollPanelWidget>("PLAYER_LIST");
|
||||
var itemTemplate = scrollpanel.Get("PLAYER_TEMPLATE");
|
||||
scrollpanel.RemoveChildren();
|
||||
|
||||
foreach (var p in world.Players.Where(a => !a.NonCombatant))
|
||||
@@ -48,21 +48,21 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
||||
Player pp = p;
|
||||
var c = world.LobbyInfo.ClientWithIndex(pp.ClientIndex);
|
||||
var item = itemTemplate.Clone();
|
||||
var nameLabel = item.GetWidget<LabelWidget>("NAME");
|
||||
var nameLabel = item.Get<LabelWidget>("NAME");
|
||||
nameLabel.GetText = () => pp.WinState == WinState.Lost ? pp.PlayerName + " (Dead)" : pp.PlayerName;
|
||||
nameLabel.GetColor = () => pp.ColorRamp.GetColor(0);
|
||||
|
||||
var flag = item.GetWidget<ImageWidget>("FACTIONFLAG");
|
||||
var flag = item.Get<ImageWidget>("FACTIONFLAG");
|
||||
flag.GetImageName = () => pp.Country.Race;
|
||||
flag.GetImageCollection = () => "flags";
|
||||
item.GetWidget<LabelWidget>("FACTION").GetText = () => pp.Country.Name;
|
||||
item.Get<LabelWidget>("FACTION").GetText = () => pp.Country.Name;
|
||||
|
||||
var team = item.GetWidget<LabelWidget>("TEAM");
|
||||
var team = item.Get<LabelWidget>("TEAM");
|
||||
team.GetText = () => (c.Team == 0) ? "-" : c.Team.ToString();
|
||||
scrollpanel.AddChild(item);
|
||||
|
||||
item.GetWidget<LabelWidget>("KILLS").GetText = () => pp.Kills.ToString();
|
||||
item.GetWidget<LabelWidget>("DEATHS").GetText = () => pp.Deaths.ToString();
|
||||
item.Get<LabelWidget>("KILLS").GetText = () => pp.Kills.ToString();
|
||||
item.Get<LabelWidget>("DEATHS").GetText = () => pp.Deaths.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
||||
|
||||
void AddChatLine(Color c, string from, string text)
|
||||
{
|
||||
ingameRoot.GetWidget<ChatDisplayWidget>("CHAT_DISPLAY").AddLine(c, from, text);
|
||||
ingameRoot.Get<ChatDisplayWidget>("CHAT_DISPLAY").AddLine(c, from, text);
|
||||
}
|
||||
|
||||
void UnregisterEvents()
|
||||
@@ -57,7 +57,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
||||
button.OnKeyPress = e => selectTab(e.Modifiers.HasModifier(Modifiers.Shift));
|
||||
button.IsToggled = () => queueTabs.QueueGroup == group;
|
||||
var chromeName = group.ToLowerInvariant();
|
||||
var icon = button.GetWidget<ImageWidget>("ICON");
|
||||
var icon = button.Get<ImageWidget>("ICON");
|
||||
icon.GetImageName = () => button.IsDisabled() ? chromeName+"-disabled" :
|
||||
queueTabs.Groups[group].Alert ? chromeName+"-alert" : chromeName;
|
||||
}
|
||||
@@ -72,8 +72,8 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
||||
Game.AddChatLine += AddChatLine;
|
||||
Game.BeforeGameStart += UnregisterEvents;
|
||||
|
||||
ingameRoot = widget.GetWidget("INGAME_ROOT");
|
||||
var playerRoot = ingameRoot.GetWidget("PLAYER_ROOT");
|
||||
ingameRoot = widget.Get("INGAME_ROOT");
|
||||
var playerRoot = ingameRoot.Get("PLAYER_ROOT");
|
||||
|
||||
// Observer
|
||||
if (world.LocalPlayer == null)
|
||||
@@ -100,7 +100,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
||||
public void InitObserverWidgets(World world, Widget playerRoot)
|
||||
{
|
||||
var observerWidgets = Game.LoadWidget(world, "OBSERVER_WIDGETS", playerRoot, new WidgetArgs());
|
||||
observerWidgets.GetWidget<ButtonWidget>("OPTIONS_BUTTON").OnClick = OptionsClicked;
|
||||
observerWidgets.Get<ButtonWidget>("OPTIONS_BUTTON").OnClick = OptionsClicked;
|
||||
}
|
||||
|
||||
public void InitPlayerWidgets(World world, Widget playerRoot)
|
||||
@@ -109,29 +109,29 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
||||
var playerWidgets = Game.LoadWidget(world, "PLAYER_WIDGETS", playerRoot, new WidgetArgs());
|
||||
playerWidgets.IsVisible = () => true;
|
||||
|
||||
var sidebarRoot = playerWidgets.GetWidget("SIDEBAR_BACKGROUND");
|
||||
var sidebarRoot = playerWidgets.Get("SIDEBAR_BACKGROUND");
|
||||
|
||||
BindOrderButton<SellOrderGenerator>(world, sidebarRoot, "SELL_BUTTON", "sell");
|
||||
BindOrderButton<RepairOrderGenerator>(world, sidebarRoot, "REPAIR_BUTTON", "repair");
|
||||
|
||||
var playerResources = world.LocalPlayer.PlayerActor.Trait<PlayerResources>();
|
||||
sidebarRoot.GetWidget<LabelWidget>("CASH").GetText = () =>
|
||||
sidebarRoot.Get<LabelWidget>("CASH").GetText = () =>
|
||||
"${0}".F(playerResources.DisplayCash + playerResources.DisplayOre);
|
||||
|
||||
queueTabs = playerWidgets.GetWidget<ProductionTabsWidget>("PRODUCTION_TABS");
|
||||
queueTabs = playerWidgets.Get<ProductionTabsWidget>("PRODUCTION_TABS");
|
||||
world.ActorAdded += queueTabs.ActorChanged;
|
||||
world.ActorRemoved += queueTabs.ActorChanged;
|
||||
|
||||
var queueTypes = sidebarRoot.GetWidget("PRODUCTION_TYPES");
|
||||
SetupProductionGroupButton(queueTypes.GetWidget<ToggleButtonWidget>("BUILDING"), "Building");
|
||||
SetupProductionGroupButton(queueTypes.GetWidget<ToggleButtonWidget>("DEFENSE"), "Defense");
|
||||
SetupProductionGroupButton(queueTypes.GetWidget<ToggleButtonWidget>("INFANTRY"), "Infantry");
|
||||
SetupProductionGroupButton(queueTypes.GetWidget<ToggleButtonWidget>("VEHICLE"), "Vehicle");
|
||||
SetupProductionGroupButton(queueTypes.GetWidget<ToggleButtonWidget>("AIRCRAFT"), "Aircraft");
|
||||
var queueTypes = sidebarRoot.Get("PRODUCTION_TYPES");
|
||||
SetupProductionGroupButton(queueTypes.Get<ToggleButtonWidget>("BUILDING"), "Building");
|
||||
SetupProductionGroupButton(queueTypes.Get<ToggleButtonWidget>("DEFENSE"), "Defense");
|
||||
SetupProductionGroupButton(queueTypes.Get<ToggleButtonWidget>("INFANTRY"), "Infantry");
|
||||
SetupProductionGroupButton(queueTypes.Get<ToggleButtonWidget>("VEHICLE"), "Vehicle");
|
||||
SetupProductionGroupButton(queueTypes.Get<ToggleButtonWidget>("AIRCRAFT"), "Aircraft");
|
||||
|
||||
playerWidgets.GetWidget<ButtonWidget>("OPTIONS_BUTTON").OnClick = OptionsClicked;
|
||||
playerWidgets.Get<ButtonWidget>("OPTIONS_BUTTON").OnClick = OptionsClicked;
|
||||
|
||||
var cheatsButton = playerWidgets.GetWidget<ButtonWidget>("CHEATS_BUTTON");
|
||||
var cheatsButton = playerWidgets.Get<ButtonWidget>("CHEATS_BUTTON");
|
||||
cheatsButton.OnClick = () =>
|
||||
{
|
||||
if (menu != MenuType.None)
|
||||
@@ -142,7 +142,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
||||
};
|
||||
cheatsButton.IsVisible = () => world.LocalPlayer != null && world.LobbyInfo.GlobalSettings.AllowCheats;
|
||||
|
||||
var winLossWatcher = playerWidgets.GetWidget<LogicTickerWidget>("WIN_LOSS_WATCHER");
|
||||
var winLossWatcher = playerWidgets.Get<LogicTickerWidget>("WIN_LOSS_WATCHER");
|
||||
winLossWatcher.OnTick = () =>
|
||||
{
|
||||
if (world.LocalPlayer.WinState != WinState.Undefined)
|
||||
@@ -157,11 +157,11 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
||||
static void BindOrderButton<T>(World world, Widget parent, string button, string icon)
|
||||
where T : IOrderGenerator, new()
|
||||
{
|
||||
var w = parent.GetWidget<ToggleButtonWidget>(button);
|
||||
var w = parent.Get<ToggleButtonWidget>(button);
|
||||
w.OnClick = () => world.ToggleInputMode<T>();
|
||||
w.IsToggled = () => world.OrderGenerator is T;
|
||||
|
||||
w.GetWidget<ImageWidget>("ICON").GetImageName =
|
||||
w.Get<ImageWidget>("ICON").GetImageName =
|
||||
() => world.OrderGenerator is T ? icon+"-active" : icon;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,14 +23,14 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
||||
public CncIngameMenuLogic(Widget widget, World world, Action onExit)
|
||||
{
|
||||
var resumeDisabled = false;
|
||||
menu = widget.GetWidget("INGAME_MENU");
|
||||
menu = widget.Get("INGAME_MENU");
|
||||
var mpe = world.WorldActor.Trait<CncMenuPaletteEffect>();
|
||||
mpe.Fade(CncMenuPaletteEffect.EffectType.Desaturated);
|
||||
|
||||
menu.GetWidget<LabelWidget>("VERSION_LABEL").GetText = WidgetUtils.ActiveModVersion;
|
||||
menu.Get<LabelWidget>("VERSION_LABEL").GetText = WidgetUtils.ActiveModVersion;
|
||||
|
||||
bool hideButtons = false;
|
||||
menu.GetWidget("MENU_BUTTONS").IsVisible = () => !hideButtons;
|
||||
menu.Get("MENU_BUTTONS").IsVisible = () => !hideButtons;
|
||||
|
||||
// TODO: Create a mechanism to do things like this cleaner. Also needed for scripted missions
|
||||
Action onQuit = () =>
|
||||
@@ -48,16 +48,16 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
||||
|
||||
Action doNothing = () => {};
|
||||
|
||||
menu.GetWidget<ButtonWidget>("QUIT_BUTTON").OnClick = () =>
|
||||
menu.Get<ButtonWidget>("QUIT_BUTTON").OnClick = () =>
|
||||
CncWidgetUtils.PromptConfirmAction("Abort Mission", "Leave this game and return to the menu?", onQuit, doNothing);
|
||||
|
||||
Action onSurrender = () => world.IssueOrder(new Order("Surrender", world.LocalPlayer.PlayerActor, false));
|
||||
var surrenderButton = menu.GetWidget<ButtonWidget>("SURRENDER_BUTTON");
|
||||
var surrenderButton = menu.Get<ButtonWidget>("SURRENDER_BUTTON");
|
||||
surrenderButton.IsDisabled = () => (world.LocalPlayer == null || world.LocalPlayer.WinState != WinState.Undefined);
|
||||
surrenderButton.OnClick = () =>
|
||||
CncWidgetUtils.PromptConfirmAction("Surrender", "Are you sure you want to surrender?", onSurrender, doNothing);
|
||||
|
||||
menu.GetWidget<ButtonWidget>("MUSIC_BUTTON").OnClick = () =>
|
||||
menu.Get<ButtonWidget>("MUSIC_BUTTON").OnClick = () =>
|
||||
{
|
||||
hideButtons = true;
|
||||
Ui.OpenWindow("MUSIC_PANEL", new WidgetArgs()
|
||||
@@ -66,7 +66,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
||||
});
|
||||
};
|
||||
|
||||
menu.GetWidget<ButtonWidget>("SETTINGS_BUTTON").OnClick = () =>
|
||||
menu.Get<ButtonWidget>("SETTINGS_BUTTON").OnClick = () =>
|
||||
{
|
||||
hideButtons = true;
|
||||
Ui.OpenWindow("SETTINGS_PANEL", new WidgetArgs()
|
||||
@@ -76,7 +76,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
||||
});
|
||||
};
|
||||
|
||||
var resumeButton = menu.GetWidget<ButtonWidget>("RESUME_BUTTON");
|
||||
var resumeButton = menu.Get<ButtonWidget>("RESUME_BUTTON");
|
||||
resumeButton.IsDisabled = () => resumeDisabled;
|
||||
resumeButton.OnClick = () =>
|
||||
{
|
||||
|
||||
@@ -36,17 +36,17 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
||||
this.filesToExtract = filesToExtract;
|
||||
|
||||
panel = widget;
|
||||
progressBar = panel.GetWidget<ProgressBarWidget>("PROGRESS_BAR");
|
||||
statusLabel = panel.GetWidget<LabelWidget>("STATUS_LABEL");
|
||||
progressBar = panel.Get<ProgressBarWidget>("PROGRESS_BAR");
|
||||
statusLabel = panel.Get<LabelWidget>("STATUS_LABEL");
|
||||
|
||||
backButton = panel.GetWidget<ButtonWidget>("BACK_BUTTON");
|
||||
backButton = panel.Get<ButtonWidget>("BACK_BUTTON");
|
||||
backButton.OnClick = Ui.CloseWindow;
|
||||
|
||||
retryButton = panel.GetWidget<ButtonWidget>("RETRY_BUTTON");
|
||||
retryButton = panel.Get<ButtonWidget>("RETRY_BUTTON");
|
||||
retryButton.OnClick = CheckForDisk;
|
||||
|
||||
installingContainer = panel.GetWidget("INSTALLING");
|
||||
insertDiskContainer = panel.GetWidget("INSERT_DISK");
|
||||
installingContainer = panel.Get("INSTALLING");
|
||||
insertDiskContainer = panel.Get("INSERT_DISK");
|
||||
|
||||
CheckForDisk();
|
||||
}
|
||||
|
||||
@@ -19,17 +19,17 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
||||
[ObjectCreator.UseCtor]
|
||||
public CncInstallLogic(Widget widget, Dictionary<string,string> installData, Action continueLoading)
|
||||
{
|
||||
var panel = widget.GetWidget("INSTALL_PANEL");
|
||||
var panel = widget.Get("INSTALL_PANEL");
|
||||
var args = new WidgetArgs()
|
||||
{
|
||||
{ "afterInstall", () => { Ui.CloseWindow(); continueLoading(); } },
|
||||
{ "installData", installData }
|
||||
};
|
||||
|
||||
panel.GetWidget<ButtonWidget>("DOWNLOAD_BUTTON").OnClick = () =>
|
||||
panel.Get<ButtonWidget>("DOWNLOAD_BUTTON").OnClick = () =>
|
||||
Ui.OpenWindow("INSTALL_DOWNLOAD_PANEL", args);
|
||||
|
||||
panel.GetWidget<ButtonWidget>("INSTALL_BUTTON").OnClick = () =>
|
||||
panel.Get<ButtonWidget>("INSTALL_BUTTON").OnClick = () =>
|
||||
Ui.OpenWindow("INSTALL_FROMCD_PANEL", new WidgetArgs(args)
|
||||
{
|
||||
{ "filesToCopy", new[] { "CONQUER.MIX", "DESERT.MIX", "SCORES.MIX",
|
||||
@@ -37,9 +37,9 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
||||
{ "filesToExtract", new[] { "speech.mix", "tempicnh.mix", "transit.mix" } },
|
||||
});
|
||||
|
||||
panel.GetWidget<ButtonWidget>("QUIT_BUTTON").OnClick = Game.Exit;
|
||||
panel.Get<ButtonWidget>("QUIT_BUTTON").OnClick = Game.Exit;
|
||||
|
||||
panel.GetWidget<ButtonWidget>("MODS_BUTTON").OnClick = () =>
|
||||
panel.Get<ButtonWidget>("MODS_BUTTON").OnClick = () =>
|
||||
{
|
||||
Ui.OpenWindow("MODS_PANEL", new WidgetArgs()
|
||||
{
|
||||
|
||||
@@ -27,17 +27,17 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
||||
world.WorldActor.Trait<CncMenuPaletteEffect>()
|
||||
.Fade(CncMenuPaletteEffect.EffectType.Desaturated);
|
||||
|
||||
rootMenu = widget.GetWidget("MENU_BACKGROUND");
|
||||
rootMenu.GetWidget<LabelWidget>("VERSION_LABEL").GetText = WidgetUtils.ActiveModVersion;
|
||||
rootMenu = widget.Get("MENU_BACKGROUND");
|
||||
rootMenu.Get<LabelWidget>("VERSION_LABEL").GetText = WidgetUtils.ActiveModVersion;
|
||||
|
||||
// Menu buttons
|
||||
var mainMenu = widget.GetWidget("MAIN_MENU");
|
||||
var mainMenu = widget.Get("MAIN_MENU");
|
||||
mainMenu.IsVisible = () => Menu == MenuType.Main;
|
||||
|
||||
mainMenu.GetWidget<ButtonWidget>("SOLO_BUTTON").OnClick = StartSkirmishGame;
|
||||
mainMenu.GetWidget<ButtonWidget>("MULTIPLAYER_BUTTON").OnClick = () => Menu = MenuType.Multiplayer;
|
||||
mainMenu.Get<ButtonWidget>("SOLO_BUTTON").OnClick = StartSkirmishGame;
|
||||
mainMenu.Get<ButtonWidget>("MULTIPLAYER_BUTTON").OnClick = () => Menu = MenuType.Multiplayer;
|
||||
|
||||
mainMenu.GetWidget<ButtonWidget>("MODS_BUTTON").OnClick = () =>
|
||||
mainMenu.Get<ButtonWidget>("MODS_BUTTON").OnClick = () =>
|
||||
{
|
||||
Menu = MenuType.None;
|
||||
Ui.OpenWindow("MODS_PANEL", new WidgetArgs()
|
||||
@@ -47,23 +47,23 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
||||
});
|
||||
};
|
||||
|
||||
mainMenu.GetWidget<ButtonWidget>("SETTINGS_BUTTON").OnClick = () => Menu = MenuType.Settings;
|
||||
mainMenu.GetWidget<ButtonWidget>("QUIT_BUTTON").OnClick = Game.Exit;
|
||||
mainMenu.Get<ButtonWidget>("SETTINGS_BUTTON").OnClick = () => Menu = MenuType.Settings;
|
||||
mainMenu.Get<ButtonWidget>("QUIT_BUTTON").OnClick = Game.Exit;
|
||||
|
||||
// Multiplayer menu
|
||||
var multiplayerMenu = widget.GetWidget("MULTIPLAYER_MENU");
|
||||
var multiplayerMenu = widget.Get("MULTIPLAYER_MENU");
|
||||
multiplayerMenu.IsVisible = () => Menu == MenuType.Multiplayer;
|
||||
|
||||
multiplayerMenu.GetWidget<ButtonWidget>("BACK_BUTTON").OnClick = () => Menu = MenuType.Main;
|
||||
multiplayerMenu.GetWidget<ButtonWidget>("JOIN_BUTTON").OnClick = () => OpenGamePanel("SERVERBROWSER_PANEL");
|
||||
multiplayerMenu.GetWidget<ButtonWidget>("CREATE_BUTTON").OnClick = () => OpenGamePanel("CREATESERVER_PANEL");
|
||||
multiplayerMenu.GetWidget<ButtonWidget>("DIRECTCONNECT_BUTTON").OnClick = () => OpenGamePanel("DIRECTCONNECT_PANEL");
|
||||
multiplayerMenu.Get<ButtonWidget>("BACK_BUTTON").OnClick = () => Menu = MenuType.Main;
|
||||
multiplayerMenu.Get<ButtonWidget>("JOIN_BUTTON").OnClick = () => OpenGamePanel("SERVERBROWSER_PANEL");
|
||||
multiplayerMenu.Get<ButtonWidget>("CREATE_BUTTON").OnClick = () => OpenGamePanel("CREATESERVER_PANEL");
|
||||
multiplayerMenu.Get<ButtonWidget>("DIRECTCONNECT_BUTTON").OnClick = () => OpenGamePanel("DIRECTCONNECT_PANEL");
|
||||
|
||||
// Settings menu
|
||||
var settingsMenu = widget.GetWidget("SETTINGS_MENU");
|
||||
var settingsMenu = widget.Get("SETTINGS_MENU");
|
||||
settingsMenu.IsVisible = () => Menu == MenuType.Settings;
|
||||
|
||||
settingsMenu.GetWidget<ButtonWidget>("REPLAYS_BUTTON").OnClick = () =>
|
||||
settingsMenu.Get<ButtonWidget>("REPLAYS_BUTTON").OnClick = () =>
|
||||
{
|
||||
Menu = MenuType.None;
|
||||
Ui.OpenWindow("REPLAYBROWSER_PANEL", new WidgetArgs()
|
||||
@@ -73,7 +73,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
||||
});
|
||||
};
|
||||
|
||||
settingsMenu.GetWidget<ButtonWidget>("MUSIC_BUTTON").OnClick = () =>
|
||||
settingsMenu.Get<ButtonWidget>("MUSIC_BUTTON").OnClick = () =>
|
||||
{
|
||||
Menu = MenuType.None;
|
||||
Ui.OpenWindow("MUSIC_PANEL", new WidgetArgs()
|
||||
@@ -82,7 +82,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
||||
});
|
||||
};
|
||||
|
||||
settingsMenu.GetWidget<ButtonWidget>("SETTINGS_BUTTON").OnClick = () =>
|
||||
settingsMenu.Get<ButtonWidget>("SETTINGS_BUTTON").OnClick = () =>
|
||||
{
|
||||
Menu = MenuType.None;
|
||||
Ui.OpenWindow("SETTINGS_PANEL", new WidgetArgs()
|
||||
@@ -92,9 +92,9 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
||||
});
|
||||
};
|
||||
|
||||
settingsMenu.GetWidget<ButtonWidget>("BACK_BUTTON").OnClick = () => Menu = MenuType.Main;
|
||||
settingsMenu.Get<ButtonWidget>("BACK_BUTTON").OnClick = () => Menu = MenuType.Main;
|
||||
|
||||
rootMenu.GetWidget<ImageWidget>("RECBLOCK").IsVisible = () => world.FrameNumber / 25 % 2 == 0;
|
||||
rootMenu.Get<ImageWidget>("RECBLOCK").IsVisible = () => world.FrameNumber / 25 % 2 == 0;
|
||||
}
|
||||
|
||||
void OpenGamePanel(string id)
|
||||
|
||||
@@ -31,10 +31,10 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
||||
[ObjectCreator.UseCtor]
|
||||
public CncMusicPlayerLogic(Widget widget, Action onExit)
|
||||
{
|
||||
panel = widget.GetWidget("MUSIC_PANEL");
|
||||
panel = widget.Get("MUSIC_PANEL");
|
||||
|
||||
var ml = panel.GetWidget<ScrollPanelWidget>("MUSIC_LIST");
|
||||
itemTemplate = ml.GetWidget<ScrollItemWidget>("MUSIC_TEMPLATE");
|
||||
var ml = panel.Get<ScrollPanelWidget>("MUSIC_LIST");
|
||||
itemTemplate = ml.Get<ScrollItemWidget>("MUSIC_TEMPLATE");
|
||||
|
||||
BuildMusicTable(ml);
|
||||
|
||||
@@ -42,7 +42,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
||||
installed = Rules.Music.Where(m => m.Value.Exists).Any();
|
||||
Func<bool> noMusic = () => !installed;
|
||||
|
||||
panel.GetWidget<ButtonWidget>("BACK_BUTTON").OnClick = () => { Ui.CloseWindow(); onExit(); };
|
||||
panel.Get<ButtonWidget>("BACK_BUTTON").OnClick = () => { Ui.CloseWindow(); onExit(); };
|
||||
|
||||
Action afterInstall = () =>
|
||||
{
|
||||
@@ -60,7 +60,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
||||
BuildMusicTable(ml);
|
||||
};
|
||||
|
||||
var installButton = panel.GetWidget<ButtonWidget>("INSTALL_BUTTON");
|
||||
var installButton = panel.Get<ButtonWidget>("INSTALL_BUTTON");
|
||||
installButton.OnClick = () =>
|
||||
Ui.OpenWindow("INSTALL_MUSIC_PANEL", new WidgetArgs() {
|
||||
{ "afterInstall", afterInstall },
|
||||
@@ -69,42 +69,42 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
||||
});
|
||||
installButton.IsVisible = () => music.Length < 3; // Hack around music being split between transit.mix and scores.mix
|
||||
|
||||
panel.GetWidget("NO_MUSIC_LABEL").IsVisible = noMusic;
|
||||
panel.Get("NO_MUSIC_LABEL").IsVisible = noMusic;
|
||||
|
||||
var playButton = panel.GetWidget<ButtonWidget>("BUTTON_PLAY");
|
||||
var playButton = panel.Get<ButtonWidget>("BUTTON_PLAY");
|
||||
playButton.OnClick = Play;
|
||||
playButton.IsDisabled = noMusic;
|
||||
|
||||
var pauseButton = panel.GetWidget<ButtonWidget>("BUTTON_PAUSE");
|
||||
var pauseButton = panel.Get<ButtonWidget>("BUTTON_PAUSE");
|
||||
pauseButton.OnClick = Pause;
|
||||
pauseButton.IsDisabled = noMusic;
|
||||
|
||||
var stopButton = panel.GetWidget<ButtonWidget>("BUTTON_STOP");
|
||||
var stopButton = panel.Get<ButtonWidget>("BUTTON_STOP");
|
||||
stopButton.OnClick = Stop;
|
||||
stopButton.IsDisabled = noMusic;
|
||||
|
||||
var nextButton = panel.GetWidget<ButtonWidget>("BUTTON_NEXT");
|
||||
var nextButton = panel.Get<ButtonWidget>("BUTTON_NEXT");
|
||||
nextButton.OnClick = () => { currentSong = GetNextSong(); Play(); };
|
||||
nextButton.IsDisabled = noMusic;
|
||||
|
||||
var prevButton = panel.GetWidget<ButtonWidget>("BUTTON_PREV");
|
||||
var prevButton = panel.Get<ButtonWidget>("BUTTON_PREV");
|
||||
prevButton.OnClick = () => { currentSong = GetPrevSong(); Play(); };
|
||||
prevButton.IsDisabled = noMusic;
|
||||
|
||||
var shuffleCheckbox = panel.GetWidget<CheckboxWidget>("SHUFFLE");
|
||||
var shuffleCheckbox = panel.Get<CheckboxWidget>("SHUFFLE");
|
||||
shuffleCheckbox.IsChecked = () => Game.Settings.Sound.Shuffle;
|
||||
shuffleCheckbox.OnClick = () => Game.Settings.Sound.Shuffle ^= true;
|
||||
|
||||
var repeatCheckbox = panel.GetWidget<CheckboxWidget>("REPEAT");
|
||||
var repeatCheckbox = panel.Get<CheckboxWidget>("REPEAT");
|
||||
repeatCheckbox.IsChecked = () => Game.Settings.Sound.Repeat;
|
||||
repeatCheckbox.OnClick = () => Game.Settings.Sound.Repeat ^= true;
|
||||
|
||||
panel.GetWidget<LabelWidget>("TIME_LABEL").GetText = () => (currentSong == null) ? "" :
|
||||
panel.Get<LabelWidget>("TIME_LABEL").GetText = () => (currentSong == null) ? "" :
|
||||
"{0:D2}:{1:D2} / {2:D2}:{3:D2}".F((int)Sound.MusicSeekPosition / 60, (int)Sound.MusicSeekPosition % 60,
|
||||
currentSong.Length / 60, currentSong.Length % 60);
|
||||
panel.GetWidget<LabelWidget>("TITLE_LABEL").GetText = () => (currentSong == null) ? "" : currentSong.Title;
|
||||
panel.Get<LabelWidget>("TITLE_LABEL").GetText = () => (currentSong == null) ? "" : currentSong.Title;
|
||||
|
||||
var musicSlider = panel.GetWidget<SliderWidget>("MUSIC_SLIDER");
|
||||
var musicSlider = panel.Get<SliderWidget>("MUSIC_SLIDER");
|
||||
musicSlider.OnChange += x => Sound.MusicVolume = x;
|
||||
musicSlider.Value = Sound.MusicVolume;
|
||||
}
|
||||
@@ -122,8 +122,8 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
||||
currentSong = song;
|
||||
|
||||
var item = ScrollItemWidget.Setup(itemTemplate, () => currentSong == song, () => { currentSong = song; Play(); });
|
||||
item.GetWidget<LabelWidget>("TITLE").GetText = () => song.Title;
|
||||
item.GetWidget<LabelWidget>("LENGTH").GetText = () => SongLengthLabel(song);
|
||||
item.Get<LabelWidget>("TITLE").GetText = () => song.Title;
|
||||
item.Get<LabelWidget>("LENGTH").GetText = () => SongLengthLabel(song);
|
||||
list.AddChild(item);
|
||||
}
|
||||
}
|
||||
@@ -140,22 +140,22 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
||||
Play();
|
||||
});
|
||||
|
||||
panel.GetWidget("BUTTON_PLAY").Visible = false;
|
||||
panel.GetWidget("BUTTON_PAUSE").Visible = true;
|
||||
panel.Get("BUTTON_PLAY").Visible = false;
|
||||
panel.Get("BUTTON_PAUSE").Visible = true;
|
||||
}
|
||||
|
||||
void Pause()
|
||||
{
|
||||
Sound.PauseMusic();
|
||||
panel.GetWidget("BUTTON_PAUSE").Visible = false;
|
||||
panel.GetWidget("BUTTON_PLAY").Visible = true;
|
||||
panel.Get("BUTTON_PAUSE").Visible = false;
|
||||
panel.Get("BUTTON_PLAY").Visible = true;
|
||||
}
|
||||
|
||||
void Stop()
|
||||
{
|
||||
Sound.StopMusic();
|
||||
panel.GetWidget("BUTTON_PAUSE").Visible = false;
|
||||
panel.GetWidget("BUTTON_PLAY").Visible = true;
|
||||
panel.Get("BUTTON_PAUSE").Visible = false;
|
||||
panel.Get("BUTTON_PLAY").Visible = true;
|
||||
}
|
||||
|
||||
string SongLengthLabel(MusicInfo song)
|
||||
|
||||
@@ -19,9 +19,9 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
||||
public CncPerfDebugLogic(Widget widget)
|
||||
{
|
||||
// Performance info
|
||||
var perfRoot = widget.GetWidget("PERFORMANCE_INFO");
|
||||
var perfRoot = widget.Get("PERFORMANCE_INFO");
|
||||
perfRoot.IsVisible = () => Game.Settings.Debug.PerfGraph;
|
||||
var text = perfRoot.GetWidget<LabelWidget>("PERF_TEXT");
|
||||
var text = perfRoot.Get<LabelWidget>("PERF_TEXT");
|
||||
text.IsVisible = () => Game.Settings.Debug.PerfText;
|
||||
text.GetText = () =>
|
||||
"Tick {0} @ {1:F1} ms\nRender {2} @ {3:F1} ms\nBatches: {4}".F(
|
||||
|
||||
@@ -32,14 +32,14 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
||||
public CncSettingsLogic(Widget widget, World world, Action onExit)
|
||||
{
|
||||
this.world = world;
|
||||
var panel = widget.GetWidget("SETTINGS_PANEL");
|
||||
var panel = widget.Get("SETTINGS_PANEL");
|
||||
|
||||
// General pane
|
||||
var generalButton = panel.GetWidget<ButtonWidget>("GENERAL_BUTTON");
|
||||
var generalButton = panel.Get<ButtonWidget>("GENERAL_BUTTON");
|
||||
generalButton.OnClick = () => Settings = PanelType.General;
|
||||
generalButton.IsDisabled = () => Settings == PanelType.General;
|
||||
|
||||
var generalPane = panel.GetWidget("GENERAL_CONTROLS");
|
||||
var generalPane = panel.Get("GENERAL_CONTROLS");
|
||||
generalPane.IsVisible = () => Settings == PanelType.General;
|
||||
|
||||
var gameSettings = Game.Settings.Game;
|
||||
@@ -49,36 +49,36 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
||||
var soundSettings = Game.Settings.Sound;
|
||||
|
||||
// Player profile
|
||||
var nameTextfield = generalPane.GetWidget<TextFieldWidget>("NAME_TEXTFIELD");
|
||||
var nameTextfield = generalPane.Get<TextFieldWidget>("NAME_TEXTFIELD");
|
||||
nameTextfield.Text = playerSettings.Name;
|
||||
|
||||
playerPalettePreview = world.WorldActor.Trait<ColorPickerPaletteModifier>();
|
||||
playerPalettePreview.Ramp = playerSettings.ColorRamp;
|
||||
|
||||
var colorDropdown = generalPane.GetWidget<DropDownButtonWidget>("COLOR");
|
||||
var colorDropdown = generalPane.Get<DropDownButtonWidget>("COLOR");
|
||||
colorDropdown.OnMouseDown = _ => ShowColorPicker(colorDropdown, playerSettings);
|
||||
colorDropdown.GetWidget<ColorBlockWidget>("COLORBLOCK").GetColor = () => playerSettings.ColorRamp.GetColor(0);
|
||||
colorDropdown.Get<ColorBlockWidget>("COLORBLOCK").GetColor = () => playerSettings.ColorRamp.GetColor(0);
|
||||
|
||||
// Debug
|
||||
var perftextCheckbox = generalPane.GetWidget<CheckboxWidget>("PERFTEXT_CHECKBOX");
|
||||
var perftextCheckbox = generalPane.Get<CheckboxWidget>("PERFTEXT_CHECKBOX");
|
||||
perftextCheckbox.IsChecked = () => debugSettings.PerfText;
|
||||
perftextCheckbox.OnClick = () => debugSettings.PerfText ^= true;
|
||||
|
||||
var perfgraphCheckbox = generalPane.GetWidget<CheckboxWidget>("PERFGRAPH_CHECKBOX");
|
||||
var perfgraphCheckbox = generalPane.Get<CheckboxWidget>("PERFGRAPH_CHECKBOX");
|
||||
perfgraphCheckbox.IsChecked = () => debugSettings.PerfGraph;
|
||||
perfgraphCheckbox.OnClick = () => debugSettings.PerfGraph ^= true;
|
||||
|
||||
var checkunsyncedCheckbox = generalPane.GetWidget<CheckboxWidget>("CHECKUNSYNCED_CHECKBOX");
|
||||
var checkunsyncedCheckbox = generalPane.Get<CheckboxWidget>("CHECKUNSYNCED_CHECKBOX");
|
||||
checkunsyncedCheckbox.IsChecked = () => debugSettings.SanityCheckUnsyncedCode;
|
||||
checkunsyncedCheckbox.OnClick = () => debugSettings.SanityCheckUnsyncedCode ^= true;
|
||||
|
||||
// Video
|
||||
var windowModeDropdown = generalPane.GetWidget<DropDownButtonWidget>("MODE_DROPDOWN");
|
||||
var windowModeDropdown = generalPane.Get<DropDownButtonWidget>("MODE_DROPDOWN");
|
||||
windowModeDropdown.OnMouseDown = _ => SettingsMenuLogic.ShowWindowModeDropdown(windowModeDropdown, graphicsSettings);
|
||||
windowModeDropdown.GetText = () => graphicsSettings.Mode == WindowMode.Windowed ?
|
||||
"Windowed" : graphicsSettings.Mode == WindowMode.Fullscreen ? "Fullscreen" : "Pseudo-Fullscreen";
|
||||
|
||||
var pixelDoubleCheckbox = generalPane.GetWidget<CheckboxWidget>("PIXELDOUBLE_CHECKBOX");
|
||||
var pixelDoubleCheckbox = generalPane.Get<CheckboxWidget>("PIXELDOUBLE_CHECKBOX");
|
||||
pixelDoubleCheckbox.IsChecked = () => graphicsSettings.PixelDouble;
|
||||
pixelDoubleCheckbox.OnClick = () =>
|
||||
{
|
||||
@@ -86,53 +86,53 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
||||
Game.viewport.Zoom = graphicsSettings.PixelDouble ? 2 : 1;
|
||||
};
|
||||
|
||||
generalPane.GetWidget("WINDOW_RESOLUTION").IsVisible = () => graphicsSettings.Mode == WindowMode.Windowed;
|
||||
var windowWidth = generalPane.GetWidget<TextFieldWidget>("WINDOW_WIDTH");
|
||||
generalPane.Get("WINDOW_RESOLUTION").IsVisible = () => graphicsSettings.Mode == WindowMode.Windowed;
|
||||
var windowWidth = generalPane.Get<TextFieldWidget>("WINDOW_WIDTH");
|
||||
windowWidth.Text = graphicsSettings.WindowedSize.X.ToString();
|
||||
|
||||
var windowHeight = generalPane.GetWidget<TextFieldWidget>("WINDOW_HEIGHT");
|
||||
var windowHeight = generalPane.Get<TextFieldWidget>("WINDOW_HEIGHT");
|
||||
windowHeight.Text = graphicsSettings.WindowedSize.Y.ToString();
|
||||
|
||||
// Audio
|
||||
var soundSlider = generalPane.GetWidget<SliderWidget>("SOUND_SLIDER");
|
||||
var soundSlider = generalPane.Get<SliderWidget>("SOUND_SLIDER");
|
||||
soundSlider.OnChange += x => { soundSettings.SoundVolume = x; Sound.SoundVolume = x;};
|
||||
soundSlider.Value = soundSettings.SoundVolume;
|
||||
|
||||
var musicSlider = generalPane.GetWidget<SliderWidget>("MUSIC_SLIDER");
|
||||
var musicSlider = generalPane.Get<SliderWidget>("MUSIC_SLIDER");
|
||||
musicSlider.OnChange += x => { soundSettings.MusicVolume = x; Sound.MusicVolume = x; };
|
||||
musicSlider.Value = soundSettings.MusicVolume;
|
||||
|
||||
var shellmapMusicCheckbox = generalPane.GetWidget<CheckboxWidget>("SHELLMAP_MUSIC");
|
||||
var shellmapMusicCheckbox = generalPane.Get<CheckboxWidget>("SHELLMAP_MUSIC");
|
||||
shellmapMusicCheckbox.IsChecked = () => soundSettings.ShellmapMusic;
|
||||
shellmapMusicCheckbox.OnClick = () => soundSettings.ShellmapMusic ^= true;
|
||||
|
||||
// Input pane
|
||||
var inputPane = panel.GetWidget("INPUT_CONTROLS");
|
||||
var inputPane = panel.Get("INPUT_CONTROLS");
|
||||
inputPane.IsVisible = () => Settings == PanelType.Input;
|
||||
|
||||
var inputButton = panel.GetWidget<ButtonWidget>("INPUT_BUTTON");
|
||||
var inputButton = panel.Get<ButtonWidget>("INPUT_BUTTON");
|
||||
inputButton.OnClick = () => Settings = PanelType.Input;
|
||||
inputButton.IsDisabled = () => Settings == PanelType.Input;
|
||||
|
||||
inputPane.GetWidget<CheckboxWidget>("CLASSICORDERS_CHECKBOX").IsDisabled = () => true;
|
||||
inputPane.Get<CheckboxWidget>("CLASSICORDERS_CHECKBOX").IsDisabled = () => true;
|
||||
|
||||
var scrollSlider = inputPane.GetWidget<SliderWidget>("SCROLLSPEED_SLIDER");
|
||||
var scrollSlider = inputPane.Get<SliderWidget>("SCROLLSPEED_SLIDER");
|
||||
scrollSlider.Value = gameSettings.ViewportEdgeScrollStep;
|
||||
scrollSlider.OnChange += x => gameSettings.ViewportEdgeScrollStep = x;
|
||||
|
||||
var edgescrollCheckbox = inputPane.GetWidget<CheckboxWidget>("EDGESCROLL_CHECKBOX");
|
||||
var edgescrollCheckbox = inputPane.Get<CheckboxWidget>("EDGESCROLL_CHECKBOX");
|
||||
edgescrollCheckbox.IsChecked = () => gameSettings.ViewportEdgeScroll;
|
||||
edgescrollCheckbox.OnClick = () => gameSettings.ViewportEdgeScroll ^= true;
|
||||
|
||||
var mouseScrollDropdown = inputPane.GetWidget<DropDownButtonWidget>("MOUSE_SCROLL");
|
||||
var mouseScrollDropdown = inputPane.Get<DropDownButtonWidget>("MOUSE_SCROLL");
|
||||
mouseScrollDropdown.OnMouseDown = _ => ShowMouseScrollDropdown(mouseScrollDropdown, gameSettings);
|
||||
mouseScrollDropdown.GetText = () => gameSettings.MouseScroll.ToString();
|
||||
|
||||
var teamchatCheckbox = inputPane.GetWidget<CheckboxWidget>("TEAMCHAT_CHECKBOX");
|
||||
var teamchatCheckbox = inputPane.Get<CheckboxWidget>("TEAMCHAT_CHECKBOX");
|
||||
teamchatCheckbox.IsChecked = () => gameSettings.TeamChatToggle;
|
||||
teamchatCheckbox.OnClick = () => gameSettings.TeamChatToggle ^= true;
|
||||
|
||||
panel.GetWidget<ButtonWidget>("BACK_BUTTON").OnClick = () =>
|
||||
panel.Get<ButtonWidget>("BACK_BUTTON").OnClick = () =>
|
||||
{
|
||||
playerSettings.Name = nameTextfield.Text;
|
||||
int x, y;
|
||||
@@ -175,7 +175,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
||||
var item = ScrollItemWidget.Setup(itemTemplate,
|
||||
() => s.MouseScroll == options[o],
|
||||
() => s.MouseScroll = options[o]);
|
||||
item.GetWidget<LabelWidget>("LABEL").GetText = () => o;
|
||||
item.Get<LabelWidget>("LABEL").GetText = () => o;
|
||||
return item;
|
||||
};
|
||||
|
||||
|
||||
@@ -27,11 +27,11 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
||||
var pr = palette.world.LocalPlayer.PlayerActor.Trait<PlayerResources>();
|
||||
|
||||
widget.IsVisible = () => palette.TooltipActor != null;
|
||||
var nameLabel = widget.GetWidget<LabelWidget>("NAME");
|
||||
var requiresLabel = widget.GetWidget<LabelWidget>("REQUIRES");
|
||||
var powerLabel = widget.GetWidget<LabelWidget>("POWER");
|
||||
var timeLabel = widget.GetWidget<LabelWidget>("TIME");
|
||||
var costLabel = widget.GetWidget<LabelWidget>("COST");
|
||||
var nameLabel = widget.Get<LabelWidget>("NAME");
|
||||
var requiresLabel = widget.Get<LabelWidget>("REQUIRES");
|
||||
var powerLabel = widget.Get<LabelWidget>("POWER");
|
||||
var timeLabel = widget.Get<LabelWidget>("TIME");
|
||||
var costLabel = widget.Get<LabelWidget>("COST");
|
||||
|
||||
var font = Game.Renderer.Fonts[nameLabel.Font];
|
||||
var requiresFont = Game.Renderer.Fonts[requiresLabel.Font];
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
||||
[ObjectCreator.UseCtor]
|
||||
public SimpleTooltipLogic(Widget widget, TooltipContainerWidget tooltipContainer, Func<string> getText)
|
||||
{
|
||||
var label = widget.GetWidget<LabelWidget>("LABEL");
|
||||
var label = widget.Get<LabelWidget>("LABEL");
|
||||
|
||||
var font = Game.Renderer.Fonts[label.Font];
|
||||
var cachedWidth = 0;
|
||||
|
||||
@@ -20,9 +20,9 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
||||
public SupportPowerTooltipLogic(Widget widget, TooltipContainerWidget tooltipContainer, SupportPowersWidget palette)
|
||||
{
|
||||
widget.IsVisible = () => palette.TooltipPower != null;
|
||||
var nameLabel = widget.GetWidget<LabelWidget>("NAME");
|
||||
var timeLabel = widget.GetWidget<LabelWidget>("TIME");
|
||||
var descLabel = widget.GetWidget<LabelWidget>("DESC");
|
||||
var nameLabel = widget.Get<LabelWidget>("NAME");
|
||||
var timeLabel = widget.Get<LabelWidget>("TIME");
|
||||
var descLabel = widget.Get<LabelWidget>("DESC");
|
||||
var nameFont = Game.Renderer.Fonts[nameLabel.Font];
|
||||
var timeFont = Game.Renderer.Fonts[timeLabel.Font];
|
||||
var descFont = Game.Renderer.Fonts[descLabel.Font];
|
||||
|
||||
@@ -20,9 +20,9 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
||||
public WorldTooltipLogic(Widget widget, TooltipContainerWidget tooltipContainer, CncWorldInteractionControllerWidget wic)
|
||||
{
|
||||
widget.IsVisible = () => wic.TooltipType != WorldTooltipType.None;
|
||||
var label = widget.GetWidget<LabelWidget>("LABEL");
|
||||
var flag = widget.GetWidget<ImageWidget>("FLAG");
|
||||
var owner = widget.GetWidget<LabelWidget>("OWNER");
|
||||
var label = widget.Get<LabelWidget>("LABEL");
|
||||
var flag = widget.Get<ImageWidget>("FLAG");
|
||||
var owner = widget.Get<LabelWidget>("OWNER");
|
||||
|
||||
var font = Game.Renderer.Fonts[label.Font];
|
||||
var ownerFont = Game.Renderer.Fonts[owner.Font];
|
||||
|
||||
@@ -32,7 +32,7 @@ namespace OpenRA.Mods.Cnc.Widgets
|
||||
{
|
||||
pm = world.LocalPlayer.PlayerActor.Trait<PowerManager>();
|
||||
tooltipContainer = Lazy.New(() =>
|
||||
Ui.Root.GetWidget<TooltipContainerWidget>(TooltipContainer));
|
||||
Ui.Root.Get<TooltipContainerWidget>(TooltipContainer));
|
||||
}
|
||||
|
||||
public override void MouseEntered()
|
||||
|
||||
@@ -63,7 +63,7 @@ namespace OpenRA.Mods.Cnc.Widgets
|
||||
this.world = world;
|
||||
this.worldRenderer = worldRenderer;
|
||||
tooltipContainer = Lazy.New(() =>
|
||||
Ui.Root.GetWidget<TooltipContainerWidget>(TooltipContainer));
|
||||
Ui.Root.Get<TooltipContainerWidget>(TooltipContainer));
|
||||
|
||||
cantBuild = new Animation("clock");
|
||||
cantBuild.PlayFetchIndex("idle", () => 0);
|
||||
|
||||
@@ -86,7 +86,7 @@ namespace OpenRA.Mods.Cnc.Widgets
|
||||
// Only visible if the production palette has icons to display
|
||||
IsVisible = () => queueGroup != null && Groups[queueGroup].Tabs.Count > 0;
|
||||
|
||||
paletteWidget = Lazy.New(() => Ui.Root.GetWidget<ProductionPaletteWidget>(PaletteWidget));
|
||||
paletteWidget = Lazy.New(() => Ui.Root.Get<ProductionPaletteWidget>(PaletteWidget));
|
||||
}
|
||||
|
||||
public void SelectNextTab(bool reverse)
|
||||
|
||||
@@ -34,7 +34,7 @@ namespace OpenRA.Mods.Cnc.Widgets
|
||||
{
|
||||
pr = world.LocalPlayer.PlayerActor.Trait<PlayerResources>();
|
||||
tooltipContainer = Lazy.New(() =>
|
||||
Ui.Root.GetWidget<TooltipContainerWidget>(TooltipContainer));
|
||||
Ui.Root.Get<TooltipContainerWidget>(TooltipContainer));
|
||||
}
|
||||
|
||||
public override void MouseEntered()
|
||||
|
||||
@@ -45,7 +45,7 @@ namespace OpenRA.Mods.Cnc.Widgets
|
||||
this.worldRenderer = worldRenderer;
|
||||
spm = world.LocalPlayer.PlayerActor.Trait<SupportPowerManager>();
|
||||
tooltipContainer = Lazy.New(() =>
|
||||
Ui.Root.GetWidget<TooltipContainerWidget>(TooltipContainer));
|
||||
Ui.Root.Get<TooltipContainerWidget>(TooltipContainer));
|
||||
|
||||
iconSprites = Rules.Info.Values.SelectMany( u => u.Traits.WithInterface<SupportPowerInfo>() )
|
||||
.Select(u => u.Image).Distinct()
|
||||
|
||||
@@ -27,7 +27,7 @@ namespace OpenRA.Mods.Cnc.Widgets
|
||||
: base()
|
||||
{
|
||||
tooltipContainer = Lazy.New(() =>
|
||||
Ui.Root.GetWidget<TooltipContainerWidget>(TooltipContainer));
|
||||
Ui.Root.Get<TooltipContainerWidget>(TooltipContainer));
|
||||
}
|
||||
|
||||
protected ToggleButtonWidget(ToggleButtonWidget other)
|
||||
@@ -37,7 +37,7 @@ namespace OpenRA.Mods.Cnc.Widgets
|
||||
TooltipText = other.TooltipText;
|
||||
TooltipContainer = other.TooltipContainer;
|
||||
tooltipContainer = Lazy.New(() =>
|
||||
Ui.Root.GetWidget<TooltipContainerWidget>(TooltipContainer));
|
||||
Ui.Root.Get<TooltipContainerWidget>(TooltipContainer));
|
||||
}
|
||||
|
||||
public override void MouseEntered()
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace OpenRA.Scripting
|
||||
public static void PlayFMVFullscreen(World w, string movie, Action onComplete)
|
||||
{
|
||||
var playerRoot = Game.OpenWindow(w, "FMVPLAYER");
|
||||
var player = playerRoot.GetWidget<VqaPlayerWidget>("PLAYER");
|
||||
var player = playerRoot.Get<VqaPlayerWidget>("PLAYER");
|
||||
w.EnableTick = false;
|
||||
player.Load(movie);
|
||||
|
||||
|
||||
@@ -22,41 +22,41 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
{
|
||||
var devTrait = world.LocalPlayer.PlayerActor.Trait<DeveloperMode>();
|
||||
|
||||
var shroudCheckbox = widget.GetWidget<CheckboxWidget>("DISABLE_SHROUD");
|
||||
var shroudCheckbox = widget.Get<CheckboxWidget>("DISABLE_SHROUD");
|
||||
shroudCheckbox.IsChecked = () => devTrait.DisableShroud;
|
||||
shroudCheckbox.OnClick = () => Order(world, "DevShroud");
|
||||
|
||||
var pathCheckbox = widget.GetWidget<CheckboxWidget>("SHOW_UNIT_PATHS");
|
||||
var pathCheckbox = widget.Get<CheckboxWidget>("SHOW_UNIT_PATHS");
|
||||
pathCheckbox.IsChecked = () => devTrait.PathDebug;
|
||||
pathCheckbox.OnClick = () => Order(world, "DevPathDebug");
|
||||
|
||||
widget.GetWidget<ButtonWidget>("GIVE_CASH").OnClick = () =>
|
||||
widget.Get<ButtonWidget>("GIVE_CASH").OnClick = () =>
|
||||
world.IssueOrder(new Order("DevGiveCash", world.LocalPlayer.PlayerActor, false));
|
||||
|
||||
var fastBuildCheckbox = widget.GetWidget<CheckboxWidget>("INSTANT_BUILD");
|
||||
var fastBuildCheckbox = widget.Get<CheckboxWidget>("INSTANT_BUILD");
|
||||
fastBuildCheckbox.IsChecked = () => devTrait.FastBuild;
|
||||
fastBuildCheckbox.OnClick = () => Order(world, "DevFastBuild");
|
||||
|
||||
var fastChargeCheckbox = widget.GetWidget<CheckboxWidget>("INSTANT_CHARGE");
|
||||
var fastChargeCheckbox = widget.Get<CheckboxWidget>("INSTANT_CHARGE");
|
||||
fastChargeCheckbox.IsChecked = () => devTrait.FastCharge;
|
||||
fastChargeCheckbox.OnClick = () => Order(world, "DevFastCharge");
|
||||
|
||||
var allTechCheckbox = widget.GetWidget<CheckboxWidget>("ENABLE_TECH");
|
||||
var allTechCheckbox = widget.Get<CheckboxWidget>("ENABLE_TECH");
|
||||
allTechCheckbox.IsChecked = () => devTrait.AllTech;
|
||||
allTechCheckbox.OnClick = () => Order(world, "DevEnableTech");
|
||||
|
||||
var powerCheckbox = widget.GetWidget<CheckboxWidget>("UNLIMITED_POWER");
|
||||
var powerCheckbox = widget.Get<CheckboxWidget>("UNLIMITED_POWER");
|
||||
powerCheckbox.IsChecked = () => devTrait.UnlimitedPower;
|
||||
powerCheckbox.OnClick = () => Order(world, "DevUnlimitedPower");
|
||||
|
||||
var buildAnywhereCheckbox = widget.GetWidget<CheckboxWidget>("BUILD_ANYWHERE");
|
||||
var buildAnywhereCheckbox = widget.Get<CheckboxWidget>("BUILD_ANYWHERE");
|
||||
buildAnywhereCheckbox.IsChecked = () => devTrait.BuildAnywhere;
|
||||
buildAnywhereCheckbox.OnClick = () => Order(world, "DevBuildAnywhere");
|
||||
|
||||
widget.GetWidget<ButtonWidget>("GIVE_EXPLORATION").OnClick = () =>
|
||||
widget.Get<ButtonWidget>("GIVE_EXPLORATION").OnClick = () =>
|
||||
world.IssueOrder(new Order("DevGiveExploration", world.LocalPlayer.PlayerActor, false));
|
||||
|
||||
widget.GetWidget<ButtonWidget>("CLOSE").OnClick = () => { Ui.CloseWindow(); onExit(); };
|
||||
widget.Get<ButtonWidget>("CLOSE").OnClick = () => { Ui.CloseWindow(); onExit(); };
|
||||
}
|
||||
|
||||
public void Order(World world, string order)
|
||||
|
||||
@@ -25,9 +25,9 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
{
|
||||
var panel = widget;
|
||||
ramp = initialRamp;
|
||||
var hueSlider = panel.GetWidget<SliderWidget>("HUE");
|
||||
var satSlider = panel.GetWidget<SliderWidget>("SAT");
|
||||
var lumSlider = panel.GetWidget<SliderWidget>("LUM");
|
||||
var hueSlider = panel.Get<SliderWidget>("HUE");
|
||||
var satSlider = panel.Get<SliderWidget>("SAT");
|
||||
var lumSlider = panel.Get<SliderWidget>("LUM");
|
||||
|
||||
Action sliderChanged = () =>
|
||||
{
|
||||
@@ -49,9 +49,9 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
lumSlider.Value = ramp.L / 255f;
|
||||
};
|
||||
|
||||
panel.GetWidget<ButtonWidget>("SAVE_BUTTON").OnClick = () => onSelect(ramp);
|
||||
panel.Get<ButtonWidget>("SAVE_BUTTON").OnClick = () => onSelect(ramp);
|
||||
|
||||
var randomButton = panel.GetWidget<ButtonWidget>("RANDOM_BUTTON");
|
||||
var randomButton = panel.Get<ButtonWidget>("RANDOM_BUTTON");
|
||||
if (randomButton != null)
|
||||
randomButton.OnClick = () =>
|
||||
{
|
||||
|
||||
@@ -59,9 +59,9 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
Game.ConnectionStateChanged += ConnectionStateChanged;
|
||||
|
||||
var panel = widget;
|
||||
panel.GetWidget<ButtonWidget>("ABORT_BUTTON").OnClick = () => { CloseWindow(); onAbort(); };
|
||||
panel.Get<ButtonWidget>("ABORT_BUTTON").OnClick = () => { CloseWindow(); onAbort(); };
|
||||
|
||||
widget.GetWidget<LabelWidget>("CONNECTING_DESC").GetText = () =>
|
||||
widget.Get<LabelWidget>("CONNECTING_DESC").GetText = () =>
|
||||
"Connecting to {0}:{1}...".F(host, port);
|
||||
}
|
||||
|
||||
@@ -85,10 +85,10 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
public ConnectionFailedLogic(Widget widget, string host, int port, Action onRetry, Action onAbort)
|
||||
{
|
||||
var panel = widget;
|
||||
panel.GetWidget<ButtonWidget>("ABORT_BUTTON").OnClick = () => { Ui.CloseWindow(); onAbort(); };
|
||||
panel.GetWidget<ButtonWidget>("RETRY_BUTTON").OnClick = () => { Ui.CloseWindow(); onRetry(); };
|
||||
panel.Get<ButtonWidget>("ABORT_BUTTON").OnClick = () => { Ui.CloseWindow(); onAbort(); };
|
||||
panel.Get<ButtonWidget>("RETRY_BUTTON").OnClick = () => { Ui.CloseWindow(); onRetry(); };
|
||||
|
||||
widget.GetWidget<LabelWidget>("CONNECTING_DESC").GetText = () =>
|
||||
widget.Get<LabelWidget>("CONNECTING_DESC").GetText = () =>
|
||||
"Could not connect to {0}:{1}".F(host, port);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,9 +28,9 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
public DiplomacyLogic(World world)
|
||||
{
|
||||
this.world = world;
|
||||
var root = Ui.Root.GetWidget("INGAME_ROOT");
|
||||
var diplomacyBG = root.GetWidget("DIPLOMACY_BG");
|
||||
var diplomacy = root.GetWidget<ButtonWidget>("INGAME_DIPLOMACY_BUTTON");
|
||||
var root = Ui.Root.Get("INGAME_ROOT");
|
||||
var diplomacyBG = root.Get("DIPLOMACY_BG");
|
||||
var diplomacy = root.Get<ButtonWidget>("INGAME_DIPLOMACY_BUTTON");
|
||||
|
||||
diplomacy.OnClick = () =>
|
||||
{
|
||||
@@ -129,7 +129,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
() => s == world.LocalPlayer.Stances[ p ],
|
||||
() => SetStance(dropdown, p, s));
|
||||
|
||||
item.GetWidget<LabelWidget>("LABEL").GetText = () => s.ToString();
|
||||
item.Get<LabelWidget>("LABEL").GetText = () => s.ToString();
|
||||
return item;
|
||||
};
|
||||
|
||||
|
||||
@@ -19,14 +19,14 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
public DirectConnectLogic(Widget widget, Action onExit, Action openLobby)
|
||||
{
|
||||
var panel = widget;
|
||||
var ipField = panel.GetWidget<TextFieldWidget>("IP");
|
||||
var portField = panel.GetWidget<TextFieldWidget>("PORT");
|
||||
var ipField = panel.Get<TextFieldWidget>("IP");
|
||||
var portField = panel.Get<TextFieldWidget>("PORT");
|
||||
|
||||
var last = Game.Settings.Player.LastServer.Split(':');
|
||||
ipField.Text = last.Length > 1 ? last[0] : "localhost";
|
||||
portField.Text = last.Length > 2 ? last[1] : "1234";
|
||||
|
||||
panel.GetWidget<ButtonWidget>("JOIN_BUTTON").OnClick = () =>
|
||||
panel.Get<ButtonWidget>("JOIN_BUTTON").OnClick = () =>
|
||||
{
|
||||
var port = Exts.WithDefault(1234, () => int.Parse(portField.Text));
|
||||
|
||||
@@ -37,7 +37,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
ConnectionLogic.Connect(ipField.Text, port, openLobby, onExit);
|
||||
};
|
||||
|
||||
panel.GetWidget<ButtonWidget>("BACK_BUTTON").OnClick = () => { Ui.CloseWindow(); onExit(); };
|
||||
panel.Get<ButtonWidget>("BACK_BUTTON").OnClick = () => { Ui.CloseWindow(); onExit(); };
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,9 +33,9 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
this.installData = installData;
|
||||
this.afterInstall = afterInstall;
|
||||
|
||||
panel = widget.GetWidget("INSTALL_DOWNLOAD_PANEL");
|
||||
progressBar = panel.GetWidget<ProgressBarWidget>("PROGRESS_BAR");
|
||||
statusLabel = panel.GetWidget<LabelWidget>("STATUS_LABEL");
|
||||
panel = widget.Get("INSTALL_DOWNLOAD_PANEL");
|
||||
progressBar = panel.Get<ProgressBarWidget>("PROGRESS_BAR");
|
||||
statusLabel = panel.Get<LabelWidget>("STATUS_LABEL");
|
||||
|
||||
ShowDownloadDialog();
|
||||
}
|
||||
@@ -44,10 +44,10 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
{
|
||||
statusLabel.GetText = () => "Initializing...";
|
||||
progressBar.SetIndeterminate(true);
|
||||
var retryButton = panel.GetWidget<ButtonWidget>("RETRY_BUTTON");
|
||||
var retryButton = panel.Get<ButtonWidget>("RETRY_BUTTON");
|
||||
retryButton.IsVisible = () => false;
|
||||
|
||||
var cancelButton = panel.GetWidget<ButtonWidget>("CANCEL_BUTTON");
|
||||
var cancelButton = panel.Get<ButtonWidget>("CANCEL_BUTTON");
|
||||
|
||||
// Save the package to a temp file
|
||||
var file = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName());
|
||||
|
||||
@@ -25,38 +25,38 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
Game.BeforeGameStart += UnregisterEvents;
|
||||
|
||||
var r = Ui.Root;
|
||||
gameRoot = r.GetWidget("INGAME_ROOT");
|
||||
var optionsBG = gameRoot.GetWidget("INGAME_OPTIONS_BG");
|
||||
gameRoot = r.Get("INGAME_ROOT");
|
||||
var optionsBG = gameRoot.Get("INGAME_OPTIONS_BG");
|
||||
|
||||
r.GetWidget<ButtonWidget>("INGAME_OPTIONS_BUTTON").OnClick = () =>
|
||||
r.Get<ButtonWidget>("INGAME_OPTIONS_BUTTON").OnClick = () =>
|
||||
optionsBG.Visible = !optionsBG.Visible;
|
||||
|
||||
var cheatsButton = gameRoot.GetWidget<ButtonWidget>("CHEATS_BUTTON");
|
||||
var cheatsButton = gameRoot.Get<ButtonWidget>("CHEATS_BUTTON");
|
||||
cheatsButton.OnClick = () =>
|
||||
{
|
||||
Game.OpenWindow("CHEATS_PANEL", new WidgetArgs() {{"onExit", () => {} }});
|
||||
};
|
||||
cheatsButton.IsVisible = () => world.LocalPlayer != null && world.LobbyInfo.GlobalSettings.AllowCheats;
|
||||
|
||||
optionsBG.GetWidget<ButtonWidget>("DISCONNECT").OnClick = () => LeaveGame(optionsBG);
|
||||
optionsBG.Get<ButtonWidget>("DISCONNECT").OnClick = () => LeaveGame(optionsBG);
|
||||
|
||||
optionsBG.GetWidget<ButtonWidget>("SETTINGS").OnClick = () => Ui.OpenWindow("SETTINGS_MENU");
|
||||
optionsBG.GetWidget<ButtonWidget>("MUSIC").OnClick = () => Ui.OpenWindow("MUSIC_MENU");
|
||||
optionsBG.GetWidget<ButtonWidget>("RESUME").OnClick = () => optionsBG.Visible = false;
|
||||
optionsBG.Get<ButtonWidget>("SETTINGS").OnClick = () => Ui.OpenWindow("SETTINGS_MENU");
|
||||
optionsBG.Get<ButtonWidget>("MUSIC").OnClick = () => Ui.OpenWindow("MUSIC_MENU");
|
||||
optionsBG.Get<ButtonWidget>("RESUME").OnClick = () => optionsBG.Visible = false;
|
||||
|
||||
optionsBG.GetWidget<ButtonWidget>("SURRENDER").OnClick = () =>
|
||||
optionsBG.Get<ButtonWidget>("SURRENDER").OnClick = () =>
|
||||
{
|
||||
optionsBG.Visible = false;
|
||||
world.IssueOrder(new Order("Surrender", world.LocalPlayer.PlayerActor, false));
|
||||
};
|
||||
|
||||
optionsBG.GetWidget("SURRENDER").IsVisible = () => (world.LocalPlayer != null && world.LocalPlayer.WinState == WinState.Undefined);
|
||||
optionsBG.Get("SURRENDER").IsVisible = () => (world.LocalPlayer != null && world.LocalPlayer.WinState == WinState.Undefined);
|
||||
|
||||
var postgameBG = gameRoot.GetWidget("POSTGAME_BG");
|
||||
var postgameText = postgameBG.GetWidget<LabelWidget>("TEXT");
|
||||
var postGameObserve = postgameBG.GetWidget<ButtonWidget>("POSTGAME_OBSERVE");
|
||||
var postgameBG = gameRoot.Get("POSTGAME_BG");
|
||||
var postgameText = postgameBG.Get<LabelWidget>("TEXT");
|
||||
var postGameObserve = postgameBG.Get<ButtonWidget>("POSTGAME_OBSERVE");
|
||||
|
||||
var postgameQuit = postgameBG.GetWidget<ButtonWidget>("POSTGAME_QUIT");
|
||||
var postgameQuit = postgameBG.Get<ButtonWidget>("POSTGAME_QUIT");
|
||||
postgameQuit.OnClick = () => LeaveGame(postgameQuit);
|
||||
|
||||
postGameObserve.OnClick = () => postgameQuit.Visible = false;
|
||||
@@ -93,7 +93,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
|
||||
void AddChatLine(Color c, string from, string text)
|
||||
{
|
||||
gameRoot.GetWidget<ChatDisplayWidget>("CHAT_DISPLAY").AddLine(c, from, text);
|
||||
gameRoot.Get<ChatDisplayWidget>("CHAT_DISPLAY").AddLine(c, from, text);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,13 +26,13 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
Game.BeforeGameStart += UnregisterEvents;
|
||||
|
||||
var r = Ui.Root;
|
||||
gameRoot = r.GetWidget("OBSERVER_ROOT");
|
||||
var optionsBG = gameRoot.GetWidget("INGAME_OPTIONS_BG");
|
||||
gameRoot = r.Get("OBSERVER_ROOT");
|
||||
var optionsBG = gameRoot.Get("INGAME_OPTIONS_BG");
|
||||
|
||||
r.GetWidget<ButtonWidget>("INGAME_OPTIONS_BUTTON").OnClick = () =>
|
||||
r.Get<ButtonWidget>("INGAME_OPTIONS_BUTTON").OnClick = () =>
|
||||
optionsBG.Visible = !optionsBG.Visible;
|
||||
|
||||
optionsBG.GetWidget<ButtonWidget>("DISCONNECT").OnClick = () =>
|
||||
optionsBG.Get<ButtonWidget>("DISCONNECT").OnClick = () =>
|
||||
{
|
||||
optionsBG.Visible = false;
|
||||
Game.Disconnect();
|
||||
@@ -41,10 +41,10 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
Ui.OpenWindow("MAINMENU_BG");
|
||||
};
|
||||
|
||||
optionsBG.GetWidget<ButtonWidget>("SETTINGS").OnClick = () => Ui.OpenWindow("SETTINGS_MENU");
|
||||
optionsBG.GetWidget<ButtonWidget>("MUSIC").OnClick = () => Ui.OpenWindow("MUSIC_MENU");
|
||||
optionsBG.GetWidget<ButtonWidget>("RESUME").OnClick = () => optionsBG.Visible = false;
|
||||
optionsBG.GetWidget<ButtonWidget>("SURRENDER").IsVisible = () => false;
|
||||
optionsBG.Get<ButtonWidget>("SETTINGS").OnClick = () => Ui.OpenWindow("SETTINGS_MENU");
|
||||
optionsBG.Get<ButtonWidget>("MUSIC").OnClick = () => Ui.OpenWindow("MUSIC_MENU");
|
||||
optionsBG.Get<ButtonWidget>("RESUME").OnClick = () => optionsBG.Visible = false;
|
||||
optionsBG.Get<ButtonWidget>("SURRENDER").IsVisible = () => false;
|
||||
}
|
||||
|
||||
void UnregisterEvents()
|
||||
@@ -55,7 +55,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
|
||||
void AddChatLine(Color c, string from, string text)
|
||||
{
|
||||
gameRoot.GetWidget<ChatDisplayWidget>("CHAT_DISPLAY").AddLine(c, from, text);
|
||||
gameRoot.Get<ChatDisplayWidget>("CHAT_DISPLAY").AddLine(c, from, text);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -98,21 +98,21 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
UpdateCurrentMap();
|
||||
PlayerPalettePreview = world.WorldActor.Trait<ColorPickerPaletteModifier>();
|
||||
PlayerPalettePreview.Ramp = Game.Settings.Player.ColorRamp;
|
||||
Players = lobby.GetWidget<ScrollPanelWidget>("PLAYERS");
|
||||
EditablePlayerTemplate = Players.GetWidget("TEMPLATE_EDITABLE_PLAYER");
|
||||
NonEditablePlayerTemplate = Players.GetWidget("TEMPLATE_NONEDITABLE_PLAYER");
|
||||
EmptySlotTemplate = Players.GetWidget("TEMPLATE_EMPTY");
|
||||
EditableSpectatorTemplate = Players.GetWidget("TEMPLATE_EDITABLE_SPECTATOR");
|
||||
NonEditableSpectatorTemplate = Players.GetWidget("TEMPLATE_NONEDITABLE_SPECTATOR");
|
||||
NewSpectatorTemplate = Players.GetWidget("TEMPLATE_NEW_SPECTATOR");
|
||||
Players = lobby.Get<ScrollPanelWidget>("PLAYERS");
|
||||
EditablePlayerTemplate = Players.Get("TEMPLATE_EDITABLE_PLAYER");
|
||||
NonEditablePlayerTemplate = Players.Get("TEMPLATE_NONEDITABLE_PLAYER");
|
||||
EmptySlotTemplate = Players.Get("TEMPLATE_EMPTY");
|
||||
EditableSpectatorTemplate = Players.Get("TEMPLATE_EDITABLE_SPECTATOR");
|
||||
NonEditableSpectatorTemplate = Players.Get("TEMPLATE_NONEDITABLE_SPECTATOR");
|
||||
NewSpectatorTemplate = Players.Get("TEMPLATE_NEW_SPECTATOR");
|
||||
|
||||
var mapPreview = lobby.GetWidget<MapPreviewWidget>("MAP_PREVIEW");
|
||||
var mapPreview = lobby.Get<MapPreviewWidget>("MAP_PREVIEW");
|
||||
mapPreview.IsVisible = () => Map != null;
|
||||
mapPreview.Map = () => Map;
|
||||
mapPreview.OnMouseDown = mi => LobbyUtils.SelectSpawnPoint( orderManager, mapPreview, Map, mi );
|
||||
mapPreview.SpawnColors = () => LobbyUtils.GetSpawnColors( orderManager, Map );
|
||||
|
||||
var mapTitle = lobby.GetWidget<LabelWidget>("MAP_TITLE");
|
||||
var mapTitle = lobby.GetOrNull<LabelWidget>("MAP_TITLE");
|
||||
if (mapTitle != null)
|
||||
{
|
||||
mapTitle.IsVisible = () => Map != null;
|
||||
@@ -124,7 +124,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
.ToDictionary(a => a.Race, a => a.Name);
|
||||
CountryNames.Add("random", "Any");
|
||||
|
||||
var mapButton = lobby.GetWidget<ButtonWidget>("CHANGEMAP_BUTTON");
|
||||
var mapButton = lobby.Get<ButtonWidget>("CHANGEMAP_BUTTON");
|
||||
mapButton.OnClick = () =>
|
||||
{
|
||||
var onSelect = new Action<Map>(m =>
|
||||
@@ -143,19 +143,19 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
};
|
||||
mapButton.IsVisible = () => mapButton.Visible && Game.IsHost;
|
||||
|
||||
var disconnectButton = lobby.GetWidget<ButtonWidget>("DISCONNECT_BUTTON");
|
||||
var disconnectButton = lobby.Get<ButtonWidget>("DISCONNECT_BUTTON");
|
||||
disconnectButton.OnClick = () => { CloseWindow(); onExit(); };
|
||||
|
||||
var gameStarting = false;
|
||||
|
||||
var allowCheats = lobby.GetWidget<CheckboxWidget>("ALLOWCHEATS_CHECKBOX");
|
||||
var allowCheats = lobby.Get<CheckboxWidget>("ALLOWCHEATS_CHECKBOX");
|
||||
allowCheats.IsChecked = () => orderManager.LobbyInfo.GlobalSettings.AllowCheats;
|
||||
allowCheats.IsDisabled = () => !Game.IsHost || gameStarting || orderManager.LocalClient == null
|
||||
|| orderManager.LocalClient.IsReady;
|
||||
allowCheats.OnClick = () => orderManager.IssueOrder(Order.Command(
|
||||
"allowcheats {0}".F(!orderManager.LobbyInfo.GlobalSettings.AllowCheats)));
|
||||
|
||||
var startGameButton = lobby.GetWidget<ButtonWidget>("START_GAME_BUTTON");
|
||||
var startGameButton = lobby.Get<ButtonWidget>("START_GAME_BUTTON");
|
||||
startGameButton.IsVisible = () => Game.IsHost;
|
||||
startGameButton.IsDisabled = () => gameStarting;
|
||||
startGameButton.OnClick = () =>
|
||||
@@ -165,8 +165,8 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
};
|
||||
|
||||
bool teamChat = false;
|
||||
var chatLabel = lobby.GetWidget<LabelWidget>("LABEL_CHATTYPE");
|
||||
var chatTextField = lobby.GetWidget<TextFieldWidget>("CHAT_TEXTFIELD");
|
||||
var chatLabel = lobby.Get<LabelWidget>("LABEL_CHATTYPE");
|
||||
var chatTextField = lobby.Get<TextFieldWidget>("CHAT_TEXTFIELD");
|
||||
|
||||
chatTextField.OnEnterKey = () =>
|
||||
{
|
||||
@@ -185,11 +185,11 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
return true;
|
||||
};
|
||||
|
||||
chatPanel = lobby.GetWidget<ScrollPanelWidget>("CHAT_DISPLAY");
|
||||
chatTemplate = chatPanel.GetWidget("CHAT_TEMPLATE");
|
||||
chatPanel = lobby.Get<ScrollPanelWidget>("CHAT_DISPLAY");
|
||||
chatTemplate = chatPanel.Get("CHAT_TEMPLATE");
|
||||
chatPanel.RemoveChildren();
|
||||
|
||||
var musicButton = lobby.GetWidget<ButtonWidget>("MUSIC_BUTTON");
|
||||
var musicButton = lobby.GetOrNull<ButtonWidget>("MUSIC_BUTTON");
|
||||
if (musicButton != null)
|
||||
musicButton.OnClick = () => Ui.OpenWindow("MUSIC_PANEL", new WidgetArgs
|
||||
{ { "onExit", () => {} } });
|
||||
@@ -208,9 +208,9 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
void AddChatLine(Color c, string from, string text)
|
||||
{
|
||||
var template = chatTemplate.Clone();
|
||||
var nameLabel = template.GetWidget<LabelWidget>("NAME");
|
||||
var timeLabel = template.GetWidget<LabelWidget>("TIME");
|
||||
var textLabel = template.GetWidget<LabelWidget>("TEXT");
|
||||
var nameLabel = template.Get<LabelWidget>("NAME");
|
||||
var timeLabel = template.Get<LabelWidget>("TIME");
|
||||
var textLabel = template.Get<LabelWidget>("TEXT");
|
||||
|
||||
var name = from + ":";
|
||||
var font = Game.Renderer.Fonts[nameLabel.Font];
|
||||
@@ -246,7 +246,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
MapUid = orderManager.LobbyInfo.GlobalSettings.Map;
|
||||
Map = new Map(Game.modData.AvailableMaps[MapUid].Path);
|
||||
|
||||
var title = Ui.Root.GetWidget<LabelWidget>("TITLE");
|
||||
var title = Ui.Root.Get<LabelWidget>("TITLE");
|
||||
title.Text = orderManager.LobbyInfo.GlobalSettings.ServerName;
|
||||
}
|
||||
|
||||
@@ -272,7 +272,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
|
||||
if (Game.IsHost)
|
||||
{
|
||||
var name = template.GetWidget<DropDownButtonWidget>("NAME_HOST");
|
||||
var name = template.Get<DropDownButtonWidget>("NAME_HOST");
|
||||
name.IsVisible = () => true;
|
||||
name.IsDisabled = () => ready;
|
||||
name.GetText = getText;
|
||||
@@ -280,12 +280,12 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
}
|
||||
else
|
||||
{
|
||||
var name = template.GetWidget<LabelWidget>("NAME");
|
||||
var name = template.Get<LabelWidget>("NAME");
|
||||
name.IsVisible = () => true;
|
||||
name.GetText = getText;
|
||||
}
|
||||
|
||||
var join = template.GetWidget<ButtonWidget>("JOIN");
|
||||
var join = template.Get<ButtonWidget>("JOIN");
|
||||
join.IsVisible = () => !slot.Closed;
|
||||
join.IsDisabled = () => ready;
|
||||
join.OnClick = () => orderManager.IssueOrder(Order.Command("slot " + key));
|
||||
@@ -300,7 +300,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
|
||||
if (client.Bot != null)
|
||||
{
|
||||
var name = template.GetWidget<DropDownButtonWidget>("BOT_DROPDOWN");
|
||||
var name = template.Get<DropDownButtonWidget>("BOT_DROPDOWN");
|
||||
name.IsVisible = () => true;
|
||||
name.IsDisabled = () => ready;
|
||||
name.GetText = () => client.Name;
|
||||
@@ -308,30 +308,30 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
}
|
||||
else
|
||||
{
|
||||
var name = template.GetWidget<TextFieldWidget>("NAME");
|
||||
var name = template.Get<TextFieldWidget>("NAME");
|
||||
name.IsVisible = () => true;
|
||||
name.IsDisabled = () => ready;
|
||||
LobbyUtils.SetupNameWidget(orderManager, client, name);
|
||||
}
|
||||
|
||||
var color = template.GetWidget<DropDownButtonWidget>("COLOR");
|
||||
var color = template.Get<DropDownButtonWidget>("COLOR");
|
||||
color.IsDisabled = () => slot.LockColor || ready;
|
||||
color.OnMouseDown = _ => LobbyUtils.ShowColorDropDown(color, client, orderManager, PlayerPalettePreview);
|
||||
|
||||
var colorBlock = color.GetWidget<ColorBlockWidget>("COLORBLOCK");
|
||||
var colorBlock = color.Get<ColorBlockWidget>("COLORBLOCK");
|
||||
colorBlock.GetColor = () => client.ColorRamp.GetColor(0);
|
||||
|
||||
var faction = template.GetWidget<DropDownButtonWidget>("FACTION");
|
||||
var faction = template.Get<DropDownButtonWidget>("FACTION");
|
||||
faction.IsDisabled = () => slot.LockRace || ready;
|
||||
faction.OnMouseDown = _ => LobbyUtils.ShowRaceDropDown(faction, client, orderManager, CountryNames);
|
||||
|
||||
var factionname = faction.GetWidget<LabelWidget>("FACTIONNAME");
|
||||
var factionname = faction.Get<LabelWidget>("FACTIONNAME");
|
||||
factionname.GetText = () => CountryNames[client.Country];
|
||||
var factionflag = faction.GetWidget<ImageWidget>("FACTIONFLAG");
|
||||
var factionflag = faction.Get<ImageWidget>("FACTIONFLAG");
|
||||
factionflag.GetImageName = () => client.Country;
|
||||
factionflag.GetImageCollection = () => "flags";
|
||||
|
||||
var team = template.GetWidget<DropDownButtonWidget>("TEAM");
|
||||
var team = template.Get<DropDownButtonWidget>("TEAM");
|
||||
team.IsDisabled = () => slot.LockTeam || ready;
|
||||
team.OnMouseDown = _ => LobbyUtils.ShowTeamDropDown(team, client, orderManager, Map);
|
||||
team.GetText = () => (client.Team == 0) ? "-" : client.Team.ToString();
|
||||
@@ -339,35 +339,35 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
if (client.Bot == null)
|
||||
{
|
||||
// local player
|
||||
var status = template.GetWidget<CheckboxWidget>("STATUS_CHECKBOX");
|
||||
var status = template.Get<CheckboxWidget>("STATUS_CHECKBOX");
|
||||
status.IsChecked = () => ready;
|
||||
status.IsVisible = () => true;
|
||||
status.OnClick += CycleReady;
|
||||
}
|
||||
else // Bot
|
||||
template.GetWidget<ImageWidget>("STATUS_IMAGE").IsVisible = () => true;
|
||||
template.Get<ImageWidget>("STATUS_IMAGE").IsVisible = () => true;
|
||||
}
|
||||
else
|
||||
{ // Non-editable player in slot
|
||||
template = NonEditablePlayerTemplate.Clone();
|
||||
template.GetWidget<LabelWidget>("NAME").GetText = () => client.Name;
|
||||
var color = template.GetWidget<ColorBlockWidget>("COLOR");
|
||||
template.Get<LabelWidget>("NAME").GetText = () => client.Name;
|
||||
var color = template.Get<ColorBlockWidget>("COLOR");
|
||||
color.GetColor = () => client.ColorRamp.GetColor(0);
|
||||
|
||||
var faction = template.GetWidget<LabelWidget>("FACTION");
|
||||
var factionname = faction.GetWidget<LabelWidget>("FACTIONNAME");
|
||||
var faction = template.Get<LabelWidget>("FACTION");
|
||||
var factionname = faction.Get<LabelWidget>("FACTIONNAME");
|
||||
factionname.GetText = () => CountryNames[client.Country];
|
||||
var factionflag = faction.GetWidget<ImageWidget>("FACTIONFLAG");
|
||||
var factionflag = faction.Get<ImageWidget>("FACTIONFLAG");
|
||||
factionflag.GetImageName = () => client.Country;
|
||||
factionflag.GetImageCollection = () => "flags";
|
||||
|
||||
var team = template.GetWidget<LabelWidget>("TEAM");
|
||||
var team = template.Get<LabelWidget>("TEAM");
|
||||
team.GetText = () => (client.Team == 0) ? "-" : client.Team.ToString();
|
||||
|
||||
template.GetWidget<ImageWidget>("STATUS_IMAGE").IsVisible = () =>
|
||||
template.Get<ImageWidget>("STATUS_IMAGE").IsVisible = () =>
|
||||
client.Bot != null || client.IsReady;
|
||||
|
||||
var kickButton = template.GetWidget<ButtonWidget>("KICK");
|
||||
var kickButton = template.Get<ButtonWidget>("KICK");
|
||||
kickButton.IsVisible = () => Game.IsHost && client.Index != orderManager.LocalClient.Index;
|
||||
kickButton.IsDisabled = () => orderManager.LocalClient.IsReady;
|
||||
kickButton.OnClick = () => orderManager.IssueOrder(Order.Command("kick " + client.Index));
|
||||
@@ -388,18 +388,18 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
if (c.Index == orderManager.LocalClient.Index)
|
||||
{
|
||||
template = EditableSpectatorTemplate.Clone();
|
||||
var name = template.GetWidget<TextFieldWidget>("NAME");
|
||||
var name = template.Get<TextFieldWidget>("NAME");
|
||||
name.IsDisabled = () => ready;
|
||||
LobbyUtils.SetupNameWidget(orderManager, c, name);
|
||||
|
||||
var color = template.GetWidget<DropDownButtonWidget>("COLOR");
|
||||
var color = template.Get<DropDownButtonWidget>("COLOR");
|
||||
color.IsDisabled = () => ready;
|
||||
color.OnMouseDown = _ => LobbyUtils.ShowColorDropDown(color, c, orderManager, PlayerPalettePreview);
|
||||
|
||||
var colorBlock = color.GetWidget<ColorBlockWidget>("COLORBLOCK");
|
||||
var colorBlock = color.Get<ColorBlockWidget>("COLORBLOCK");
|
||||
colorBlock.GetColor = () => c.ColorRamp.GetColor(0);
|
||||
|
||||
var status = template.GetWidget<CheckboxWidget>("STATUS_CHECKBOX");
|
||||
var status = template.Get<CheckboxWidget>("STATUS_CHECKBOX");
|
||||
status.IsChecked = () => ready;
|
||||
status.OnClick += CycleReady;
|
||||
}
|
||||
@@ -407,13 +407,13 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
else
|
||||
{
|
||||
template = NonEditableSpectatorTemplate.Clone();
|
||||
template.GetWidget<LabelWidget>("NAME").GetText = () => c.Name;
|
||||
var color = template.GetWidget<ColorBlockWidget>("COLOR");
|
||||
template.Get<LabelWidget>("NAME").GetText = () => c.Name;
|
||||
var color = template.Get<ColorBlockWidget>("COLOR");
|
||||
color.GetColor = () => c.ColorRamp.GetColor(0);
|
||||
|
||||
template.GetWidget<ImageWidget>("STATUS_IMAGE").IsVisible = () => c.Bot != null || c.IsReady;
|
||||
template.Get<ImageWidget>("STATUS_IMAGE").IsVisible = () => c.Bot != null || c.IsReady;
|
||||
|
||||
var kickButton = template.GetWidget<ButtonWidget>("KICK");
|
||||
var kickButton = template.Get<ButtonWidget>("KICK");
|
||||
kickButton.IsVisible = () => Game.IsHost && c.Index != orderManager.LocalClient.Index;
|
||||
kickButton.IsDisabled = () => orderManager.LocalClient.IsReady;
|
||||
kickButton.OnClick = () => orderManager.IssueOrder(Order.Command("kick " + c.Index));
|
||||
@@ -427,7 +427,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
if (orderManager.LocalClient.Slot != null)
|
||||
{
|
||||
var spec = NewSpectatorTemplate.Clone();
|
||||
var btn = spec.GetWidget<ButtonWidget>("SPECTATE");
|
||||
var btn = spec.Get<ButtonWidget>("SPECTATE");
|
||||
btn.OnClick = () => orderManager.IssueOrder(Order.Command("spectate"));
|
||||
btn.IsDisabled = () => orderManager.LocalClient.IsReady;
|
||||
spec.IsVisible = () => true;
|
||||
|
||||
@@ -79,7 +79,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
var item = ScrollItemWidget.Setup(itemTemplate,
|
||||
o.Selected,
|
||||
() => orderManager.IssueOrder(Order.Command(o.Order)));
|
||||
item.GetWidget<LabelWidget>("LABEL").GetText = () => o.Title;
|
||||
item.Get<LabelWidget>("LABEL").GetText = () => o.Title;
|
||||
return item;
|
||||
};
|
||||
|
||||
@@ -94,7 +94,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
var item = ScrollItemWidget.Setup(itemTemplate,
|
||||
() => client.Team == ii,
|
||||
() => orderManager.IssueOrder(Order.Command("team {0} {1}".F(client.Index, ii))));
|
||||
item.GetWidget<LabelWidget>("LABEL").GetText = () => ii == 0 ? "-" : ii.ToString();
|
||||
item.Get<LabelWidget>("LABEL").GetText = () => ii == 0 ? "-" : ii.ToString();
|
||||
return item;
|
||||
};
|
||||
|
||||
@@ -110,8 +110,8 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
var item = ScrollItemWidget.Setup(itemTemplate,
|
||||
() => client.Country == race,
|
||||
() => orderManager.IssueOrder(Order.Command("race {0} {1}".F(client.Index, race))));
|
||||
item.GetWidget<LabelWidget>("LABEL").GetText = () => countryNames[race];
|
||||
var flag = item.GetWidget<ImageWidget>("FLAG");
|
||||
item.Get<LabelWidget>("LABEL").GetText = () => countryNames[race];
|
||||
var flag = item.Get<ImageWidget>("FLAG");
|
||||
flag.GetImageCollection = () => "flags";
|
||||
flag.GetImageName = () => race;
|
||||
return item;
|
||||
|
||||
@@ -22,26 +22,26 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
rootMenu = widget;
|
||||
|
||||
Game.modData.WidgetLoader.LoadWidget( new WidgetArgs(), Ui.Root, "PERF_BG" );
|
||||
widget.GetWidget<ButtonWidget>("MAINMENU_BUTTON_JOIN").OnClick = () => OpenGamePanel("JOINSERVER_BG");
|
||||
widget.GetWidget<ButtonWidget>("MAINMENU_BUTTON_CREATE").OnClick = () => OpenGamePanel("CREATESERVER_BG");
|
||||
widget.GetWidget<ButtonWidget>("MAINMENU_BUTTON_DIRECTCONNECT").OnClick = () => OpenGamePanel("DIRECTCONNECT_BG");
|
||||
widget.GetWidget<ButtonWidget>("MAINMENU_BUTTON_SETTINGS").OnClick = () => Ui.OpenWindow("SETTINGS_MENU");
|
||||
widget.GetWidget<ButtonWidget>("MAINMENU_BUTTON_MUSIC").OnClick = () => Ui.OpenWindow("MUSIC_MENU");
|
||||
widget.Get<ButtonWidget>("MAINMENU_BUTTON_JOIN").OnClick = () => OpenGamePanel("JOINSERVER_BG");
|
||||
widget.Get<ButtonWidget>("MAINMENU_BUTTON_CREATE").OnClick = () => OpenGamePanel("CREATESERVER_BG");
|
||||
widget.Get<ButtonWidget>("MAINMENU_BUTTON_DIRECTCONNECT").OnClick = () => OpenGamePanel("DIRECTCONNECT_BG");
|
||||
widget.Get<ButtonWidget>("MAINMENU_BUTTON_SETTINGS").OnClick = () => Ui.OpenWindow("SETTINGS_MENU");
|
||||
widget.Get<ButtonWidget>("MAINMENU_BUTTON_MUSIC").OnClick = () => Ui.OpenWindow("MUSIC_MENU");
|
||||
|
||||
widget.GetWidget<ButtonWidget>("MAINMENU_BUTTON_MODS").OnClick = () =>
|
||||
widget.Get<ButtonWidget>("MAINMENU_BUTTON_MODS").OnClick = () =>
|
||||
Ui.OpenWindow("MODS_PANEL", new WidgetArgs()
|
||||
{
|
||||
{ "onExit", () => {} },
|
||||
{ "onSwitch", RemoveShellmapUI }
|
||||
});
|
||||
|
||||
widget.GetWidget<ButtonWidget>("MAINMENU_BUTTON_REPLAY_VIEWER").OnClick = () =>
|
||||
widget.Get<ButtonWidget>("MAINMENU_BUTTON_REPLAY_VIEWER").OnClick = () =>
|
||||
Ui.OpenWindow("REPLAYBROWSER_BG", new WidgetArgs()
|
||||
{
|
||||
{ "onExit", () => {} },
|
||||
{ "onStart", RemoveShellmapUI }
|
||||
});
|
||||
widget.GetWidget<ButtonWidget>("MAINMENU_BUTTON_QUIT").OnClick = () => Game.Exit();
|
||||
widget.Get<ButtonWidget>("MAINMENU_BUTTON_QUIT").OnClick = () => Game.Exit();
|
||||
}
|
||||
|
||||
void RemoveShellmapUI()
|
||||
|
||||
@@ -27,13 +27,13 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
{
|
||||
map = Game.modData.AvailableMaps[WidgetUtils.ChooseInitialMap(initialMap)];
|
||||
|
||||
widget.GetWidget<ButtonWidget>("BUTTON_OK").OnClick = () => { Ui.CloseWindow(); onSelect(map); };
|
||||
widget.GetWidget<ButtonWidget>("BUTTON_CANCEL").OnClick = () => { Ui.CloseWindow(); onExit(); };
|
||||
widget.Get<ButtonWidget>("BUTTON_OK").OnClick = () => { Ui.CloseWindow(); onSelect(map); };
|
||||
widget.Get<ButtonWidget>("BUTTON_CANCEL").OnClick = () => { Ui.CloseWindow(); onExit(); };
|
||||
|
||||
scrollpanel = widget.GetWidget<ScrollPanelWidget>("MAP_LIST");
|
||||
itemTemplate = scrollpanel.GetWidget<ScrollItemWidget>("MAP_TEMPLATE");
|
||||
scrollpanel = widget.Get<ScrollPanelWidget>("MAP_LIST");
|
||||
itemTemplate = scrollpanel.Get<ScrollItemWidget>("MAP_TEMPLATE");
|
||||
|
||||
var gameModeDropdown = widget.GetWidget<DropDownButtonWidget>("GAMEMODE_FILTER");
|
||||
var gameModeDropdown = widget.GetOrNull<DropDownButtonWidget>("GAMEMODE_FILTER");
|
||||
if (gameModeDropdown != null)
|
||||
{
|
||||
var selectableMaps = Game.modData.AvailableMaps.Where(m => m.Value.Selectable);
|
||||
@@ -52,7 +52,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
var item = ScrollItemWidget.Setup(template,
|
||||
() => gameMode == ii.First,
|
||||
() => { gameMode = ii.First; EnumerateMaps(); });
|
||||
item.GetWidget<LabelWidget>("LABEL").GetText = () => showItem(ii);
|
||||
item.Get<LabelWidget>("LABEL").GetText = () => showItem(ii);
|
||||
return item;
|
||||
};
|
||||
|
||||
@@ -82,19 +82,19 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
var m = kv.Value;
|
||||
var item = ScrollItemWidget.Setup(itemTemplate, () => m == map, () => map = m);
|
||||
|
||||
var titleLabel = item.GetWidget<LabelWidget>("TITLE");
|
||||
var titleLabel = item.Get<LabelWidget>("TITLE");
|
||||
titleLabel.GetText = () => m.Title;
|
||||
|
||||
var previewWidget = item.GetWidget<MapPreviewWidget>("PREVIEW");
|
||||
var previewWidget = item.Get<MapPreviewWidget>("PREVIEW");
|
||||
previewWidget.IgnoreMouseOver = true;
|
||||
previewWidget.IgnoreMouseInput = true;
|
||||
previewWidget.Map = () => m;
|
||||
|
||||
var detailsWidget = item.GetWidget<LabelWidget>("DETAILS");
|
||||
var detailsWidget = item.Get<LabelWidget>("DETAILS");
|
||||
if (detailsWidget != null)
|
||||
detailsWidget.GetText = () => "{0} ({1})".F(m.Type, m.PlayerCount);
|
||||
|
||||
var authorWidget = item.GetWidget<LabelWidget>("AUTHOR");
|
||||
var authorWidget = item.Get<LabelWidget>("AUTHOR");
|
||||
if (authorWidget != null)
|
||||
authorWidget.GetText = () => m.Author;
|
||||
|
||||
|
||||
@@ -23,24 +23,24 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
public ModBrowserLogic(Widget widget, Action onSwitch, Action onExit)
|
||||
{
|
||||
var panel = widget;
|
||||
var modList = panel.GetWidget<ScrollPanelWidget>("MOD_LIST");
|
||||
var loadButton = panel.GetWidget<ButtonWidget>("LOAD_BUTTON");
|
||||
var modList = panel.Get<ScrollPanelWidget>("MOD_LIST");
|
||||
var loadButton = panel.Get<ButtonWidget>("LOAD_BUTTON");
|
||||
loadButton.OnClick = () => LoadMod(currentMod.Id, onSwitch);
|
||||
loadButton.IsDisabled = () => currentMod.Id == Game.CurrentMods.Keys.First();
|
||||
|
||||
panel.GetWidget<ButtonWidget>("BACK_BUTTON").OnClick = () => { Ui.CloseWindow(); onExit(); };
|
||||
panel.Get<ButtonWidget>("BACK_BUTTON").OnClick = () => { Ui.CloseWindow(); onExit(); };
|
||||
currentMod = Mod.AllMods[Game.modData.Manifest.Mods[0]];
|
||||
|
||||
// Mod list
|
||||
var modTemplate = modList.GetWidget<ScrollItemWidget>("MOD_TEMPLATE");
|
||||
var modTemplate = modList.Get<ScrollItemWidget>("MOD_TEMPLATE");
|
||||
|
||||
foreach (var m in Mod.AllMods)
|
||||
{
|
||||
var mod = m.Value;
|
||||
var item = ScrollItemWidget.Setup(modTemplate, () => currentMod == mod, () => currentMod = mod);
|
||||
item.GetWidget<LabelWidget>("TITLE").GetText = () => mod.Title;
|
||||
item.GetWidget<LabelWidget>("VERSION").GetText = () => mod.Version;
|
||||
item.GetWidget<LabelWidget>("AUTHOR").GetText = () => mod.Author;
|
||||
item.Get<LabelWidget>("TITLE").GetText = () => mod.Title;
|
||||
item.Get<LabelWidget>("VERSION").GetText = () => mod.Version;
|
||||
item.Get<LabelWidget>("AUTHOR").GetText = () => mod.Author;
|
||||
modList.AddChild(item);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,32 +34,32 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
|
||||
public MusicPlayerLogic()
|
||||
{
|
||||
bg = Ui.Root.GetWidget("MUSIC_MENU");
|
||||
bg = Ui.Root.Get("MUSIC_MENU");
|
||||
CurrentSong = GetNextSong();
|
||||
|
||||
bg.GetWidget( "BUTTON_PAUSE" ).IsVisible = () => Sound.MusicPlaying;
|
||||
bg.GetWidget( "BUTTON_PLAY" ).IsVisible = () => !Sound.MusicPlaying;
|
||||
bg.Get( "BUTTON_PAUSE" ).IsVisible = () => Sound.MusicPlaying;
|
||||
bg.Get( "BUTTON_PLAY" ).IsVisible = () => !Sound.MusicPlaying;
|
||||
|
||||
bg.GetWidget<ButtonWidget>("BUTTON_CLOSE").OnClick =
|
||||
bg.Get<ButtonWidget>("BUTTON_CLOSE").OnClick =
|
||||
() => { Game.Settings.Save(); Ui.CloseWindow(); };
|
||||
|
||||
bg.GetWidget("BUTTON_INSTALL").IsVisible = () => false;
|
||||
bg.Get("BUTTON_INSTALL").IsVisible = () => false;
|
||||
|
||||
bg.GetWidget<ButtonWidget>("BUTTON_PLAY").OnClick = () => Play( CurrentSong );
|
||||
bg.GetWidget<ButtonWidget>("BUTTON_PAUSE").OnClick = Sound.PauseMusic;
|
||||
bg.GetWidget<ButtonWidget>("BUTTON_STOP").OnClick = Sound.StopMusic;
|
||||
bg.GetWidget<ButtonWidget>("BUTTON_NEXT").OnClick = () => Play( GetNextSong() );
|
||||
bg.GetWidget<ButtonWidget>("BUTTON_PREV").OnClick = () => Play( GetPrevSong() );
|
||||
bg.Get<ButtonWidget>("BUTTON_PLAY").OnClick = () => Play( CurrentSong );
|
||||
bg.Get<ButtonWidget>("BUTTON_PAUSE").OnClick = Sound.PauseMusic;
|
||||
bg.Get<ButtonWidget>("BUTTON_STOP").OnClick = Sound.StopMusic;
|
||||
bg.Get<ButtonWidget>("BUTTON_NEXT").OnClick = () => Play( GetNextSong() );
|
||||
bg.Get<ButtonWidget>("BUTTON_PREV").OnClick = () => Play( GetPrevSong() );
|
||||
|
||||
var shuffleCheckbox = bg.GetWidget<CheckboxWidget>("SHUFFLE");
|
||||
var shuffleCheckbox = bg.Get<CheckboxWidget>("SHUFFLE");
|
||||
shuffleCheckbox.IsChecked = () => Game.Settings.Sound.Shuffle;
|
||||
shuffleCheckbox.OnClick = () => Game.Settings.Sound.Shuffle ^= true;
|
||||
|
||||
var repeatCheckbox = bg.GetWidget<CheckboxWidget>("REPEAT");
|
||||
var repeatCheckbox = bg.Get<CheckboxWidget>("REPEAT");
|
||||
repeatCheckbox.IsChecked = () => Game.Settings.Sound.Repeat;
|
||||
repeatCheckbox.OnClick = () => Game.Settings.Sound.Repeat ^= true;
|
||||
|
||||
bg.GetWidget<LabelWidget>("TIME").GetText = () =>
|
||||
bg.Get<LabelWidget>("TIME").GetText = () =>
|
||||
{
|
||||
if (CurrentSong == null)
|
||||
return "";
|
||||
@@ -68,14 +68,14 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
WidgetUtils.FormatTimeSeconds( Rules.Music[CurrentSong].Length ));
|
||||
};
|
||||
|
||||
var ml = bg.GetWidget<ScrollPanelWidget>("MUSIC_LIST");
|
||||
var itemTemplate = ml.GetWidget<ScrollItemWidget>("MUSIC_TEMPLATE");
|
||||
var ml = bg.Get<ScrollPanelWidget>("MUSIC_LIST");
|
||||
var itemTemplate = ml.Get<ScrollItemWidget>("MUSIC_TEMPLATE");
|
||||
|
||||
if (!Rules.InstalledMusic.Any())
|
||||
{
|
||||
itemTemplate.IsVisible = () => true;
|
||||
itemTemplate.GetWidget<LabelWidget>("TITLE").GetText = () => "No Music Installed";
|
||||
itemTemplate.GetWidget<LabelWidget>("TITLE").Align = TextAlign.Center;
|
||||
itemTemplate.Get<LabelWidget>("TITLE").GetText = () => "No Music Installed";
|
||||
itemTemplate.Get<LabelWidget>("TITLE").Align = TextAlign.Center;
|
||||
}
|
||||
|
||||
foreach (var kv in Rules.InstalledMusic)
|
||||
@@ -84,8 +84,8 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
var item = ScrollItemWidget.Setup(itemTemplate,
|
||||
() => CurrentSong == song,
|
||||
() => Play( song ));
|
||||
item.GetWidget<LabelWidget>("TITLE").GetText = () => Rules.Music[song].Title;
|
||||
item.GetWidget<LabelWidget>("LENGTH").GetText =
|
||||
item.Get<LabelWidget>("TITLE").GetText = () => Rules.Music[song].Title;
|
||||
item.Get<LabelWidget>("LENGTH").GetText =
|
||||
() => WidgetUtils.FormatTimeSeconds( Rules.Music[song].Length );
|
||||
ml.AddChild(item);
|
||||
}
|
||||
|
||||
@@ -21,9 +21,9 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
{
|
||||
/* todo: attach this to the correct widget, to remove the lookups below */
|
||||
var r = Ui.Root;
|
||||
var gameRoot = r.GetWidget("INGAME_ROOT");
|
||||
var gameRoot = r.Get("INGAME_ROOT");
|
||||
|
||||
var moneybin = gameRoot.GetWidget("INGAME_MONEY_BIN");
|
||||
var moneybin = gameRoot.Get("INGAME_MONEY_BIN");
|
||||
moneybin.IsVisible = () => {
|
||||
return world.LocalPlayer.WinState == WinState.Undefined;
|
||||
};
|
||||
@@ -36,7 +36,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
static void BindOrderButton<T>(World world, Widget parent, string button)
|
||||
where T : IOrderGenerator, new()
|
||||
{
|
||||
var w = parent.GetWidget<OrderButtonWidget>(button);
|
||||
var w = parent.GetOrNull<OrderButtonWidget>(button);
|
||||
if (w != null)
|
||||
{
|
||||
w.Pressed = () => world.OrderGenerator is T;
|
||||
|
||||
@@ -18,11 +18,11 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
public PerfDebugLogic()
|
||||
{
|
||||
var r = Ui.Root;
|
||||
var perfRoot = r.GetWidget("PERF_BG");
|
||||
var perfRoot = r.Get("PERF_BG");
|
||||
perfRoot.IsVisible = () => perfRoot.Visible && Game.Settings.Debug.PerfGraph;
|
||||
|
||||
// Perf text
|
||||
var perfText = perfRoot.GetWidget<LabelWidget>("TEXT");
|
||||
var perfText = perfRoot.Get<LabelWidget>("TEXT");
|
||||
perfText.GetText = () => "Render {0} ({5}={2:F1} ms)\nTick {4} ({3:F1} ms)".F(
|
||||
Game.RenderFrame,
|
||||
Game.NetFrameNumber,
|
||||
|
||||
@@ -31,18 +31,18 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
public RAInstallFromCDLogic(Widget widget, Action continueLoading)
|
||||
{
|
||||
this.continueLoading = continueLoading;
|
||||
panel = widget.GetWidget("INSTALL_FROMCD_PANEL");
|
||||
progressBar = panel.GetWidget<ProgressBarWidget>("PROGRESS_BAR");
|
||||
statusLabel = panel.GetWidget<LabelWidget>("STATUS_LABEL");
|
||||
panel = widget.Get("INSTALL_FROMCD_PANEL");
|
||||
progressBar = panel.Get<ProgressBarWidget>("PROGRESS_BAR");
|
||||
statusLabel = panel.Get<LabelWidget>("STATUS_LABEL");
|
||||
|
||||
backButton = panel.GetWidget<ButtonWidget>("BACK_BUTTON");
|
||||
backButton = panel.Get<ButtonWidget>("BACK_BUTTON");
|
||||
backButton.OnClick = Ui.CloseWindow;
|
||||
|
||||
retryButton = panel.GetWidget<ButtonWidget>("RETRY_BUTTON");
|
||||
retryButton = panel.Get<ButtonWidget>("RETRY_BUTTON");
|
||||
retryButton.OnClick = CheckForDisk;
|
||||
|
||||
installingContainer = panel.GetWidget("INSTALLING");
|
||||
insertDiskContainer = panel.GetWidget("INSERT_DISK");
|
||||
installingContainer = panel.Get("INSTALLING");
|
||||
insertDiskContainer = panel.Get("INSERT_DISK");
|
||||
CheckForDisk();
|
||||
}
|
||||
|
||||
|
||||
@@ -19,20 +19,20 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
[ObjectCreator.UseCtor]
|
||||
public RAInstallLogic(Widget widget, Dictionary<string,string> installData, Action continueLoading)
|
||||
{
|
||||
var panel = widget.GetWidget("INSTALL_PANEL");
|
||||
var panel = widget.Get("INSTALL_PANEL");
|
||||
var args = new WidgetArgs()
|
||||
{
|
||||
{ "afterInstall", () => { Ui.CloseWindow(); continueLoading(); } },
|
||||
{ "installData", installData }
|
||||
};
|
||||
|
||||
panel.GetWidget<ButtonWidget>("DOWNLOAD_BUTTON").OnClick = () =>
|
||||
panel.Get<ButtonWidget>("DOWNLOAD_BUTTON").OnClick = () =>
|
||||
Ui.OpenWindow("INSTALL_DOWNLOAD_PANEL", args);
|
||||
|
||||
panel.GetWidget<ButtonWidget>("INSTALL_BUTTON").OnClick = () =>
|
||||
panel.Get<ButtonWidget>("INSTALL_BUTTON").OnClick = () =>
|
||||
Ui.OpenWindow("INSTALL_FROMCD_PANEL", args);
|
||||
|
||||
panel.GetWidget<ButtonWidget>("QUIT_BUTTON").OnClick = Game.Exit;
|
||||
panel.Get<ButtonWidget>("QUIT_BUTTON").OnClick = Game.Exit;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,12 +25,12 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
{
|
||||
panel = widget;
|
||||
|
||||
panel.GetWidget<ButtonWidget>("CANCEL_BUTTON").OnClick = () => { Ui.CloseWindow(); onExit(); };
|
||||
panel.Get<ButtonWidget>("CANCEL_BUTTON").OnClick = () => { Ui.CloseWindow(); onExit(); };
|
||||
|
||||
var rl = panel.GetWidget<ScrollPanelWidget>("REPLAY_LIST");
|
||||
var rl = panel.Get<ScrollPanelWidget>("REPLAY_LIST");
|
||||
var replayDir = Path.Combine(Platform.SupportDir, "Replays");
|
||||
|
||||
var template = panel.GetWidget<ScrollItemWidget>("REPLAY_TEMPLATE");
|
||||
var template = panel.Get<ScrollItemWidget>("REPLAY_TEMPLATE");
|
||||
|
||||
rl.RemoveChildren();
|
||||
if (Directory.Exists(replayDir))
|
||||
@@ -42,7 +42,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
SelectReplay(files.FirstOrDefault());
|
||||
}
|
||||
|
||||
var watch = panel.GetWidget<ButtonWidget>("WATCH_BUTTON");
|
||||
var watch = panel.Get<ButtonWidget>("WATCH_BUTTON");
|
||||
watch.IsDisabled = () => currentReplay == null || currentMap == null || currentReplay.Duration == 0;
|
||||
watch.OnClick = () =>
|
||||
{
|
||||
@@ -54,7 +54,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
}
|
||||
};
|
||||
|
||||
panel.GetWidget("REPLAY_INFO").IsVisible = () => currentReplay != null;
|
||||
panel.Get("REPLAY_INFO").IsVisible = () => currentReplay != null;
|
||||
}
|
||||
|
||||
Replay currentReplay;
|
||||
@@ -70,15 +70,15 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
currentReplay = new Replay(filename);
|
||||
currentMap = currentReplay.Map();
|
||||
|
||||
panel.GetWidget<LabelWidget>("DURATION").GetText =
|
||||
panel.Get<LabelWidget>("DURATION").GetText =
|
||||
() => WidgetUtils.FormatTime(currentReplay.Duration * 3 /* todo: 3:1 ratio isnt always true. */);
|
||||
panel.GetWidget<MapPreviewWidget>("MAP_PREVIEW").Map = () => currentMap;
|
||||
panel.GetWidget<LabelWidget>("MAP_TITLE").GetText =
|
||||
panel.Get<MapPreviewWidget>("MAP_PREVIEW").Map = () => currentMap;
|
||||
panel.Get<LabelWidget>("MAP_TITLE").GetText =
|
||||
() => currentMap != null ? currentMap.Title : "(Unknown Map)";
|
||||
|
||||
var players = currentReplay.LobbyInfo.Slots
|
||||
.Count(s => currentReplay.LobbyInfo.ClientInSlot(s.Key) != null);
|
||||
panel.GetWidget<LabelWidget>("PLAYERS").GetText = () => players.ToString();
|
||||
panel.Get<LabelWidget>("PLAYERS").GetText = () => players.ToString();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
@@ -94,7 +94,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
() => currentReplay != null && currentReplay.Filename == filename,
|
||||
() => SelectReplay(filename));
|
||||
var f = Path.GetFileName(filename);
|
||||
item.GetWidget<LabelWidget>("TITLE").GetText = () => f;
|
||||
item.Get<LabelWidget>("TITLE").GetText = () => f;
|
||||
list.AddChild(item);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,10 +41,10 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
public ServerBrowserLogic(Widget widget, Action openLobby, Action onExit)
|
||||
{
|
||||
var panel = widget;
|
||||
var sl = panel.GetWidget<ScrollPanelWidget>("SERVER_LIST");
|
||||
var sl = panel.Get<ScrollPanelWidget>("SERVER_LIST");
|
||||
|
||||
// Menu buttons
|
||||
var refreshButton = panel.GetWidget<ButtonWidget>("REFRESH_BUTTON");
|
||||
var refreshButton = panel.Get<ButtonWidget>("REFRESH_BUTTON");
|
||||
refreshButton.IsDisabled = () => searchStatus == SearchStatus.Fetching;
|
||||
refreshButton.OnClick = () =>
|
||||
{
|
||||
@@ -54,7 +54,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
ServerList.Query(games => RefreshServerList(panel, games));
|
||||
};
|
||||
|
||||
var join = panel.GetWidget<ButtonWidget>("JOIN_BUTTON");
|
||||
var join = panel.Get<ButtonWidget>("JOIN_BUTTON");
|
||||
join.IsDisabled = () => currentServer == null || !currentServer.CanJoin();
|
||||
join.OnClick = () =>
|
||||
{
|
||||
@@ -68,14 +68,14 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
ConnectionLogic.Connect(host, port, openLobby, onExit);
|
||||
};
|
||||
|
||||
panel.GetWidget<ButtonWidget>("BACK_BUTTON").OnClick = () => { Ui.CloseWindow(); onExit(); };
|
||||
panel.Get<ButtonWidget>("BACK_BUTTON").OnClick = () => { Ui.CloseWindow(); onExit(); };
|
||||
|
||||
// Server list
|
||||
serverTemplate = sl.GetWidget<ScrollItemWidget>("SERVER_TEMPLATE");
|
||||
serverTemplate = sl.Get<ScrollItemWidget>("SERVER_TEMPLATE");
|
||||
|
||||
// Display the progress label over the server list
|
||||
// The text is only visible when the list is empty
|
||||
var progressText = panel.GetWidget<LabelWidget>("PROGRESS_LABEL");
|
||||
var progressText = panel.Get<LabelWidget>("PROGRESS_LABEL");
|
||||
progressText.IsVisible = () => searchStatus != SearchStatus.Hidden;
|
||||
progressText.GetText = ProgressLabelText;
|
||||
|
||||
@@ -123,7 +123,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
|
||||
public void RefreshServerList(Widget panel, IEnumerable<GameServer> games)
|
||||
{
|
||||
var sl = panel.GetWidget<ScrollPanelWidget>("SERVER_LIST");
|
||||
var sl = panel.Get<ScrollPanelWidget>("SERVER_LIST");
|
||||
|
||||
sl.RemoveChildren();
|
||||
currentServer = null;
|
||||
@@ -151,15 +151,15 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
|
||||
var item = ScrollItemWidget.Setup(serverTemplate, () => currentServer == game, () => currentServer = game);
|
||||
|
||||
var preview = item.GetWidget<MapPreviewWidget>("MAP_PREVIEW");
|
||||
var preview = item.Get<MapPreviewWidget>("MAP_PREVIEW");
|
||||
preview.Map = () => GetMapPreview(game);
|
||||
preview.IsVisible = () => GetMapPreview(game) != null;
|
||||
|
||||
var title = item.GetWidget<LabelWidget>("TITLE");
|
||||
var title = item.Get<LabelWidget>("TITLE");
|
||||
title.GetText = () => game.Name;
|
||||
|
||||
// TODO: Use game.MapTitle once the server supports it
|
||||
var maptitle = item.GetWidget<LabelWidget>("MAP");
|
||||
var maptitle = item.Get<LabelWidget>("MAP");
|
||||
maptitle.GetText = () =>
|
||||
{
|
||||
var map = Game.modData.FindMapByUid(game.Map);
|
||||
@@ -167,16 +167,16 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
};
|
||||
|
||||
// TODO: Use game.MaxPlayers once the server supports it
|
||||
var players = item.GetWidget<LabelWidget>("PLAYERS");
|
||||
var players = item.Get<LabelWidget>("PLAYERS");
|
||||
players.GetText = () => GetPlayersLabel(game);
|
||||
|
||||
var state = item.GetWidget<LabelWidget>("STATE");
|
||||
var state = item.Get<LabelWidget>("STATE");
|
||||
state.GetText = () => GetStateLabel(game);
|
||||
|
||||
var ip = item.GetWidget<LabelWidget>("IP");
|
||||
var ip = item.Get<LabelWidget>("IP");
|
||||
ip.GetText = () => game.Address;
|
||||
|
||||
var version = item.GetWidget<LabelWidget>("VERSION");
|
||||
var version = item.Get<LabelWidget>("VERSION");
|
||||
version.GetText = () => GenerateModsLabel(game);
|
||||
version.IsVisible = () => !game.CompatibleVersion();
|
||||
|
||||
|
||||
@@ -31,15 +31,15 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
this.onExit = onExit;
|
||||
|
||||
var settings = Game.Settings;
|
||||
panel.GetWidget<ButtonWidget>("BACK_BUTTON").OnClick = () => { Ui.CloseWindow(); onExit(); };
|
||||
panel.GetWidget<ButtonWidget>("CREATE_BUTTON").OnClick = CreateAndJoin;
|
||||
panel.Get<ButtonWidget>("BACK_BUTTON").OnClick = () => { Ui.CloseWindow(); onExit(); };
|
||||
panel.Get<ButtonWidget>("CREATE_BUTTON").OnClick = CreateAndJoin;
|
||||
|
||||
map = Game.modData.AvailableMaps[ WidgetUtils.ChooseInitialMap(Game.Settings.Server.Map) ];
|
||||
|
||||
var mapButton = panel.GetWidget<ButtonWidget>("MAP_BUTTON");
|
||||
var mapButton = panel.GetOrNull<ButtonWidget>("MAP_BUTTON");
|
||||
if (mapButton != null)
|
||||
{
|
||||
panel.GetWidget<ButtonWidget>("MAP_BUTTON").OnClick = () =>
|
||||
panel.Get<ButtonWidget>("MAP_BUTTON").OnClick = () =>
|
||||
{
|
||||
Ui.OpenWindow("MAPCHOOSER_PANEL", new WidgetArgs()
|
||||
{
|
||||
@@ -49,31 +49,31 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
});
|
||||
};
|
||||
|
||||
panel.GetWidget<MapPreviewWidget>("MAP_PREVIEW").Map = () => map;
|
||||
panel.GetWidget<LabelWidget>("MAP_NAME").GetText = () => map.Title;
|
||||
panel.Get<MapPreviewWidget>("MAP_PREVIEW").Map = () => map;
|
||||
panel.Get<LabelWidget>("MAP_NAME").GetText = () => map.Title;
|
||||
}
|
||||
|
||||
panel.GetWidget<TextFieldWidget>("SERVER_NAME").Text = settings.Server.Name ?? "";
|
||||
panel.GetWidget<TextFieldWidget>("LISTEN_PORT").Text = settings.Server.ListenPort.ToString();
|
||||
panel.Get<TextFieldWidget>("SERVER_NAME").Text = settings.Server.Name ?? "";
|
||||
panel.Get<TextFieldWidget>("LISTEN_PORT").Text = settings.Server.ListenPort.ToString();
|
||||
advertiseOnline = Game.Settings.Server.AdvertiseOnline;
|
||||
|
||||
var externalPort = panel.GetWidget<TextFieldWidget>("EXTERNAL_PORT");
|
||||
var externalPort = panel.Get<TextFieldWidget>("EXTERNAL_PORT");
|
||||
externalPort.Text = settings.Server.ExternalPort.ToString();
|
||||
externalPort.IsDisabled = () => !advertiseOnline;
|
||||
|
||||
var advertiseCheckbox = panel.GetWidget<CheckboxWidget>("ADVERTISE_CHECKBOX");
|
||||
var advertiseCheckbox = panel.Get<CheckboxWidget>("ADVERTISE_CHECKBOX");
|
||||
advertiseCheckbox.IsChecked = () => advertiseOnline;
|
||||
advertiseCheckbox.OnClick = () => advertiseOnline ^= true;
|
||||
}
|
||||
|
||||
void CreateAndJoin()
|
||||
{
|
||||
var name = panel.GetWidget<TextFieldWidget>("SERVER_NAME").Text;
|
||||
var name = panel.Get<TextFieldWidget>("SERVER_NAME").Text;
|
||||
int listenPort, externalPort;
|
||||
if (!int.TryParse(panel.GetWidget<TextFieldWidget>("LISTEN_PORT").Text, out listenPort))
|
||||
if (!int.TryParse(panel.Get<TextFieldWidget>("LISTEN_PORT").Text, out listenPort))
|
||||
listenPort = 1234;
|
||||
|
||||
if (!int.TryParse(panel.GetWidget<TextFieldWidget>("EXTERNAL_PORT").Text, out externalPort))
|
||||
if (!int.TryParse(panel.Get<TextFieldWidget>("EXTERNAL_PORT").Text, out externalPort))
|
||||
externalPort = 1234;
|
||||
|
||||
// Save new settings
|
||||
|
||||
@@ -23,20 +23,20 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
|
||||
public SettingsMenuLogic()
|
||||
{
|
||||
bg = Ui.Root.GetWidget<BackgroundWidget>("SETTINGS_MENU");
|
||||
var tabs = bg.GetWidget<ContainerWidget>("TAB_CONTAINER");
|
||||
bg = Ui.Root.Get<BackgroundWidget>("SETTINGS_MENU");
|
||||
var tabs = bg.Get<ContainerWidget>("TAB_CONTAINER");
|
||||
|
||||
//Tabs
|
||||
tabs.GetWidget<ButtonWidget>("GENERAL").OnClick = () => FlipToTab("GENERAL_PANE");
|
||||
tabs.GetWidget<ButtonWidget>("AUDIO").OnClick = () => FlipToTab("AUDIO_PANE");
|
||||
tabs.GetWidget<ButtonWidget>("DISPLAY").OnClick = () => FlipToTab("DISPLAY_PANE");
|
||||
tabs.GetWidget<ButtonWidget>("DEBUG").OnClick = () => FlipToTab("DEBUG_PANE");
|
||||
tabs.Get<ButtonWidget>("GENERAL").OnClick = () => FlipToTab("GENERAL_PANE");
|
||||
tabs.Get<ButtonWidget>("AUDIO").OnClick = () => FlipToTab("AUDIO_PANE");
|
||||
tabs.Get<ButtonWidget>("DISPLAY").OnClick = () => FlipToTab("DISPLAY_PANE");
|
||||
tabs.Get<ButtonWidget>("DEBUG").OnClick = () => FlipToTab("DEBUG_PANE");
|
||||
FlipToTab("GENERAL_PANE");
|
||||
|
||||
//General
|
||||
var general = bg.GetWidget("GENERAL_PANE");
|
||||
var general = bg.Get("GENERAL_PANE");
|
||||
|
||||
var name = general.GetWidget<TextFieldWidget>("NAME");
|
||||
var name = general.Get<TextFieldWidget>("NAME");
|
||||
name.Text = Game.Settings.Player.Name;
|
||||
name.OnLoseFocus = () =>
|
||||
{
|
||||
@@ -49,54 +49,54 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
};
|
||||
name.OnEnterKey = () => { name.LoseFocus(); return true; };
|
||||
|
||||
var edgescrollCheckbox = general.GetWidget<CheckboxWidget>("EDGE_SCROLL");
|
||||
var edgescrollCheckbox = general.Get<CheckboxWidget>("EDGE_SCROLL");
|
||||
edgescrollCheckbox.IsChecked = () => Game.Settings.Game.ViewportEdgeScroll;
|
||||
edgescrollCheckbox.OnClick = () => Game.Settings.Game.ViewportEdgeScroll ^= true;
|
||||
|
||||
var edgeScrollSlider = general.GetWidget<SliderWidget>("EDGE_SCROLL_AMOUNT");
|
||||
var edgeScrollSlider = general.Get<SliderWidget>("EDGE_SCROLL_AMOUNT");
|
||||
edgeScrollSlider.Value = Game.Settings.Game.ViewportEdgeScrollStep;
|
||||
edgeScrollSlider.OnChange += x => Game.Settings.Game.ViewportEdgeScrollStep = x;
|
||||
|
||||
var inversescroll = general.GetWidget<CheckboxWidget>("INVERSE_SCROLL");
|
||||
var inversescroll = general.Get<CheckboxWidget>("INVERSE_SCROLL");
|
||||
inversescroll.IsChecked = () => Game.Settings.Game.MouseScroll == MouseScrollType.Inverted;
|
||||
inversescroll.OnClick = () => Game.Settings.Game.MouseScroll = (Game.Settings.Game.MouseScroll == MouseScrollType.Inverted) ? MouseScrollType.Standard : MouseScrollType.Inverted;
|
||||
|
||||
var teamchatCheckbox = general.GetWidget<CheckboxWidget>("TEAMCHAT_TOGGLE");
|
||||
var teamchatCheckbox = general.Get<CheckboxWidget>("TEAMCHAT_TOGGLE");
|
||||
teamchatCheckbox.IsChecked = () => Game.Settings.Game.TeamChatToggle;
|
||||
teamchatCheckbox.OnClick = () => Game.Settings.Game.TeamChatToggle ^= true;
|
||||
|
||||
var showShellmapCheckbox = general.GetWidget<CheckboxWidget>("SHOW_SHELLMAP");
|
||||
var showShellmapCheckbox = general.Get<CheckboxWidget>("SHOW_SHELLMAP");
|
||||
showShellmapCheckbox.IsChecked = () => Game.Settings.Game.ShowShellmap;
|
||||
showShellmapCheckbox.OnClick = () => Game.Settings.Game.ShowShellmap ^= true;
|
||||
|
||||
// Audio
|
||||
var audio = bg.GetWidget("AUDIO_PANE");
|
||||
var audio = bg.Get("AUDIO_PANE");
|
||||
|
||||
var soundslider = audio.GetWidget<SliderWidget>("SOUND_VOLUME");
|
||||
var soundslider = audio.Get<SliderWidget>("SOUND_VOLUME");
|
||||
soundslider.OnChange += x => Sound.SoundVolume = x;
|
||||
soundslider.Value = Sound.SoundVolume;
|
||||
|
||||
var musicslider = audio.GetWidget<SliderWidget>("MUSIC_VOLUME");
|
||||
var musicslider = audio.Get<SliderWidget>("MUSIC_VOLUME");
|
||||
musicslider.OnChange += x => Sound.MusicVolume = x;
|
||||
musicslider.Value = Sound.MusicVolume;
|
||||
|
||||
// Display
|
||||
var display = bg.GetWidget("DISPLAY_PANE");
|
||||
var display = bg.Get("DISPLAY_PANE");
|
||||
var gs = Game.Settings.Graphics;
|
||||
|
||||
var windowModeDropdown = display.GetWidget<DropDownButtonWidget>("MODE_DROPDOWN");
|
||||
var windowModeDropdown = display.Get<DropDownButtonWidget>("MODE_DROPDOWN");
|
||||
windowModeDropdown.OnMouseDown = _ => ShowWindowModeDropdown(windowModeDropdown, gs);
|
||||
windowModeDropdown.GetText = () => gs.Mode == WindowMode.Windowed ?
|
||||
"Windowed" : gs.Mode == WindowMode.Fullscreen ? "Fullscreen" : "Pseudo-Fullscreen";
|
||||
|
||||
display.GetWidget("WINDOW_RESOLUTION").IsVisible = () => gs.Mode == WindowMode.Windowed;
|
||||
var windowWidth = display.GetWidget<TextFieldWidget>("WINDOW_WIDTH");
|
||||
display.Get("WINDOW_RESOLUTION").IsVisible = () => gs.Mode == WindowMode.Windowed;
|
||||
var windowWidth = display.Get<TextFieldWidget>("WINDOW_WIDTH");
|
||||
windowWidth.Text = gs.WindowedSize.X.ToString();
|
||||
|
||||
var windowHeight = display.GetWidget<TextFieldWidget>("WINDOW_HEIGHT");
|
||||
var windowHeight = display.Get<TextFieldWidget>("WINDOW_HEIGHT");
|
||||
windowHeight.Text = gs.WindowedSize.Y.ToString();
|
||||
|
||||
var pixelDoubleCheckbox = display.GetWidget<CheckboxWidget>("PIXELDOUBLE_CHECKBOX");
|
||||
var pixelDoubleCheckbox = display.Get<CheckboxWidget>("PIXELDOUBLE_CHECKBOX");
|
||||
pixelDoubleCheckbox.IsChecked = () => gs.PixelDouble;
|
||||
pixelDoubleCheckbox.OnClick = () =>
|
||||
{
|
||||
@@ -105,17 +105,17 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
};
|
||||
|
||||
// Debug
|
||||
var debug = bg.GetWidget("DEBUG_PANE");
|
||||
var debug = bg.Get("DEBUG_PANE");
|
||||
|
||||
var perfgraphCheckbox = debug.GetWidget<CheckboxWidget>("PERFDEBUG_CHECKBOX");
|
||||
var perfgraphCheckbox = debug.Get<CheckboxWidget>("PERFDEBUG_CHECKBOX");
|
||||
perfgraphCheckbox.IsChecked = () => Game.Settings.Debug.PerfGraph;
|
||||
perfgraphCheckbox.OnClick = () => Game.Settings.Debug.PerfGraph ^= true;
|
||||
|
||||
var checkunsyncedCheckbox = debug.GetWidget<CheckboxWidget>("CHECKUNSYNCED_CHECKBOX");
|
||||
var checkunsyncedCheckbox = debug.Get<CheckboxWidget>("CHECKUNSYNCED_CHECKBOX");
|
||||
checkunsyncedCheckbox.IsChecked = () => Game.Settings.Debug.SanityCheckUnsyncedCode;
|
||||
checkunsyncedCheckbox.OnClick = () => Game.Settings.Debug.SanityCheckUnsyncedCode ^= true;
|
||||
|
||||
bg.GetWidget<ButtonWidget>("BUTTON_CLOSE").OnClick = () =>
|
||||
bg.Get<ButtonWidget>("BUTTON_CLOSE").OnClick = () =>
|
||||
{
|
||||
int x, y;
|
||||
int.TryParse(windowWidth.Text, out x);
|
||||
@@ -131,10 +131,10 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
bool FlipToTab(string id)
|
||||
{
|
||||
if (open != null)
|
||||
bg.GetWidget(open).Visible = false;
|
||||
bg.Get(open).Visible = false;
|
||||
|
||||
open = id;
|
||||
bg.GetWidget(open).Visible = true;
|
||||
bg.Get(open).Visible = true;
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -152,7 +152,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
var item = ScrollItemWidget.Setup(itemTemplate,
|
||||
() => s.Mode == options[o],
|
||||
() => s.Mode = options[o]);
|
||||
item.GetWidget<LabelWidget>("LABEL").GetText = () => o;
|
||||
item.Get<LabelWidget>("LABEL").GetText = () => o;
|
||||
return item;
|
||||
};
|
||||
|
||||
|
||||
@@ -53,7 +53,7 @@ namespace OpenRA.Mods.RA.Widgets
|
||||
if( world.LocalPlayer == null ) return;
|
||||
if( world.LocalPlayer.WinState != WinState.Undefined ) return;
|
||||
|
||||
var radarBin = Ui.Root.GetWidget<RadarBinWidget>(RadarBin);
|
||||
var radarBin = Ui.Root.Get<RadarBinWidget>(RadarBin);
|
||||
|
||||
powerCollection = "power-" + world.LocalPlayer.Country.Race;
|
||||
|
||||
|
||||
@@ -113,7 +113,7 @@ namespace OpenRA.Mods.RA.Widgets
|
||||
|
||||
if (WorldInteractionController != null)
|
||||
{
|
||||
var controller = Ui.Root.GetWidget<WorldInteractionControllerWidget>(WorldInteractionController);
|
||||
var controller = Ui.Root.Get<WorldInteractionControllerWidget>(WorldInteractionController);
|
||||
controller.HandleMouseInput(fakemi);
|
||||
fakemi.Event = MouseInputEvent.Up;
|
||||
controller.HandleMouseInput(fakemi);
|
||||
|
||||
@@ -110,7 +110,7 @@ namespace OpenRA.Mods.RA.Widgets
|
||||
|
||||
if (WorldInteractionController != null)
|
||||
{
|
||||
var controller = Ui.Root.GetWidget<WorldInteractionControllerWidget>(WorldInteractionController);
|
||||
var controller = Ui.Root.Get<WorldInteractionControllerWidget>(WorldInteractionController);
|
||||
controller.HandleMouseInput(fakemi);
|
||||
fakemi.Event = MouseInputEvent.Up;
|
||||
controller.HandleMouseInput(fakemi);
|
||||
|
||||
@@ -31,7 +31,7 @@ namespace OpenRA.Mods.RA
|
||||
|
||||
public void SelectionChanged()
|
||||
{
|
||||
var palette = Ui.Root.GetWidget<BuildPaletteWidget>("INGAME_BUILD_PALETTE");
|
||||
var palette = Ui.Root.Get<BuildPaletteWidget>("INGAME_BUILD_PALETTE");
|
||||
if (palette == null)
|
||||
return;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user