Search in sources :

Example 21 with Position

use of spacesettlers.utilities.Position in project spacesettlers by amymcgovern.

the class TestCollisionHandler method testElasticCollisionsShipToAsteroidX.

@Test
public void testElasticCollisionsShipToAsteroidX() {
    Ship ship1;
    Asteroid asteroid;
    Position ship1Pos = new Position(0, 0, Math.PI / 4);
    ship1Pos.setTranslationalVelocity(new Vector2D(20, 0));
    ship1 = new Ship("team1", Color.BLUE, ship1Pos);
    Position asteroid2Pos = new Position(10, 0, -Math.PI / 4);
    asteroid2Pos.setTranslationalVelocity(new Vector2D(-10, 0));
    asteroid = new Asteroid(asteroid2Pos, false, 10, true, .33, .33, .34);
    ship1.setMass(asteroid.getMass());
    collisionHandler.collide(ship1, asteroid, space);
    assertEquals(ship1.getPosition().getTranslationalVelocityX(), -10, 0.01);
    assertEquals(ship1.getPosition().getTranslationalVelocityY(), 0, 0.01);
    assertEquals(asteroid.getPosition().getTranslationalVelocityX(), 20, 0.01);
    assertEquals(asteroid.getPosition().getTranslationalVelocityY(), 0, 0.01);
}
Also used : Asteroid(spacesettlers.objects.Asteroid) Vector2D(spacesettlers.utilities.Vector2D) Position(spacesettlers.utilities.Position) Ship(spacesettlers.objects.Ship) Test(org.junit.Test)

Example 22 with Position

use of spacesettlers.utilities.Position in project spacesettlers by amymcgovern.

the class TestCollisionHandler method testCollidingWithMineableAsteroid.

@Test
public void testCollidingWithMineableAsteroid() {
    Ship ship1;
    Asteroid asteroid;
    Position ship1Pos = new Position(0, 0, Math.PI / 4);
    ship1Pos.setTranslationalVelocity(new Vector2D(20, 0));
    ship1 = new Ship("team1", Color.BLUE, ship1Pos);
    Position asteroid2Pos = new Position(10, 0, -Math.PI / 4);
    asteroid2Pos.setTranslationalVelocity(new Vector2D(-10, 0));
    asteroid = new Asteroid(asteroid2Pos, true, 10, true, .33, .33, .34);
    ResourcePile asteroidResources = asteroid.getResources();
    collisionHandler.collide(ship1, asteroid, space);
    assertEquals(ship1.getResources().getResourceQuantity(ResourceTypes.FUEL), asteroidResources.getResourceQuantity(ResourceTypes.FUEL), 0.0);
    assertEquals(ship1.getResources().getResourceQuantity(ResourceTypes.WATER), asteroidResources.getResourceQuantity(ResourceTypes.WATER), 0.0);
    assertEquals(ship1.getResources().getResourceQuantity(ResourceTypes.METALS), asteroidResources.getResourceQuantity(ResourceTypes.METALS), 0.0);
}
Also used : ResourcePile(spacesettlers.objects.resources.ResourcePile) Asteroid(spacesettlers.objects.Asteroid) Vector2D(spacesettlers.utilities.Vector2D) Position(spacesettlers.utilities.Position) Ship(spacesettlers.objects.Ship) Test(org.junit.Test)

Example 23 with Position

use of spacesettlers.utilities.Position in project spacesettlers by amymcgovern.

the class TestCollisionHandler method testElasticCollisionsAsteroidsMoveableToNonMoveableOnX.

@Test
public void testElasticCollisionsAsteroidsMoveableToNonMoveableOnX() {
    Asteroid asteroid1, asteroid2;
    Position position1 = new Position(0, 0, Math.PI / 4);
    position1.setTranslationalVelocity(new Vector2D(20, 0));
    asteroid1 = new Asteroid(position1, false, 10, true, .33, .33, .34);
    Position position2 = new Position(10, 0, -Math.PI / 4);
    asteroid2 = new Asteroid(position2, false, 10, false, .33, .33, .34);
    collisionHandler.collide(asteroid1, asteroid2, space);
    assertEquals(asteroid1.getPosition().getTranslationalVelocityX(), -20, 0.01);
    assertEquals(asteroid1.getPosition().getTranslationalVelocityY(), 0, 0.01);
    assertEquals(asteroid2.getPosition().getTranslationalVelocityX(), 0, 0.01);
    assertEquals(asteroid2.getPosition().getTranslationalVelocityY(), 0, 0.01);
}
Also used : Asteroid(spacesettlers.objects.Asteroid) Vector2D(spacesettlers.utilities.Vector2D) Position(spacesettlers.utilities.Position) Test(org.junit.Test)

Example 24 with Position

use of spacesettlers.utilities.Position in project spacesettlers by amymcgovern.

the class TestCollisionHandler method testElasticCollisionsAsteroidsMoveableToMoveableOnX.

