pruning refs to Game.world
This commit is contained in:
@@ -45,7 +45,9 @@ namespace OpenRA.Traits
|
|||||||
public bool IsUsed;
|
public bool IsUsed;
|
||||||
public bool IsAvailable;
|
public bool IsAvailable;
|
||||||
public bool IsReady { get { return IsAvailable && RemainingTime == 0; } }
|
public bool IsReady { get { return IsAvailable && RemainingTime == 0; } }
|
||||||
public readonly Player Owner;
|
|
||||||
|
protected readonly Actor Self;
|
||||||
|
protected readonly Player Owner;
|
||||||
|
|
||||||
bool notifiedCharging;
|
bool notifiedCharging;
|
||||||
bool notifiedReady;
|
bool notifiedReady;
|
||||||
@@ -54,6 +56,7 @@ namespace OpenRA.Traits
|
|||||||
{
|
{
|
||||||
Info = info;
|
Info = info;
|
||||||
RemainingTime = TotalTime;
|
RemainingTime = TotalTime;
|
||||||
|
Self = self;
|
||||||
Owner = self.Owner;
|
Owner = self.Owner;
|
||||||
|
|
||||||
self.Trait<TechTreeCache>().Add( Info.Prerequisites.Select( a => Rules.Info[ a.ToLowerInvariant() ] ).ToList(), this );
|
self.Trait<TechTreeCache>().Add( Info.Prerequisites.Select( a => Rules.Info[ a.ToLowerInvariant() ] ).ToList(), this );
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ namespace OpenRA.Mods.Cnc
|
|||||||
|
|
||||||
protected override void OnActivate()
|
protected override void OnActivate()
|
||||||
{
|
{
|
||||||
Game.world.OrderGenerator =
|
Self.World.OrderGenerator =
|
||||||
new GenericSelectTargetWithBuilding<IonControl>(Owner.PlayerActor, "IonCannon", "ability");
|
new GenericSelectTargetWithBuilding<IonControl>(Owner.PlayerActor, "IonCannon", "ability");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,8 +35,8 @@ namespace OpenRA.Mods.RA.Effects
|
|||||||
|
|
||||||
if (silo == null)
|
if (silo == null)
|
||||||
{
|
{
|
||||||
altitude = Game.world.Map.Height*Game.CellSize;
|
altitude = silo.World.Map.Height*Game.CellSize;
|
||||||
StartDescent(Game.world);
|
StartDescent(silo.World);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
pos = silo.CenterLocation + spawnOffset;
|
pos = silo.CenterLocation + spawnOffset;
|
||||||
@@ -65,7 +65,7 @@ namespace OpenRA.Mods.RA.Effects
|
|||||||
if (altitude <= 0)
|
if (altitude <= 0)
|
||||||
{
|
{
|
||||||
// Trigger screen desaturate effect
|
// Trigger screen desaturate effect
|
||||||
foreach (var a in Game.world.Queries.WithTrait<NukePaletteEffect>())
|
foreach (var a in world.Queries.WithTrait<NukePaletteEffect>())
|
||||||
a.Trait.Enable();
|
a.Trait.Enable();
|
||||||
|
|
||||||
Explode(world);
|
Explode(world);
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ namespace OpenRA.Mods.RA
|
|||||||
foreach (var r in rs)
|
foreach (var r in rs)
|
||||||
yield return r;
|
yield return r;
|
||||||
|
|
||||||
if (self.Owner == Game.world.LocalPlayer && Level > 0)
|
if (self.Owner == self.World.LocalPlayer && Level > 0)
|
||||||
{
|
{
|
||||||
RankAnim.Tick(); // hack
|
RankAnim.Tick(); // hack
|
||||||
var bounds = self.GetBounds(true);
|
var bounds = self.GetBounds(true);
|
||||||
|
|||||||
@@ -127,7 +127,7 @@ namespace OpenRA.Mods.RA
|
|||||||
var minefield = GetMinefieldCells(ml.minefieldStart, lastMousePos, minelayer.Info.Traits.Get<MinelayerInfo>().MinefieldDepth)
|
var minefield = GetMinefieldCells(ml.minefieldStart, lastMousePos, minelayer.Info.Traits.Get<MinelayerInfo>().MinefieldDepth)
|
||||||
.Where(p => movement.CanEnterCell(p)).ToArray();
|
.Where(p => movement.CanEnterCell(p)).ToArray();
|
||||||
|
|
||||||
Game.world.WorldRenderer.DrawLocus(Color.Cyan, minefield);
|
world.WorldRenderer.DrawLocus(Color.Cyan, minefield);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RenderBeforeWorld(World world) { }
|
public void RenderBeforeWorld(World world) { }
|
||||||
@@ -141,7 +141,7 @@ namespace OpenRA.Mods.RA
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
if (minefield != null)
|
if (minefield != null)
|
||||||
Game.world.WorldRenderer.DrawLocus(Color.Cyan, minefield);
|
self.World.WorldRenderer.DrawLocus(Color.Cyan, minefield);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ namespace OpenRA.Mods.RA.Orders
|
|||||||
|
|
||||||
public static bool PlayerIsAllowedToRepair( World world )
|
public static bool PlayerIsAllowedToRepair( World world )
|
||||||
{
|
{
|
||||||
return Game.world.Queries.OwnedBy[ Game.world.LocalPlayer ].WithTrait<AllowsBuildingRepair>().Any();
|
return world.Queries.OwnedBy[ world.LocalPlayer ].WithTrait<AllowsBuildingRepair>().Any();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RenderAfterWorld( World world ) {}
|
public void RenderAfterWorld( World world ) {}
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ namespace OpenRA.Mods.RA
|
|||||||
|
|
||||||
protected override void OnActivate()
|
protected override void OnActivate()
|
||||||
{
|
{
|
||||||
Game.world.OrderGenerator = new GenericSelectTarget(Owner.PlayerActor, Info.OrderName, "ability");
|
Self.World.OrderGenerator = new GenericSelectTarget(Owner.PlayerActor, Info.OrderName, "ability");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ResolveOrder(Actor self, Order order)
|
public void ResolveOrder(Actor self, Order order)
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ namespace OpenRA.Mods.RA
|
|||||||
class ChronoshiftPower : SupportPower, IResolveOrder
|
class ChronoshiftPower : SupportPower, IResolveOrder
|
||||||
{
|
{
|
||||||
public ChronoshiftPower(Actor self, ChronoshiftPowerInfo info) : base(self, info) { }
|
public ChronoshiftPower(Actor self, ChronoshiftPowerInfo info) : base(self, info) { }
|
||||||
protected override void OnActivate() { Game.world.OrderGenerator = new SelectTarget(); }
|
protected override void OnActivate() { Self.World.OrderGenerator = new SelectTarget(); }
|
||||||
|
|
||||||
public void ResolveOrder(Actor self, Order order)
|
public void ResolveOrder(Actor self, Order order)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ namespace OpenRA.Mods.RA
|
|||||||
protected override void OnFinishCharging() { Sound.PlayToPlayer(Owner, "ironrdy1.aud"); }
|
protected override void OnFinishCharging() { Sound.PlayToPlayer(Owner, "ironrdy1.aud"); }
|
||||||
protected override void OnActivate()
|
protected override void OnActivate()
|
||||||
{
|
{
|
||||||
Game.world.OrderGenerator = new SelectTarget();
|
Self.World.OrderGenerator = new SelectTarget();
|
||||||
Sound.Play("slcttgt1.aud");
|
Sound.Play("slcttgt1.aud");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ namespace OpenRA.Mods.RA
|
|||||||
|
|
||||||
protected override void OnActivate()
|
protected override void OnActivate()
|
||||||
{
|
{
|
||||||
Game.world.OrderGenerator =
|
Self.World.OrderGenerator =
|
||||||
new GenericSelectTargetWithBuilding<NukeSilo>(Owner.PlayerActor, "NuclearMissile", "nuke");
|
new GenericSelectTargetWithBuilding<NukeSilo>(Owner.PlayerActor, "NuclearMissile", "nuke");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ namespace OpenRA.Mods.RA
|
|||||||
|
|
||||||
protected override void OnActivate()
|
protected override void OnActivate()
|
||||||
{
|
{
|
||||||
Game.world.OrderGenerator =
|
Self.World.OrderGenerator =
|
||||||
new GenericSelectTarget( Owner.PlayerActor, "ParatroopersActivate", "ability" );
|
new GenericSelectTarget( Owner.PlayerActor, "ParatroopersActivate", "ability" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ namespace OpenRA.Mods.RA
|
|||||||
protected override void OnFinishCharging() { Sound.PlayToPlayer(Owner, "spypln1.aud"); }
|
protected override void OnFinishCharging() { Sound.PlayToPlayer(Owner, "spypln1.aud"); }
|
||||||
protected override void OnActivate()
|
protected override void OnActivate()
|
||||||
{
|
{
|
||||||
Game.world.OrderGenerator = new GenericSelectTarget(Owner.PlayerActor, "SpyPlane", "ability");
|
Self.World.OrderGenerator = new GenericSelectTarget(Owner.PlayerActor, "SpyPlane", "ability");
|
||||||
Sound.Play("slcttgt1.aud");
|
Sound.Play("slcttgt1.aud");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,13 +14,23 @@ using OpenRA.Widgets;
|
|||||||
|
|
||||||
namespace OpenRA.Mods.RA.Widgets
|
namespace OpenRA.Mods.RA.Widgets
|
||||||
{
|
{
|
||||||
class ChoosePaletteOnSelectInfo : TraitInfo<ChoosePaletteOnSelect> { }
|
class ChoosePaletteOnSelectInfo : ITraitInfo
|
||||||
|
{
|
||||||
|
public object Create( ActorInitializer init ) { return new ChoosePaletteOnSelect( init ); }
|
||||||
|
}
|
||||||
|
|
||||||
class ChoosePaletteOnSelect : INotifySelection
|
class ChoosePaletteOnSelect : INotifySelection
|
||||||
{
|
{
|
||||||
|
readonly World world;
|
||||||
|
|
||||||
|
public ChoosePaletteOnSelect( ActorInitializer init )
|
||||||
|
{
|
||||||
|
world = init.world;
|
||||||
|
}
|
||||||
|
|
||||||
public void SelectionChanged()
|
public void SelectionChanged()
|
||||||
{
|
{
|
||||||
var firstItem = Game.world.Selection.Actors.FirstOrDefault(
|
var firstItem = world.Selection.Actors.FirstOrDefault(
|
||||||
a => a.World.LocalPlayer == a.Owner && a.HasTrait<Production>());
|
a => a.World.LocalPlayer == a.Owner && a.HasTrait<Production>());
|
||||||
|
|
||||||
if (firstItem == null)
|
if (firstItem == null)
|
||||||
|
|||||||
Reference in New Issue
Block a user