public void Does_not_support_a_null_presenter() { var collidableBodies = new DummyCollidableBodies(); CollidableMovementSystemPresenter presenter = null; Assert.Throws <ArgumentNullException>(() => { CollidableMovementSystem.WithCollidableBodiesAndPresenter( collidableBodies, presenter); }); }
public void When_it_has_no_body_is_an_error() { var noCollidableBodies = new NoCollidableBodies(); var spyPresenter = new SpyPresenter(); var system = CollidableMovementSystem .WithCollidableBodiesAndPresenter( noCollidableBodies, spyPresenter); var player = new Guid("8e7eaa84-f471-42ca-91ff-0eafe4cc5af3"); var destination = new Vector3(3.0f, 0.0f, 3.0f); system.MoveEntityTowardsDestination( player, destination); Assert.IsTrue(spyPresenter.ReportedError); }
public void Moves_it_as_far_as_possible_in_one_tick() { var noCollisions = new NoCollisions(); var spyPresenter = new SpyPresenter(); var system = CollidableMovementSystem .WithCollidableBodiesAndPresenter( noCollisions, spyPresenter); var player = noCollisions.Player; var destination = new Vector3(2.0f, 0.0f, 2.0f); system.MoveEntityTowardsDestination( player, destination); Assert.IsFalse(spyPresenter.ReportedError); Assert.AreEqual( destination, spyPresenter.EndingLocation); }
public MovementSystem MovementSystem( CharacterController characterController, CollidableMovementSystemPresenter presenter) { var collisions = CharacterControllerCollisions .WithControllerAndBodiesAndGameObjects( characterController, bodies, gameObjects); var collidableBodies = InMemoryCollidableBodies .WithCollections( movementSpeeds, bodies, collisions); return(CollidableMovementSystem .WithCollidableBodiesAndPresenter( collidableBodies, presenter)); }
public void Moves_it_to_the_adjusted_collision_location_in_one_tick() { var alwaysCollisions = new AlwaysCollisions(); var spyPresenter = new SpyPresenter(); var system = CollidableMovementSystem .WithCollidableBodiesAndPresenter( alwaysCollisions, spyPresenter); var player = alwaysCollisions.Player; var destination = new Vector3(5.0f, 0.0f, 5.0f); var expectedEndingLocation = alwaysCollisions.AdjustedCollisionLocation; system.MoveEntityTowardsDestination( player, destination); Assert.IsFalse(spyPresenter.ReportedError); Assert.AreEqual( expectedEndingLocation, spyPresenter.EndingLocation); }