@Test
public void testElasticCollisionsAsteroidsMoveableToMoveableOnX() {
    Asteroid asteroid1, asteroid2;
    Position position1 = new Position(0, 0, Math.PI / 4);
    position1.setTranslationalVelocity(new Vector2D(20, 0));
    asteroid1 = new Asteroid(position1, false, 10, true, .33, .33, .34);
    Position position2 = new Position(10, 0, -Math.PI / 4);
    position2.setTranslationalVelocity(new Vector2D(-10, 0));
    asteroid2 = new Asteroid(position2, false, 10, true, .33, .33, .34);
    collisionHandler.collide(asteroid1, asteroid2, space);
    assertEquals(asteroid1.getPosition().getTranslationalVelocityX(), -10, 0.01);
    assertEquals(asteroid1.getPosition().getTranslationalVelocityY(), 0, 0.01);
    assertEquals(asteroid2.getPosition().getTranslationalVelocityX(), 20, 0.01);
    assertEquals(asteroid2.getPosition().getTranslationalVelocityY(), 0, 0.01);
}
Also used : Asteroid(spacesettlers.objects.Asteroid) Vector2D(spacesettlers.utilities.Vector2D) Position(spacesettlers.utilities.Position) Test(org.junit.Test)

Example 25 with Position

use of spacesettlers.utilities.Position in project spacesettlers by amymcgovern.

the class TestToroidal2DPhysics method testfindShortestDistance.

/**
 * Tests points all around the current point
 *
 * (40, 40)			(60, 40)
 *
 * 			(50,50)
 *
 * (40, 60)			(60, 60)
 */
@Test
public void testfindShortestDistance() {
    Position pos2;
    position.setX(50);
    position.setY(50);
    // start with the same location so the vector should be 0,0
    pos2 = new Position(50, 50);
    Vector2D shortestDist = space.findShortestDistanceVector(position, pos2);
    assertEquals(shortestDist.getMagnitude(), 0, 0.01);
    assertEquals(shortestDist.getXValue(), 0, 0.01);
    assertEquals(shortestDist.getYValue(), 0, 0.01);
    assertEquals(shortestDist.getAngle(), 0, 0.01);
    // start in the upper left corner (on the diagram in the comments)
    double expectedMagnitude = Math.sqrt(200);
    pos2.setX(40);
    pos2.setY(40);
    shortestDist = space.findShortestDistanceVector(position, pos2);
    assertEquals(shortestDist.getMagnitude(), expectedMagnitude, 0.01);
    assertEquals(shortestDist.getXValue(), -10, 0.01);
    assertEquals(shortestDist.getYValue(), -10, 0.01);
    assertEquals(shortestDist.getAngle(), -(3 * Math.PI) / 4, 0.01);
    // upper right quadrant
    pos2.setX(60);
    pos2.setY(40);
    shortestDist = space.findShortestDistanceVector(position, pos2);
    assertEquals(shortestDist.getMagnitude(), expectedMagnitude, 0.01);
    assertEquals(shortestDist.getXValue(), 10, 0.01);
    assertEquals(shortestDist.getYValue(), -10, 0.01);
    assertEquals(shortestDist.getAngle(), -(Math.PI / 4), 0.01);
    // lower right quadrant
    pos2.setX(60);
    pos2.setY(60);
    shortestDist = space.findShortestDistanceVector(position, pos2);
    assertEquals(shortestDist.getMagnitude(), expectedMagnitude, 0.01);
    assertEquals(shortestDist.getXValue(), 10, 0.01);
    assertEquals(shortestDist.getYValue(), 10, 0.01);
    assertEquals(shortestDist.getAngle(), Math.PI / 4, 0.01);
    // lower left quadrant
    pos2.setX(40);
    pos2.setY(60);
    shortestDist = space.findShortestDistanceVector(position, pos2);
    assertEquals(shortestDist.getMagnitude(), expectedMagnitude, 0.01);
    assertEquals(shortestDist.getXValue(), -10, 0.01);
    assertEquals(shortestDist.getYValue(), 10, 0.01);
    assertEquals(shortestDist.getAngle(), (3 * Math.PI) / 4, 0.01);
}
Also used : Vector2D(spacesettlers.utilities.Vector2D) Position(spacesettlers.utilities.Position) Test(org.junit.Test)

Aggregations

Position (spacesettlers.utilities.Position)54 Test (org.junit.Test)28 Vector2D (spacesettlers.utilities.Vector2D)26 Ship (spacesettlers.objects.Ship)18 Movement (spacesettlers.utilities.Movement)16 Asteroid (spacesettlers.objects.Asteroid)14 AbstractAction (spacesettlers.actions.AbstractAction)12 DoNothingAction (spacesettlers.actions.DoNothingAction)12 Base (spacesettlers.objects.Base)11 Beacon (spacesettlers.objects.Beacon)10 MoveToObjectAction (spacesettlers.actions.MoveToObjectAction)9 UUID (java.util.UUID)6 MoveAction (spacesettlers.actions.MoveAction)6 AbstractObject (spacesettlers.objects.AbstractObject)6 AiCore (spacesettlers.objects.AiCore)5 HashMap (java.util.HashMap)4 Team (spacesettlers.clients.Team)2 AbstractActionableObject (spacesettlers.objects.AbstractActionableObject)2 Flag (spacesettlers.objects.Flag)2 ResourcePile (spacesettlers.objects.resources.ResourcePile)2