From ce8267992a260fe58052c38d897ddc366fa2d517 Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Sun, 23 Oct 2011 12:23:15 +1300 Subject: [PATCH] remove self parameter from IPostRenderSelection.RenderAfterWorld --- OpenRA.Game/Graphics/WorldRenderer.cs | 2 +- OpenRA.Game/Traits/DrawLineToTarget.cs | 7 ++++--- OpenRA.Game/Traits/Selectable.cs | 11 ++++++++--- OpenRA.Game/Traits/SelectionDecorations.cs | 11 +++++++++-- OpenRA.Game/Traits/TraitsInterfaces.cs | 2 +- OpenRA.Mods.RA/Minelayer.cs | 9 +++++++-- 6 files changed, 30 insertions(+), 12 deletions(-) diff --git a/OpenRA.Game/Graphics/WorldRenderer.cs b/OpenRA.Game/Graphics/WorldRenderer.cs index 85167308ba..5346d4a76f 100644 --- a/OpenRA.Game/Graphics/WorldRenderer.cs +++ b/OpenRA.Game/Graphics/WorldRenderer.cs @@ -102,7 +102,7 @@ namespace OpenRA.Graphics foreach (var a in world.Selection.Actors) if (!a.Destroyed) foreach (var t in a.TraitsImplementing()) - t.RenderAfterWorld(this, a); + t.RenderAfterWorld(this); Game.Renderer.Flush(); } diff --git a/OpenRA.Game/Traits/DrawLineToTarget.cs b/OpenRA.Game/Traits/DrawLineToTarget.cs index 3095f78821..ff2a300786 100644 --- a/OpenRA.Game/Traits/DrawLineToTarget.cs +++ b/OpenRA.Game/Traits/DrawLineToTarget.cs @@ -18,17 +18,18 @@ namespace OpenRA.Traits { public readonly int Ticks = 60; - public virtual object Create(ActorInitializer init) { return new DrawLineToTarget(this); } + public virtual object Create(ActorInitializer init) { return new DrawLineToTarget(init.self, this); } } public class DrawLineToTarget : IPostRenderSelection { + Actor self; DrawLineToTargetInfo Info; Target target; Color c; int lifetime; - public DrawLineToTarget(DrawLineToTargetInfo info) { this.Info = info; } + public DrawLineToTarget(Actor self, DrawLineToTargetInfo info) { this.self = self; this.Info = info; } public void SetTarget(Actor self, Target target, Color c, bool display) { @@ -39,7 +40,7 @@ namespace OpenRA.Traits lifetime = Info.Ticks; } - public void RenderAfterWorld(WorldRenderer wr, Actor self) + public void RenderAfterWorld(WorldRenderer wr) { if (self.IsIdle) return; diff --git a/OpenRA.Game/Traits/Selectable.cs b/OpenRA.Game/Traits/Selectable.cs index 5d6aefc53c..c00ebbef6e 100644 --- a/OpenRA.Game/Traits/Selectable.cs +++ b/OpenRA.Game/Traits/Selectable.cs @@ -14,22 +14,27 @@ using OpenRA.Graphics; namespace OpenRA.Traits { - public class SelectableInfo : TraitInfo + public class SelectableInfo : ITraitInfo { public readonly int Priority = 10; public readonly int[] Bounds = null; [VoiceReference] public readonly string Voice = null; + + public object Create(ActorInitializer init) { return new Selectable(init.self); } } public class Selectable : IPostRenderSelection { - public void RenderAfterWorld (WorldRenderer wr, Actor self) + Actor self; + + public Selectable(Actor self) { this.self = self; } + + public void RenderAfterWorld(WorldRenderer wr) { var bounds = self.Bounds.Value; var xy = new float2(bounds.Left, bounds.Top); var Xy = new float2(bounds.Right, bounds.Top); - var xY = new float2(bounds.Left, bounds.Bottom); wr.DrawSelectionBox(self, Color.White); DrawHealthBar(self, xy, Xy); diff --git a/OpenRA.Game/Traits/SelectionDecorations.cs b/OpenRA.Game/Traits/SelectionDecorations.cs index 8b58d75b15..9bd07f3415 100644 --- a/OpenRA.Game/Traits/SelectionDecorations.cs +++ b/OpenRA.Game/Traits/SelectionDecorations.cs @@ -14,7 +14,10 @@ using OpenRA.Graphics; namespace OpenRA.Traits { - public class SelectionDecorationsInfo : TraitInfo {} + public class SelectionDecorationsInfo : ITraitInfo + { + public object Create(ActorInitializer init) { return new SelectionDecorations(init.self); } + } public class SelectionDecorations : IPostRenderSelection { @@ -22,7 +25,11 @@ namespace OpenRA.Traits static readonly string[] pipStrings = { "pip-empty", "pip-green", "pip-yellow", "pip-red", "pip-gray", "pip-blue" }; static readonly string[] tagStrings = { "", "tag-fake", "tag-primary" }; - public void RenderAfterWorld (WorldRenderer wr, Actor self) + Actor self; + + public SelectionDecorations(Actor self) { this.self = self; } + + public void RenderAfterWorld(WorldRenderer wr) { var bounds = self.Bounds.Value; diff --git a/OpenRA.Game/Traits/TraitsInterfaces.cs b/OpenRA.Game/Traits/TraitsInterfaces.cs index 3761ed2f25..9203956146 100755 --- a/OpenRA.Game/Traits/TraitsInterfaces.cs +++ b/OpenRA.Game/Traits/TraitsInterfaces.cs @@ -203,7 +203,7 @@ namespace OpenRA.Traits public interface IPostRender { void RenderAfterWorld(WorldRenderer wr, Actor self); } - public interface IPostRenderSelection { void RenderAfterWorld(WorldRenderer wr, Actor self); } + public interface IPostRenderSelection { void RenderAfterWorld(WorldRenderer wr); } public interface IPreRenderSelection { void RenderBeforeWorld(WorldRenderer wr, Actor self); } public interface IRenderAsTerrain { IEnumerable RenderAsTerrain(Actor self); } diff --git a/OpenRA.Mods.RA/Minelayer.cs b/OpenRA.Mods.RA/Minelayer.cs index 1484516c4d..ff2a1cc63c 100644 --- a/OpenRA.Mods.RA/Minelayer.cs +++ b/OpenRA.Mods.RA/Minelayer.cs @@ -18,12 +18,14 @@ using OpenRA.Traits; namespace OpenRA.Mods.RA { - class MinelayerInfo : TraitInfo + class MinelayerInfo : ITraitInfo { [ActorReference] public readonly string Mine = "minv"; [ActorReference] public readonly string[] RearmBuildings = { "fix" }; public readonly float MinefieldDepth = 1.5f; + + public object Create(ActorInitializer init) { return new Minelayer(init.self); } } class Minelayer : IIssueOrder, IResolveOrder, IPostRenderSelection, ISync @@ -31,6 +33,9 @@ namespace OpenRA.Mods.RA /* [Sync] when sync can cope with arrays! */ public int2[] minefield = null; [Sync] int2 minefieldStart; + Actor self; + + public Minelayer(Actor self) { this.self = self; } public IEnumerable Orders { @@ -138,7 +143,7 @@ namespace OpenRA.Mods.RA public string GetCursor(World world, int2 xy, MouseInput mi) { lastMousePos = xy; return "ability"; } /* todo */ } - public void RenderAfterWorld(WorldRenderer wr, Actor self) + public void RenderAfterWorld(WorldRenderer wr) { if (self.Owner != self.World.LocalPlayer) return;