@@ -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 );
0 commit comments