Skip to content

Commit 9bdc460

Browse files
committed
add some default filters & make unitfilter public
1 parent 1e2af03 commit 9bdc460

File tree

2 files changed

+25
-1
lines changed

2 files changed

+25
-1
lines changed

src/main/java/bwapi/Game.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -413,30 +413,54 @@ public Set<Unit> getUnitsOnTile(final TilePosition tile) {
413413
return getUnitsOnTile(tile.x, tile.y);
414414
}
415415

416+
public Set<Unit> getUnitsInRectangle(final int left, final int top, final int right, final int bottom) {
417+
return getUnitsInRectangle(left, top, right, bottom, u -> true);
418+
}
419+
416420
public Set<Unit> getUnitsInRectangle(final int left, final int top, final int right, final int bottom, final UnitFilter filter) {
417421
return getAllUnits().stream().filter(u -> {
418422
final Position p = u.getPosition();
419423
return left <= p.x && top <= p.y && p.x < right && p.y < bottom && filter.operation(u);
420424
}).collect(Collectors.toSet());
421425
}
422426

427+
public Set<Unit> getUnitsInRectangle(final Position leftTop, final Position rightBottom) {
428+
return getUnitsInRectangle(leftTop.x, leftTop.y, rightBottom.x, rightBottom.y, u -> true);
429+
}
430+
423431
public Set<Unit> getUnitsInRectangle(final Position leftTop, final Position rightBottom, final UnitFilter filter) {
424432
return getUnitsInRectangle(leftTop.x, leftTop.y, rightBottom.x, rightBottom.y, filter);
425433
}
426434

435+
public Set<Unit> getUnitsInRadius(final int x, final int y, final int radius) {
436+
return getUnitsInRadius(x, y, radius, u -> true);
437+
}
438+
427439
public Set<Unit> getUnitsInRadius(final int x, final int y, final int radius, final UnitFilter filter) {
428440
return getUnitsInRadius(new Position(x, y), radius, filter);
429441
}
430442

443+
public Set<Unit> getUnitsInRadius(final Position center, final int radius) {
444+
return getUnitsInRadius(center, radius, u -> true);
445+
}
446+
431447
public Set<Unit> getUnitsInRadius(final Position center, final int radius, final UnitFilter filter) {
432448
return getAllUnits().stream().filter(u -> center.getApproxDistance(u.getPosition()) <= radius && filter.operation(u)).collect(Collectors.toSet());
433449
}
434450

451+
public Unit getClosestUnitInRectangle(final Position center, final int left, final int top, final int right, final int bottom) {
452+
return getClosestUnitInRectangle(center, left, top, right, bottom, u -> true);
453+
}
454+
435455
public Unit getClosestUnitInRectangle(final Position center, final int left, final int top, final int right, final int bottom, final UnitFilter filter) {
436456
return getUnitsInRectangle(left, top, right, bottom, filter).stream()
437457
.min(Comparator.comparingInt(u -> u.getDistance(center))).orElse(null);
438458
}
439459

460+
public Unit getClosestUnitInRadius(final Position center, final int radius) {
461+
return getClosestUnitInRadius(center, radius, u -> true);
462+
}
463+
440464
public Unit getClosestUnitInRadius(final Position center, final int radius, final UnitFilter filter) {
441465
return getUnitsInRadius(center, radius, filter).stream()
442466
.min(Comparator.comparingInt(u -> u.getDistance(center))).orElse(null);
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
package bwapi;
22

3-
interface UnitFilter {
3+
public interface UnitFilter {
44
boolean operation(Unit unit);
55
}

0 commit comments

Comments
 (0)