diff --git a/OpenRa.Game/Game.cs b/OpenRa.Game/Game.cs index dda2b8a277..07bbfc8a8f 100644 --- a/OpenRa.Game/Game.cs +++ b/OpenRa.Game/Game.cs @@ -299,7 +299,7 @@ namespace OpenRa.Game { var bi = (UnitInfo.BuildingInfo)Rules.UnitInfo[name]; return !Footprint.Tiles(bi, xy, adjust).Any( - t => !Game.IsCellBuildable(t, + t => Game.map.ContainsResource(t) || !Game.IsCellBuildable(t, bi.WaterBound ? UnitMovementType.Float : UnitMovementType.Wheel, toIgnore)); } diff --git a/OpenRa.Game/UiOverlay.cs b/OpenRa.Game/UiOverlay.cs index 569a25dd7d..d7e5f7be2b 100644 --- a/OpenRa.Game/UiOverlay.cs +++ b/OpenRa.Game/UiOverlay.cs @@ -56,14 +56,15 @@ namespace OpenRa.Game for (var i = 0; i < 128; i++) if (Game.GetDistanceToBase(new int2(i, j), Game.LocalPlayer) < maxDistance) if (Game.IsCellBuildable(new int2(i, j), bi.WaterBound ? UnitMovementType.Float : UnitMovementType.Wheel)) - spriteRenderer.DrawSprite(unitDebug, Game.CellSize * new float2(i, j), 0); + if (!Game.map.ContainsResource(new int2(i,j))) + spriteRenderer.DrawSprite(unitDebug, Game.CellSize * new float2(i, j), 0); var tooFarFromBase = !Footprint.Tiles(bi, position).Any( t => Game.GetDistanceToBase(t, Game.LocalPlayer) < maxDistance); foreach( var t in Footprint.Tiles( bi, position ) ) - spriteRenderer.DrawSprite( !tooFarFromBase && Game.IsCellBuildable( t, bi.WaterBound - ? UnitMovementType.Float : UnitMovementType.Wheel ) + spriteRenderer.DrawSprite( (!tooFarFromBase && Game.IsCellBuildable( t, bi.WaterBound + ? UnitMovementType.Float : UnitMovementType.Wheel ) && !Game.map.ContainsResource(t)) ? buildOk : buildBlocked, Game.CellSize * t, 0 ); spriteRenderer.Flush();