This commit is contained in:
Chris Forbes
2009-11-08 14:00:02 +13:00
parent d954b22f65
commit 8ae3c04212
2 changed files with 5 additions and 4 deletions

View File

@@ -299,7 +299,7 @@ namespace OpenRa.Game
{ {
var bi = (UnitInfo.BuildingInfo)Rules.UnitInfo[name]; var bi = (UnitInfo.BuildingInfo)Rules.UnitInfo[name];
return !Footprint.Tiles(bi, xy, adjust).Any( 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, bi.WaterBound ? UnitMovementType.Float : UnitMovementType.Wheel,
toIgnore)); toIgnore));
} }

View File

@@ -56,14 +56,15 @@ namespace OpenRa.Game
for (var i = 0; i < 128; i++) for (var i = 0; i < 128; i++)
if (Game.GetDistanceToBase(new int2(i, j), Game.LocalPlayer) < maxDistance) if (Game.GetDistanceToBase(new int2(i, j), Game.LocalPlayer) < maxDistance)
if (Game.IsCellBuildable(new int2(i, j), bi.WaterBound ? UnitMovementType.Float : UnitMovementType.Wheel)) 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( var tooFarFromBase = !Footprint.Tiles(bi, position).Any(
t => Game.GetDistanceToBase(t, Game.LocalPlayer) < maxDistance); t => Game.GetDistanceToBase(t, Game.LocalPlayer) < maxDistance);
foreach( var t in Footprint.Tiles( bi, position ) ) foreach( var t in Footprint.Tiles( bi, position ) )
spriteRenderer.DrawSprite( !tooFarFromBase && Game.IsCellBuildable( t, bi.WaterBound spriteRenderer.DrawSprite( (!tooFarFromBase && Game.IsCellBuildable( t, bi.WaterBound
? UnitMovementType.Float : UnitMovementType.Wheel ) ? UnitMovementType.Float : UnitMovementType.Wheel ) && !Game.map.ContainsResource(t))
? buildOk : buildBlocked, Game.CellSize * t, 0 ); ? buildOk : buildBlocked, Game.CellSize * t, 0 );
spriteRenderer.Flush(); spriteRenderer.Flush();