Skip to content

Commit b514493

Browse files
author
Jasper Geurtz
committed
fix getUnitX conditions
1 parent 27226c1 commit b514493

1 file changed

Lines changed: 7 additions & 5 deletions

File tree

‎src/main/java/bwapi/Game.java‎

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -680,10 +680,12 @@ public List<Unit> getUnitsOnTile(final int tileX, final int tileY) {
680680
* given build tile.
681681
*/
682682
public List<Unit> getUnitsOnTile(final int tileX, final int tileY, final UnitFilter pred) {
683-
return getAllUnits().stream().filter(u -> {
684-
final TilePosition tp = u.getTilePosition();
685-
return tp.x == tileX && tp.y == tileY && pred.test(u);
686-
}).collect(Collectors.toList());
683+
final TilePosition tile = new TilePosition(tileX, tileY);
684+
if (!tile.isValid(this)) {
685+
return Collections.emptyList();
686+
}
687+
final Position p = tile.toPosition();
688+
return getUnitsInRectangle(p.x, p.y, p.x + 32, p.y + 32, pred);
687689
}
688690

689691
public List<Unit> getUnitsInRectangle(final int left, final int top, final int right, final int bottom) {
@@ -740,7 +742,7 @@ public List<Unit> getUnitsInRadius(final Position center, final int radius) {
740742

741743
public List<Unit> getUnitsInRadius(final Position center, final int radius, final UnitFilter pred) {
742744
return getAllUnits().stream()
743-
.filter(u -> center.getApproxDistance(u.getPosition()) <= radius && pred.test(u))
745+
.filter(u -> u.getDistance(center) <= radius && pred.test(u))
744746
.collect(Collectors.toList());
745747
}
746748

0 commit comments

Comments
 (0)