Provides automatic installation scripts for OpenRA with Tiberian Sun & Red Alert 2 + Dune 2 (Windows, Linux)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

47 lines
1.4 KiB

--- a/OpenRA.Mods.RA2/Traits/Render/WithExitOverlay.cs
+++ b/OpenRA.Mods.RA2/Traits/Render/WithExitOverlay.cs
@@ -36,13 +36,18 @@
public object Create(ActorInitializer init) { return new WithExitOverlay(init.Self, this); }
}
- public class WithExitOverlay : INotifyDamageStateChanged, INotifyBuildComplete, INotifySold, INotifyProduction, ITick
+ public class WithExitOverlay : INotifyDamageStateChanged, INotifyBuildComplete, INotifySold, INotifyProduction
{
readonly Actor self;
readonly Animation overlay;
- bool buildComplete, enable;
+ bool buildComplete;
CPos exit;
+ bool IsExitBlocked
+ {
+ get { return self.World.ActorMap.GetActorsAt(exit).Any(a => a != self); }
+ }
+
public WithExitOverlay(Actor self, WithExitOverlayInfo info)
{
this.self = self;
@@ -56,7 +61,7 @@
var anim = new AnimationWithOffset(overlay,
() => body.LocalToWorld(info.Offset.Rotate(body.QuantizeOrientation(self, self.Orientation))),
- () => !buildComplete || !enable);
+ () => !buildComplete || !IsExitBlocked);
rs.Add(anim, info.Palette, info.IsPlayerPalette);
}
@@ -80,13 +85,6 @@
public void UnitProduced(Actor self, Actor other, CPos exit)
{
this.exit = exit;
- enable = true;
- }
-
- public void Tick(Actor self)
- {
- if (enable)
- enable = self.World.ActorMap.GetActorsAt(exit).Any(a => a != self);
}
}
}
\ No newline at end of file