remove many references to Game.world
This commit is contained in:
@@ -9,6 +9,7 @@
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@@ -186,7 +187,7 @@ namespace OpenRA
|
|||||||
public static void IssueOrder( Order o ) { orderManager.IssueOrder( o ); } /* avoid exposing the OM to mod code */
|
public static void IssueOrder( Order o ) { orderManager.IssueOrder( o ); } /* avoid exposing the OM to mod code */
|
||||||
|
|
||||||
|
|
||||||
public static event Action AfterGameStart = () => {};
|
public static event Action<World> AfterGameStart = _ => {};
|
||||||
public static event Action BeforeGameStart = () => {};
|
public static event Action BeforeGameStart = () => {};
|
||||||
internal static void StartGame(string map)
|
internal static void StartGame(string map)
|
||||||
{
|
{
|
||||||
@@ -200,7 +201,7 @@ namespace OpenRA
|
|||||||
|
|
||||||
orderManager.StartGame();
|
orderManager.StartGame();
|
||||||
viewport.RefreshPalette();
|
viewport.RefreshPalette();
|
||||||
AfterGameStart();
|
AfterGameStart( world );
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void DispatchMouseInput(MouseInputEvent ev, MouseEventArgs e, Modifiers modifierKeys)
|
public static void DispatchMouseInput(MouseInputEvent ev, MouseEventArgs e, Modifiers modifierKeys)
|
||||||
@@ -291,7 +292,7 @@ namespace OpenRA
|
|||||||
|
|
||||||
JoinLocal();
|
JoinLocal();
|
||||||
StartGame(modData.Manifest.ShellmapUid);
|
StartGame(modData.Manifest.ShellmapUid);
|
||||||
|
|
||||||
Game.AfterGameStart += world => Widget.OpenWindow("INGAME_ROOT", new Dictionary<string,object>{{"world", world}});
|
Game.AfterGameStart += world => Widget.OpenWindow("INGAME_ROOT", new Dictionary<string,object>{{"world", world}});
|
||||||
|
|
||||||
Game.ConnectionStateChanged += () =>
|
Game.ConnectionStateChanged += () =>
|
||||||
@@ -318,7 +319,7 @@ namespace OpenRA
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
modData.WidgetLoader.LoadWidget( new Dictionary<string,object>(), Widget.RootWidget, "PERF_BG" );
|
modData.WidgetLoader.LoadWidget( new Dictionary<string,object>(), Widget.RootWidget, "PERF_BG" );
|
||||||
Widget.OpenWindow("MAINMENU_BG");
|
Widget.OpenWindow("MAINMENU_BG");
|
||||||
|
|
||||||
|
|||||||
@@ -23,14 +23,15 @@ using OpenRA;
|
|||||||
using OpenRA.Traits;
|
using OpenRA.Traits;
|
||||||
using OpenRA.Widgets;
|
using OpenRA.Widgets;
|
||||||
|
|
||||||
|
|
||||||
namespace OpenRA.Widgets.Delegates
|
namespace OpenRA.Widgets.Delegates
|
||||||
{
|
{
|
||||||
|
|
||||||
public class DeveloperModeDelegate : IWidgetDelegate
|
public class DeveloperModeDelegate : IWidgetDelegate
|
||||||
{
|
{
|
||||||
public DeveloperModeDelegate ()
|
readonly World world;
|
||||||
{
|
[ObjectCreator.UseCtor]
|
||||||
|
public DeveloperModeDelegate( [ObjectCreator.Param("world")] World world )
|
||||||
|
{
|
||||||
|
this.world = world;
|
||||||
var devmodeBG = Widget.RootWidget.GetWidget("INGAME_ROOT").GetWidget("DEVELOPERMODE_BG");
|
var devmodeBG = Widget.RootWidget.GetWidget("INGAME_ROOT").GetWidget("DEVELOPERMODE_BG");
|
||||||
var devModeButton = Widget.RootWidget.GetWidget<ButtonWidget>("INGAME_DEVELOPERMODE_BUTTON");
|
var devModeButton = Widget.RootWidget.GetWidget<ButtonWidget>("INGAME_DEVELOPERMODE_BUTTON");
|
||||||
|
|
||||||
@@ -41,10 +42,10 @@ namespace OpenRA.Widgets.Delegates
|
|||||||
};
|
};
|
||||||
|
|
||||||
devmodeBG.GetWidget<CheckboxWidget>("CHECKBOX_SHROUD").Checked =
|
devmodeBG.GetWidget<CheckboxWidget>("CHECKBOX_SHROUD").Checked =
|
||||||
() => Game.world.LocalPlayer.PlayerActor.Trait<DeveloperMode>().DisableShroud;
|
() => world.LocalPlayer.PlayerActor.Trait<DeveloperMode>().DisableShroud;
|
||||||
devmodeBG.GetWidget<CheckboxWidget>("CHECKBOX_SHROUD").OnMouseDown = mi =>
|
devmodeBG.GetWidget<CheckboxWidget>("CHECKBOX_SHROUD").OnMouseDown = mi =>
|
||||||
{
|
{
|
||||||
Game.IssueOrder(new Order("DevShroud", Game.world.LocalPlayer.PlayerActor));
|
Game.IssueOrder(new Order("DevShroud", world.LocalPlayer.PlayerActor));
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -52,51 +53,51 @@ namespace OpenRA.Widgets.Delegates
|
|||||||
() => Game.Settings.Debug.ShowCollisions;
|
() => Game.Settings.Debug.ShowCollisions;
|
||||||
devmodeBG.GetWidget("CHECKBOX_UNITDEBUG").OnMouseDown = mi =>
|
devmodeBG.GetWidget("CHECKBOX_UNITDEBUG").OnMouseDown = mi =>
|
||||||
{
|
{
|
||||||
Game.IssueOrder(new Order("DevUnitDebug", Game.world.LocalPlayer.PlayerActor));
|
Game.IssueOrder(new Order("DevUnitDebug", world.LocalPlayer.PlayerActor));
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
devmodeBG.GetWidget<CheckboxWidget>("CHECKBOX_PATHDEBUG").Checked =
|
devmodeBG.GetWidget<CheckboxWidget>("CHECKBOX_PATHDEBUG").Checked =
|
||||||
() => Game.world.LocalPlayer.PlayerActor.Trait<DeveloperMode>().PathDebug;
|
() => world.LocalPlayer.PlayerActor.Trait<DeveloperMode>().PathDebug;
|
||||||
devmodeBG.GetWidget("CHECKBOX_PATHDEBUG").OnMouseDown = mi =>
|
devmodeBG.GetWidget("CHECKBOX_PATHDEBUG").OnMouseDown = mi =>
|
||||||
{
|
{
|
||||||
Game.IssueOrder(new Order("DevPathDebug", Game.world.LocalPlayer.PlayerActor));
|
Game.IssueOrder(new Order("DevPathDebug", world.LocalPlayer.PlayerActor));
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
devmodeBG.GetWidget<ButtonWidget>("GIVE_CASH").OnMouseUp = mi =>
|
devmodeBG.GetWidget<ButtonWidget>("GIVE_CASH").OnMouseUp = mi =>
|
||||||
{
|
{
|
||||||
Game.IssueOrder(new Order("DevGiveCash", Game.world.LocalPlayer.PlayerActor));
|
Game.IssueOrder(new Order("DevGiveCash", world.LocalPlayer.PlayerActor));
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
devmodeBG.GetWidget<CheckboxWidget>("INSTANT_BUILD").Checked =
|
devmodeBG.GetWidget<CheckboxWidget>("INSTANT_BUILD").Checked =
|
||||||
() => Game.world.LocalPlayer.PlayerActor.Trait<DeveloperMode>().FastBuild;
|
() => world.LocalPlayer.PlayerActor.Trait<DeveloperMode>().FastBuild;
|
||||||
devmodeBG.GetWidget<CheckboxWidget>("INSTANT_BUILD").OnMouseDown = mi =>
|
devmodeBG.GetWidget<CheckboxWidget>("INSTANT_BUILD").OnMouseDown = mi =>
|
||||||
{
|
{
|
||||||
Game.IssueOrder(new Order("DevFastBuild", Game.world.LocalPlayer.PlayerActor));
|
Game.IssueOrder(new Order("DevFastBuild", world.LocalPlayer.PlayerActor));
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
devmodeBG.GetWidget<CheckboxWidget>("INSTANT_CHARGE").Checked =
|
devmodeBG.GetWidget<CheckboxWidget>("INSTANT_CHARGE").Checked =
|
||||||
() => Game.world.LocalPlayer.PlayerActor.Trait<DeveloperMode>().FastCharge;
|
() => world.LocalPlayer.PlayerActor.Trait<DeveloperMode>().FastCharge;
|
||||||
devmodeBG.GetWidget<CheckboxWidget>("INSTANT_CHARGE").OnMouseDown = mi =>
|
devmodeBG.GetWidget<CheckboxWidget>("INSTANT_CHARGE").OnMouseDown = mi =>
|
||||||
{
|
{
|
||||||
Game.IssueOrder(new Order("DevFastCharge", Game.world.LocalPlayer.PlayerActor));
|
Game.IssueOrder(new Order("DevFastCharge", world.LocalPlayer.PlayerActor));
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
devmodeBG.GetWidget<CheckboxWidget>("ENABLE_TECH").Checked =
|
devmodeBG.GetWidget<CheckboxWidget>("ENABLE_TECH").Checked =
|
||||||
() => Game.world.LocalPlayer.PlayerActor.Trait<DeveloperMode>().AllTech;
|
() => world.LocalPlayer.PlayerActor.Trait<DeveloperMode>().AllTech;
|
||||||
devmodeBG.GetWidget<CheckboxWidget>("ENABLE_TECH").OnMouseDown = mi =>
|
devmodeBG.GetWidget<CheckboxWidget>("ENABLE_TECH").OnMouseDown = mi =>
|
||||||
{
|
{
|
||||||
Game.IssueOrder(new Order("DevEnableTech", Game.world.LocalPlayer.PlayerActor));
|
Game.IssueOrder(new Order("DevEnableTech", world.LocalPlayer.PlayerActor));
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
devmodeBG.GetWidget<ButtonWidget>("GIVE_EXPLORATION").OnMouseUp = mi =>
|
devmodeBG.GetWidget<ButtonWidget>("GIVE_EXPLORATION").OnMouseUp = mi =>
|
||||||
{
|
{
|
||||||
Game.IssueOrder(new Order("DevGiveExploration", Game.world.LocalPlayer.PlayerActor));
|
Game.IssueOrder(new Order("DevGiveExploration", world.LocalPlayer.PlayerActor));
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -21,8 +21,11 @@ namespace OpenRA.Widgets.Delegates
|
|||||||
static List<Widget> controls = new List<Widget>();
|
static List<Widget> controls = new List<Widget>();
|
||||||
|
|
||||||
int validPlayers = 0;
|
int validPlayers = 0;
|
||||||
public DiplomacyDelegate()
|
readonly World world;
|
||||||
|
[ObjectCreator.UseCtor]
|
||||||
|
public DiplomacyDelegate( [ObjectCreator.Param("world")] World world )
|
||||||
{
|
{
|
||||||
|
this.world = world;
|
||||||
var root = Widget.RootWidget.GetWidget("INGAME_ROOT");
|
var root = Widget.RootWidget.GetWidget("INGAME_ROOT");
|
||||||
var diplomacyBG = root.GetWidget("DIPLOMACY_BG");
|
var diplomacyBG = root.GetWidget("DIPLOMACY_BG");
|
||||||
var diplomacy = root.GetWidget("INGAME_DIPLOMACY_BUTTON");
|
var diplomacy = root.GetWidget("INGAME_DIPLOMACY_BUTTON");
|
||||||
@@ -34,7 +37,7 @@ namespace OpenRA.Widgets.Delegates
|
|||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
Game.AfterGameStart += () => validPlayers = Game.world.players.Values.Where(a => a != Game.world.LocalPlayer && !a.NonCombatant).Count();
|
Game.AfterGameStart += _ => validPlayers = world.players.Values.Where(a => a != world.LocalPlayer && !a.NonCombatant).Count();
|
||||||
diplomacy.IsVisible = () => (validPlayers > 0);
|
diplomacy.IsVisible = () => (validPlayers > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -71,7 +74,7 @@ namespace OpenRA.Widgets.Delegates
|
|||||||
|
|
||||||
y += 35;
|
y += 35;
|
||||||
|
|
||||||
foreach (var p in Game.world.players.Values.Where(a => a != Game.world.LocalPlayer && !a.NonCombatant))
|
foreach (var p in world.players.Values.Where(a => a != world.LocalPlayer && !a.NonCombatant))
|
||||||
{
|
{
|
||||||
var pp = p;
|
var pp = p;
|
||||||
var label = new LabelWidget
|
var label = new LabelWidget
|
||||||
@@ -94,7 +97,7 @@ namespace OpenRA.Widgets.Delegates
|
|||||||
Align = LabelWidget.TextAlign.Left,
|
Align = LabelWidget.TextAlign.Left,
|
||||||
Bold = false,
|
Bold = false,
|
||||||
|
|
||||||
GetText = () => pp.Stances[ Game.world.LocalPlayer ].ToString(),
|
GetText = () => pp.Stances[ world.LocalPlayer ].ToString(),
|
||||||
};
|
};
|
||||||
|
|
||||||
bg.AddChild(theirStance);
|
bg.AddChild(theirStance);
|
||||||
@@ -104,7 +107,7 @@ namespace OpenRA.Widgets.Delegates
|
|||||||
{
|
{
|
||||||
Bounds = new Rectangle( margin + 2 * labelWidth + 20, y, labelWidth, 25),
|
Bounds = new Rectangle( margin + 2 * labelWidth + 20, y, labelWidth, 25),
|
||||||
Id = "DIPLOMACY_PLAYER_LABEL_MY_{0}".F(p.Index),
|
Id = "DIPLOMACY_PLAYER_LABEL_MY_{0}".F(p.Index),
|
||||||
Text = Game.world.LocalPlayer.Stances[ pp ].ToString(),
|
Text = world.LocalPlayer.Stances[ pp ].ToString(),
|
||||||
};
|
};
|
||||||
|
|
||||||
myStance.OnMouseUp = mi => { CycleStance(pp, myStance); return true; };
|
myStance.OnMouseUp = mi => { CycleStance(pp, myStance); return true; };
|
||||||
@@ -135,7 +138,7 @@ namespace OpenRA.Widgets.Delegates
|
|||||||
|
|
||||||
var nextStance = GetNextStance((Stance)Enum.Parse(typeof(Stance), bw.Text));
|
var nextStance = GetNextStance((Stance)Enum.Parse(typeof(Stance), bw.Text));
|
||||||
|
|
||||||
Game.IssueOrder(new Order("SetStance", Game.world.LocalPlayer.PlayerActor,
|
Game.IssueOrder(new Order("SetStance", world.LocalPlayer.PlayerActor,
|
||||||
new int2(p.Index, (int)nextStance)));
|
new int2(p.Index, (int)nextStance)));
|
||||||
|
|
||||||
bw.Text = nextStance.ToString();
|
bw.Text = nextStance.ToString();
|
||||||
|
|||||||
@@ -124,12 +124,13 @@ namespace OpenRA.Widgets
|
|||||||
height);
|
height);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PostInit()
|
public void PostInit( Dictionary<string, object> args )
|
||||||
{
|
{
|
||||||
if( Delegate != null )
|
if( Delegate != null )
|
||||||
{
|
{
|
||||||
var createDict = new Dictionary<string, object> { { "widget", this } };
|
args[ "widget" ] = this;
|
||||||
Game.modData.ObjectCreator.CreateObject<IWidgetDelegate>( Delegate, createDict );
|
Game.modData.ObjectCreator.CreateObject<IWidgetDelegate>( Delegate, args );
|
||||||
|
args.Remove( "widget" );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -320,9 +321,14 @@ namespace OpenRA.Widgets
|
|||||||
rootWidget.Children.Add( WindowList.Peek() );
|
rootWidget.Children.Add( WindowList.Peek() );
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Widget OpenWindow(string id)
|
public static Widget OpenWindow( string id )
|
||||||
{
|
{
|
||||||
var window = Game.modData.WidgetLoader.LoadWidget( rootWidget, id );
|
return OpenWindow( id, new Dictionary<string, object>() );
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Widget OpenWindow(string id, Dictionary<string, object> args )
|
||||||
|
{
|
||||||
|
var window = Game.modData.WidgetLoader.LoadWidget( args, rootWidget, id );
|
||||||
if( WindowList.Count > 0 )
|
if( WindowList.Count > 0 )
|
||||||
rootWidget.Children.Remove( WindowList.Peek() );
|
rootWidget.Children.Remove( WindowList.Peek() );
|
||||||
WindowList.Push( window );
|
WindowList.Push( window );
|
||||||
|
|||||||
@@ -33,14 +33,14 @@ namespace OpenRA
|
|||||||
widgets.Add( w.Key.Substring( w.Key.IndexOf( '@' ) + 1 ), w );
|
widgets.Add( w.Key.Substring( w.Key.IndexOf( '@' ) + 1 ), w );
|
||||||
}
|
}
|
||||||
|
|
||||||
public Widget LoadWidget( Widget parent, string w )
|
public Widget LoadWidget( Dictionary<string, object> args, Widget parent, string w )
|
||||||
{
|
{
|
||||||
return LoadWidget( parent, widgets[ w ] );
|
return LoadWidget( args, parent, widgets[ w ] );
|
||||||
}
|
}
|
||||||
|
|
||||||
public Widget LoadWidget( Widget parent, MiniYamlNode node)
|
public Widget LoadWidget( Dictionary<string, object> args, Widget parent, MiniYamlNode node)
|
||||||
{
|
{
|
||||||
var widget = NewWidget(node.Key);
|
var widget = NewWidget(node.Key, args);
|
||||||
parent.AddChild( widget );
|
parent.AddChild( widget );
|
||||||
|
|
||||||
foreach (var child in node.Value.Nodes)
|
foreach (var child in node.Value.Nodes)
|
||||||
@@ -52,16 +52,16 @@ namespace OpenRA
|
|||||||
foreach (var child in node.Value.Nodes)
|
foreach (var child in node.Value.Nodes)
|
||||||
if (child.Key == "Children")
|
if (child.Key == "Children")
|
||||||
foreach (var c in child.Value.Nodes)
|
foreach (var c in child.Value.Nodes)
|
||||||
LoadWidget( widget, c);
|
LoadWidget( args, widget, c);
|
||||||
|
|
||||||
widget.PostInit();
|
widget.PostInit( args );
|
||||||
return widget;
|
return widget;
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget NewWidget(string widgetType)
|
Widget NewWidget(string widgetType, Dictionary<string, object> args)
|
||||||
{
|
{
|
||||||
widgetType = widgetType.Split('@')[0];
|
widgetType = widgetType.Split('@')[0];
|
||||||
return Game.CreateObject<Widget>(widgetType + "Widget");
|
return Game.modData.ObjectCreator.CreateObject<Widget>(widgetType + "Widget", args);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -19,7 +19,12 @@ namespace OpenRA.Widgets
|
|||||||
{
|
{
|
||||||
class WorldInteractionControllerWidget : Widget
|
class WorldInteractionControllerWidget : Widget
|
||||||
{
|
{
|
||||||
public WorldInteractionControllerWidget() : base() {}
|
readonly World world;
|
||||||
|
[ObjectCreator.UseCtor]
|
||||||
|
public WorldInteractionControllerWidget( [ObjectCreator.Param( "world" )] World world )
|
||||||
|
{
|
||||||
|
this.world = world;
|
||||||
|
}
|
||||||
|
|
||||||
public override void DrawInner( World world )
|
public override void DrawInner( World world )
|
||||||
{
|
{
|
||||||
@@ -43,7 +48,6 @@ namespace OpenRA.Widgets
|
|||||||
public override bool HandleInputInner(MouseInput mi)
|
public override bool HandleInputInner(MouseInput mi)
|
||||||
{
|
{
|
||||||
var xy = Game.viewport.ViewToWorld(mi);
|
var xy = Game.viewport.ViewToWorld(mi);
|
||||||
var world = Game.world;
|
|
||||||
if (mi.Button == MouseButton.Left && mi.Event == MouseInputEvent.Down)
|
if (mi.Button == MouseButton.Left && mi.Event == MouseInputEvent.Down)
|
||||||
{
|
{
|
||||||
dragStart = dragEnd = xy;
|
dragStart = dragEnd = xy;
|
||||||
@@ -106,7 +110,6 @@ namespace OpenRA.Widgets
|
|||||||
|
|
||||||
public override string GetCursor(int2 pos)
|
public override string GetCursor(int2 pos)
|
||||||
{
|
{
|
||||||
var world = Game.world;
|
|
||||||
return Sync.CheckSyncUnchanged( world, () =>
|
return Sync.CheckSyncUnchanged( world, () =>
|
||||||
{
|
{
|
||||||
if (!world.GameHasStarted)
|
if (!world.GameHasStarted)
|
||||||
@@ -129,7 +132,7 @@ namespace OpenRA.Widgets
|
|||||||
{
|
{
|
||||||
if (e.KeyName.Length == 1 && char.IsDigit(e.KeyName[0]))
|
if (e.KeyName.Length == 1 && char.IsDigit(e.KeyName[0]))
|
||||||
{
|
{
|
||||||
Game.world.Selection.DoControlGroup(Game.world, e.KeyName[0] - '0', e.Modifiers);
|
world.Selection.DoControlGroup(world, e.KeyName[0] - '0', e.Modifiers);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -144,7 +147,6 @@ namespace OpenRA.Widgets
|
|||||||
|
|
||||||
public void GotoNextBase()
|
public void GotoNextBase()
|
||||||
{
|
{
|
||||||
var world = Game.world;
|
|
||||||
var bases = world.Queries.OwnedBy[world.LocalPlayer].WithTrait<BaseBuilding>().ToArray();
|
var bases = world.Queries.OwnedBy[world.LocalPlayer].WithTrait<BaseBuilding>().ToArray();
|
||||||
if (!bases.Any()) return;
|
if (!bases.Any()) return;
|
||||||
|
|
||||||
|
|||||||
@@ -47,7 +47,12 @@ namespace OpenRA.Mods.RA.Widgets
|
|||||||
public readonly string BuildPaletteClose = "bleep13.aud";
|
public readonly string BuildPaletteClose = "bleep13.aud";
|
||||||
public readonly string TabClick = "ramenu1.aud";
|
public readonly string TabClick = "ramenu1.aud";
|
||||||
|
|
||||||
public BuildPaletteWidget() : base() { }
|
readonly World world;
|
||||||
|
[ObjectCreator.UseCtor]
|
||||||
|
public BuildPaletteWidget( [ObjectCreator.Param("world")] World world )
|
||||||
|
{
|
||||||
|
this.world = world;
|
||||||
|
}
|
||||||
|
|
||||||
public override void Initialize()
|
public override void Initialize()
|
||||||
{
|
{
|
||||||
@@ -148,7 +153,7 @@ namespace OpenRA.Mods.RA.Widgets
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return DoBuildingHotkey(Char.ToLowerInvariant(e.KeyChar), Game.world);
|
return DoBuildingHotkey(Char.ToLowerInvariant(e.KeyChar), world);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool HandleInputInner(MouseInput mi)
|
public override bool HandleInputInner(MouseInput mi)
|
||||||
|
|||||||
@@ -15,8 +15,11 @@ namespace OpenRA.Mods.RA.Widgets.Delegates
|
|||||||
{
|
{
|
||||||
public class IngameChromeDelegate : IWidgetDelegate
|
public class IngameChromeDelegate : IWidgetDelegate
|
||||||
{
|
{
|
||||||
public IngameChromeDelegate()
|
readonly World world;
|
||||||
{
|
[ObjectCreator.UseCtor]
|
||||||
|
public IngameChromeDelegate( [ObjectCreator.Param("world")] World world )
|
||||||
|
{
|
||||||
|
this.world = world;
|
||||||
var r = Widget.RootWidget;
|
var r = Widget.RootWidget;
|
||||||
var gameRoot = r.GetWidget("INGAME_ROOT");
|
var gameRoot = r.GetWidget("INGAME_ROOT");
|
||||||
var optionsBG = gameRoot.GetWidget("INGAME_OPTIONS_BG");
|
var optionsBG = gameRoot.GetWidget("INGAME_OPTIONS_BG");
|
||||||
@@ -50,7 +53,7 @@ namespace OpenRA.Mods.RA.Widgets.Delegates
|
|||||||
|
|
||||||
optionsBG.GetWidget("SURRENDER").OnMouseUp = mi =>
|
optionsBG.GetWidget("SURRENDER").OnMouseUp = mi =>
|
||||||
{
|
{
|
||||||
Game.IssueOrder(new Order("Surrender", Game.world.LocalPlayer.PlayerActor));
|
Game.IssueOrder(new Order("Surrender", world.LocalPlayer.PlayerActor));
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -66,12 +69,12 @@ namespace OpenRA.Mods.RA.Widgets.Delegates
|
|||||||
var postgameText = postgameBG.GetWidget<LabelWidget>("TEXT");
|
var postgameText = postgameBG.GetWidget<LabelWidget>("TEXT");
|
||||||
postgameBG.IsVisible = () =>
|
postgameBG.IsVisible = () =>
|
||||||
{
|
{
|
||||||
return Game.world.LocalPlayer != null && Game.world.LocalPlayer.WinState != WinState.Undefined;
|
return world.LocalPlayer != null && world.LocalPlayer.WinState != WinState.Undefined;
|
||||||
};
|
};
|
||||||
|
|
||||||
postgameText.GetText = () =>
|
postgameText.GetText = () =>
|
||||||
{
|
{
|
||||||
var state = Game.world.LocalPlayer.WinState;
|
var state = world.LocalPlayer.WinState;
|
||||||
return (state == WinState.Undefined)? "" :
|
return (state == WinState.Undefined)? "" :
|
||||||
((state == WinState.Lost)? "YOU ARE DEFEATED" : "YOU ARE VICTORIOUS");
|
((state == WinState.Lost)? "YOU ARE DEFEATED" : "YOU ARE VICTORIOUS");
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -8,15 +8,19 @@
|
|||||||
*/
|
*/
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
using OpenRA;
|
||||||
using OpenRA.Mods.RA.Orders;
|
using OpenRA.Mods.RA.Orders;
|
||||||
using OpenRA.Widgets;
|
using OpenRA.Widgets;
|
||||||
|
|
||||||
namespace OpenRA.Mods.RA.Widgets.Delegates
|
namespace OpenRA.Mods.RA.Widgets.Delegates
|
||||||
{
|
{
|
||||||
public class OrderButtonsChromeDelegate : IWidgetDelegate
|
public class OrderButtonsChromeDelegate : IWidgetDelegate
|
||||||
{
|
{
|
||||||
public OrderButtonsChromeDelegate()
|
readonly World world;
|
||||||
{
|
[ObjectCreator.UseCtor]
|
||||||
|
public OrderButtonsChromeDelegate( [ObjectCreator.Param("world")] World world )
|
||||||
|
{
|
||||||
|
this.world = world;
|
||||||
var r = Widget.RootWidget;
|
var r = Widget.RootWidget;
|
||||||
var gameRoot = r.GetWidget("INGAME_ROOT");
|
var gameRoot = r.GetWidget("INGAME_ROOT");
|
||||||
|
|
||||||
@@ -25,23 +29,23 @@ namespace OpenRA.Mods.RA.Widgets.Delegates
|
|||||||
var sell = moneybin.GetWidget<OrderButtonWidget>("SELL");
|
var sell = moneybin.GetWidget<OrderButtonWidget>("SELL");
|
||||||
if (sell != null)
|
if (sell != null)
|
||||||
{
|
{
|
||||||
sell.Pressed = () => Game.world.OrderGenerator is SellOrderGenerator;
|
sell.Pressed = () => world.OrderGenerator is SellOrderGenerator;
|
||||||
sell.OnMouseDown = mi => { Game.world.ToggleInputMode<SellOrderGenerator>(); return true; };
|
sell.OnMouseDown = mi => { world.ToggleInputMode<SellOrderGenerator>(); return true; };
|
||||||
}
|
}
|
||||||
|
|
||||||
var powerdown = moneybin.GetWidget<OrderButtonWidget>("POWER_DOWN");
|
var powerdown = moneybin.GetWidget<OrderButtonWidget>("POWER_DOWN");
|
||||||
if (powerdown != null)
|
if (powerdown != null)
|
||||||
{
|
{
|
||||||
powerdown.Pressed = () => Game.world.OrderGenerator is PowerDownOrderGenerator;
|
powerdown.Pressed = () => world.OrderGenerator is PowerDownOrderGenerator;
|
||||||
powerdown.OnMouseDown = mi => { Game.world.ToggleInputMode<PowerDownOrderGenerator>(); return true; };
|
powerdown.OnMouseDown = mi => { world.ToggleInputMode<PowerDownOrderGenerator>(); return true; };
|
||||||
}
|
}
|
||||||
|
|
||||||
var repair = moneybin.GetWidget<OrderButtonWidget>("REPAIR");
|
var repair = moneybin.GetWidget<OrderButtonWidget>("REPAIR");
|
||||||
if (repair != null)
|
if (repair != null)
|
||||||
{
|
{
|
||||||
repair.Enabled = () => { return RepairOrderGenerator.PlayerIsAllowedToRepair( Game.world ); };
|
repair.Enabled = () => { return RepairOrderGenerator.PlayerIsAllowedToRepair( world ); };
|
||||||
repair.Pressed = () => Game.world.OrderGenerator is RepairOrderGenerator;
|
repair.Pressed = () => world.OrderGenerator is RepairOrderGenerator;
|
||||||
repair.OnMouseDown = mi => { Game.world.ToggleInputMode<RepairOrderGenerator>(); return true; };
|
repair.OnMouseDown = mi => { world.ToggleInputMode<RepairOrderGenerator>(); return true; };
|
||||||
repair.GetLongDesc = () => { return repair.Enabled() ? repair.LongDesc : repair.LongDesc + "\n\nRequires: Construction Yard"; };
|
repair.GetLongDesc = () => { return repair.Enabled() ? repair.LongDesc : repair.LongDesc + "\n\nRequires: Construction Yard"; };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ namespace OpenRA.Mods.RA.Widgets
|
|||||||
Modifiers = Game.GetModifierKeys()
|
Modifiers = Game.GetModifierKeys()
|
||||||
};
|
};
|
||||||
|
|
||||||
var cursor = Game.world.OrderGenerator.GetCursor( world, loc, mi );
|
var cursor = world.OrderGenerator.GetCursor( world, loc, mi );
|
||||||
if (cursor == null)
|
if (cursor == null)
|
||||||
return "default";
|
return "default";
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user