diff --git a/OpenRA.Mods.RA/Render/WithIdleOverlay.cs b/OpenRA.Mods.RA/Render/WithIdleOverlay.cs index 20181fd732..c1911ad2be 100644 --- a/OpenRA.Mods.RA/Render/WithIdleOverlay.cs +++ b/OpenRA.Mods.RA/Render/WithIdleOverlay.cs @@ -1,6 +1,6 @@ #region Copyright & License Information /* - * Copyright 2007-2013 The OpenRA Developers (see AUTHORS) + * Copyright 2007-2014 The OpenRA Developers (see AUTHORS) * This file is part of OpenRA, which is free software. It is made * available to you under the terms of the GNU General Public License * as published by the Free Software Foundation. For more information, @@ -8,6 +8,7 @@ */ #endregion +using System.Linq; using OpenRA.FileFormats; using OpenRA.Graphics; using OpenRA.Traits; @@ -23,6 +24,8 @@ namespace OpenRA.Mods.RA.Render [Desc("Position relative to body")] public readonly WVec Offset = WVec.Zero; + public readonly bool HideOnLowPower = false; + public object Create(ActorInitializer init) { return new WithIdleOverlay(init.self, this); } } @@ -35,14 +38,16 @@ namespace OpenRA.Mods.RA.Render { var rs = self.Trait(); var body = self.Trait(); + var disabled = self.TraitsImplementing(); buildComplete = !self.HasTrait(); // always render instantly for units overlay = new Animation(rs.GetImage(self)); overlay.PlayRepeating(info.Sequence); - rs.anims.Add("idle_overlay_{0}".F(info.Sequence), + rs.anims.Add("idle_overlay_{0}".F(info.Sequence), new AnimationWithOffset(overlay, () => body.LocalToWorld(info.Offset.Rotate(body.QuantizeOrientation(self, self.Orientation))), - () => !buildComplete, p => WithTurret.ZOffsetFromCenter(self, p, 1))); + () => !buildComplete || (info.HideOnLowPower && disabled.Any(d => d.Disabled)), + p => WithTurret.ZOffsetFromCenter(self, p, 1))); } public void BuildingComplete(Actor self) diff --git a/mods/d2k/rules/structures.yaml b/mods/d2k/rules/structures.yaml index 43df20ad46..da05abe490 100644 --- a/mods/d2k/rules/structures.yaml +++ b/mods/d2k/rules/structures.yaml @@ -338,6 +338,7 @@ CONCRETEB: Prerequisite: Outpost WithIdleOverlay@DISH: Sequence: idle-dish + HideOnLowPower: yes ^STARPORT: Inherits: ^Building