remove refs to Game.world in widgets

This commit is contained in:
Bob
2010-10-12 02:11:16 +13:00
parent 09db76f89f
commit c974e61680
5 changed files with 32 additions and 17 deletions

View File

@@ -19,10 +19,15 @@ namespace OpenRA.Widgets
public class WorldTooltipWidget : Widget public class WorldTooltipWidget : Widget
{ {
public int TooltipDelay = 10; public int TooltipDelay = 10;
public WorldTooltipWidget() : base() { } readonly World world;
[ObjectCreator.UseCtor]
public WorldTooltipWidget( [ObjectCreator.Param] World world )
{
this.world = world;
}
public override void DrawInner( WorldRenderer wr ) public override void DrawInner( WorldRenderer wr )
{ {
var world = Game.world;
if (Viewport.TicksSinceLastMove < TooltipDelay || world == null || world.LocalPlayer == null) if (Viewport.TicksSinceLastMove < TooltipDelay || world == null || world.LocalPlayer == null)
return; return;

View File

@@ -19,11 +19,15 @@ namespace OpenRA.Mods.RA.Widgets
{ {
public bool SplitOreAndCash = false; public bool SplitOreAndCash = false;
public MoneyBinWidget() : base() { } readonly World world;
[ObjectCreator.UseCtor]
public MoneyBinWidget( [ObjectCreator.Param] World world )
{
this.world = world;
}
public override void DrawInner( WorldRenderer wr ) public override void DrawInner( WorldRenderer wr )
{ {
var world = Game.world;
if( world.LocalPlayer == null ) return; if( world.LocalPlayer == null ) return;
var playerResources = world.LocalPlayer.PlayerActor.Trait<PlayerResources>(); var playerResources = world.LocalPlayer.PlayerActor.Trait<PlayerResources>();

View File

@@ -25,9 +25,15 @@ namespace OpenRA.Mods.RA.Widgets
float? lastPowerDrainedPos; float? lastPowerDrainedPos;
string powerCollection; string powerCollection;
readonly World world;
[ObjectCreator.UseCtor]
public PowerBinWidget( [ObjectCreator.Param] World world )
{
this.world = world;
}
public override void DrawInner( WorldRenderer wr ) public override void DrawInner( WorldRenderer wr )
{ {
var world = Game.world;
if( world.LocalPlayer == null ) return; if( world.LocalPlayer == null ) return;
powerCollection = "power-" + world.LocalPlayer.Country.Race; powerCollection = "power-" + world.LocalPlayer.Country.Race;

View File

@@ -29,7 +29,6 @@ namespace OpenRA.Mods.RA.Widgets
bool hasRadar = false; bool hasRadar = false;
string radarCollection; string radarCollection;
World world;
float previewScale = 0; float previewScale = 0;
RectangleF mapRect = Rectangle.Empty; RectangleF mapRect = Rectangle.Empty;
int2 previewOrigin; int2 previewOrigin;
@@ -39,7 +38,9 @@ namespace OpenRA.Mods.RA.Widgets
Sprite actorSprite; Sprite actorSprite;
Sprite shroudSprite; Sprite shroudSprite;
public void SetWorld(World world) readonly World world;
[ObjectCreator.UseCtor]
public RadarBinWidget( [ObjectCreator.Param] World world )
{ {
this.world = world; this.world = world;
var size = Math.Max(world.Map.Width, world.Map.Height); var size = Math.Max(world.Map.Width, world.Map.Height);
@@ -47,7 +48,6 @@ namespace OpenRA.Mods.RA.Widgets
previewOrigin = new int2(9 + (int)(radarOpenOrigin.X + previewScale * (size - world.Map.Width)/2), (int)(radarOpenOrigin.Y + previewScale * (size - world.Map.Height)/2)); previewOrigin = new int2(9 + (int)(radarOpenOrigin.X + previewScale * (size - world.Map.Width)/2), (int)(radarOpenOrigin.Y + previewScale * (size - world.Map.Height)/2));
mapRect = new RectangleF(previewOrigin.X, previewOrigin.Y, (int)(world.Map.Width * previewScale), (int)(world.Map.Height * previewScale)); mapRect = new RectangleF(previewOrigin.X, previewOrigin.Y, (int)(world.Map.Width * previewScale), (int)(world.Map.Height * previewScale));
// Only needs to be done once // Only needs to be done once
var terrainBitmap = Minimap.TerrainBitmap(world.Map); var terrainBitmap = Minimap.TerrainBitmap(world.Map);
var r = new Rectangle( 0, 0, world.Map.Width, world.Map.Height ); var r = new Rectangle( 0, 0, world.Map.Width, world.Map.Height );
@@ -160,10 +160,6 @@ namespace OpenRA.Mods.RA.Widgets
int updateTicks = 0; int updateTicks = 0;
public override void Tick() public override void Tick()
{ {
var w = Game.world;
if( world != w )
SetWorld( w );
var hasRadarNew = world.Queries.OwnedBy[world.LocalPlayer] var hasRadarNew = world.Queries.OwnedBy[world.LocalPlayer]
.WithTrait<ProvidesRadar>() .WithTrait<ProvidesRadar>()
.Any(a => a.Trait.IsActive); .Any(a => a.Trait.IsActive);

View File

@@ -25,7 +25,12 @@ namespace OpenRA.Mods.RA.Widgets
Animation clock; Animation clock;
readonly List<Pair<Rectangle, Action<MouseInput>>> buttons = new List<Pair<Rectangle,Action<MouseInput>>>(); readonly List<Pair<Rectangle, Action<MouseInput>>> buttons = new List<Pair<Rectangle,Action<MouseInput>>>();
public SpecialPowerBinWidget() : base() { } readonly World world;
[ObjectCreator.UseCtor]
public SpecialPowerBinWidget( [ObjectCreator.Param] World world )
{
this.world = world;
}
public override void Initialize() public override void Initialize()
{ {
@@ -65,7 +70,6 @@ namespace OpenRA.Mods.RA.Widgets
public override void DrawInner( WorldRenderer wr ) public override void DrawInner( WorldRenderer wr )
{ {
var world = Game.world;
buttons.Clear(); buttons.Clear();
if( world.LocalPlayer == null ) return; if( world.LocalPlayer == null ) return;