private void drawBuildingCircle(int x, int y, BuildingMapDataObject buildingObject) { byte player = buildingObject.getPlayerId(); EBuildingType type = buildingObject.getType(); if (type == EBuildingType.TOWER || type == EBuildingType.BIG_TOWER || type == EBuildingType.CASTLE) { MapCircle circle = new MapCircle(x, y, CommonConstants.TOWER_RADIUS); drawCircle(player, circle); } }
private void occupyAreaIfNeeded() { if (!occupiedArea) { MapCircle occupying = new MapCircle(super.pos, CommonConstants.TOWER_RADIUS); super.grid.occupyAreaByTower(super.getPlayer(), occupying, getGroundArea()); occupiedArea = true; } }
/** * Test method for {@link jsettlers.common.map.shapes.MapCircle#iterator()}. */ @Test public void testIterator() { MapCircle circle = new MapCircle((short) (TEST_WIDTH / 2), (short) (TEST_WIDTH / 2), 31.123f); testShapeIterator(circle); }
private MapCircle getTowerCircle(int x, int y, int radius) { return new MapCircle(new ShortPoint2D(x, y), radius); }
public CachedViewCircle(int radius) { radius -= FogOfWar.PADDING / 2; MapCircle circle = new MapCircle(0, 0, radius + FogOfWar.PADDING); size = countElements(circle); x = new short[size]; y = new short[size]; sight = new byte[size]; MapCircleIterator iter = circle.iterator(); final float squaredViewDistance = radius * radius; int i = 0; while (iter.hasNext()) { int y = iter.nextY(); int x = iter.nextX(); this.x[i] = (short) x; this.y[i] = (short) y; double squaredDistance = MapCircle.getSquaredDistance(x, y); byte newSight; if (squaredDistance < squaredViewDistance) { newSight = CommonConstants.FOG_OF_WAR_VISIBLE; } else { newSight = (byte) (CommonConstants.FOG_OF_WAR_VISIBLE - (Math.sqrt(squaredDistance) - radius) / FogOfWar.PADDING * CommonConstants.FOG_OF_WAR_VISIBLE); } sight[i] = newSight; i++; } }
private int setPartitionInCircle(short partition, int x, int y, float radius) { MapCircle circle = new MapCircle(new ShortPoint2D(x, y), radius); int positions = 0; for (ShortPoint2D curr : circle) { grid.changePartitionUncheckedAt(curr.x, curr.y, partition); positions++; } return positions; }
@Test public void testGetBorders() { for (int i = 1; i < 40; i++) { MapCircle circle = new MapCircle(new ShortPoint2D(100, 100), i); SRectangle borders = circle.getBorders(); for (ShortPoint2D curr : circle) { if (!borders.contains(curr)) { fail("position: " + curr + " is not in the border " + borders + " radius: " + i); } } } }
MapCircle circle = new MapCircle(request.cX, request.cY, request.maxRadius * MAX_RADIUS_MULTIPLIER);
@Test public void testBorderStream() { for (int i = 1; i < 40; i++) { MapCircle circle = new MapCircle(new ShortPoint2D(100, 100), i); MapCircle oneSmallerCircle = new MapCircle(new ShortPoint2D(100, 100), i - 1); circle.streamBorder().forEach((x, y) -> { assertTrue(circle.contains(x, y)); assertTrue(!oneSmallerCircle.contains(x, y)); }); int maxCount = circle.stream().count() - oneSmallerCircle.stream().count(); int actualCount = circle.streamBorder().count(); assertTrue(actualCount <= maxCount); } } }
@Test public void testStream() { for (int i = 0; i < 40; i++) { MapCircle circle = new MapCircle(new ShortPoint2D(100, 100), i); MapCircleIterator iterator = circle.iterator(); circle.stream().forEach((x, y) -> { assertTrue(iterator.hasNext()); ShortPoint2D expected = iterator.next(); assertEquals(expected, new ShortPoint2D(x, y)); }); assertFalse(iterator.hasNext()); } }
/** * Test method for {@link jsettlers.common.map.shapes.MapCircle#contains(jsettlers.common.position.ShortPoint2D)} . */ @Test public void testContainsShortPoint2D() { short cx = 0; short cy = 0; MapCircle circle = new MapCircle(cx, cy, 1); ShortPoint2D[] truePoints = new ShortPoint2D[] { new ShortPoint2D(cx - 1, cy - 1), new ShortPoint2D(cx - 1, cy), new ShortPoint2D(cx, cy - 1), new ShortPoint2D(cx, cy), new ShortPoint2D(cx + 1, cy), new ShortPoint2D(cx, cy + 1), new ShortPoint2D(cx + 1, cy + 1) }; for (ShortPoint2D point : truePoints) { assertTrue("Point should be inside", circle.contains(point)); } ShortPoint2D[] falsePoints = new ShortPoint2D[] { new ShortPoint2D(cx - 2, cy - 1), new ShortPoint2D(cx, cy + 3), new ShortPoint2D(cx - 1, cy + 1), }; for (ShortPoint2D point : falsePoints) { assertFalse("Point should not be inside: " + point, circle.contains(point)); } }