aboutsummaryrefslogtreecommitdiff
path: root/src/test/CollisionTest.cpp
diff options
context:
space:
mode:
authorJAROWMR <jarorutjes07@gmail.com>2024-12-18 21:13:55 +0100
committerJAROWMR <jarorutjes07@gmail.com>2024-12-18 21:13:55 +0100
commit3855044ad97a41ca71b0d3ea2240f4eee93cc86f (patch)
tree204cc74691888b119d2b9c0c1a45fd8402758d0e /src/test/CollisionTest.cpp
parent6e92c59b3364b00eb15c310120b93acc83ca504e (diff)
updating collision system
Diffstat (limited to 'src/test/CollisionTest.cpp')
-rw-r--r--src/test/CollisionTest.cpp69
1 files changed, 18 insertions, 51 deletions
diff --git a/src/test/CollisionTest.cpp b/src/test/CollisionTest.cpp
index 50e862d..a86f7d3 100644
--- a/src/test/CollisionTest.cpp
+++ b/src/test/CollisionTest.cpp
@@ -25,6 +25,7 @@ using namespace std::chrono_literals;
using namespace crepe;
using namespace testing;
+
class CollisionHandler : public Script {
public:
int box_id;
@@ -112,11 +113,11 @@ TEST_F(CollisionTest, collision_example) {
bool collision_happend = false;
script_object1_ref->test_fn = [&collision_happend](const CollisionEvent & ev) {
collision_happend = true;
- EXPECT_EQ(ev.info.this_collider.game_object_id, 1);
+ EXPECT_EQ(ev.info.self.transform.game_object_id, 1);
};
script_object2_ref->test_fn = [&collision_happend](const CollisionEvent & ev) {
collision_happend = true;
- EXPECT_EQ(ev.info.this_collider.game_object_id, 2);
+ EXPECT_EQ(ev.info.self.transform.game_object_id, 2);
};
EXPECT_FALSE(collision_happend);
collision_sys.update();
@@ -127,14 +128,14 @@ TEST_F(CollisionTest, collision_box_box_dynamic_both_no_velocity) {
bool collision_happend = false;
script_object1_ref->test_fn = [&collision_happend](const CollisionEvent & ev) {
collision_happend = true;
- EXPECT_EQ(ev.info.this_collider.game_object_id, 1);
+ EXPECT_EQ(ev.info.self.transform.game_object_id, 1);
EXPECT_EQ(ev.info.resolution.x, 10);
EXPECT_EQ(ev.info.resolution.y, 10);
EXPECT_EQ(ev.info.resolution_direction, crepe::CollisionSystem::Direction::BOTH);
};
script_object2_ref->test_fn = [&collision_happend](const CollisionEvent & ev) {
collision_happend = true;
- EXPECT_EQ(ev.info.this_collider.game_object_id, 2);
+ EXPECT_EQ(ev.info.self.transform.game_object_id, 2);
EXPECT_EQ(ev.info.resolution.x, -10);
EXPECT_EQ(ev.info.resolution.y, -10);
EXPECT_EQ(ev.info.resolution_direction, crepe::CollisionSystem::Direction::BOTH);
@@ -150,7 +151,7 @@ TEST_F(CollisionTest, collision_box_box_dynamic_x_direction_no_velocity) {
bool collision_happend = false;
script_object1_ref->test_fn = [&collision_happend](const CollisionEvent & ev) {
collision_happend = true;
- EXPECT_EQ(ev.info.this_collider.game_object_id, 1);
+ EXPECT_EQ(ev.info.self.transform.game_object_id, 1);
EXPECT_EQ(ev.info.resolution.x, -5);
EXPECT_EQ(ev.info.resolution.y, 0);
EXPECT_EQ(ev.info.resolution_direction,
@@ -158,7 +159,7 @@ TEST_F(CollisionTest, collision_box_box_dynamic_x_direction_no_velocity) {
};
script_object2_ref->test_fn = [&collision_happend](const CollisionEvent & ev) {
collision_happend = true;
- EXPECT_EQ(ev.info.this_collider.game_object_id, 2);
+ EXPECT_EQ(ev.info.self.transform.game_object_id, 2);
EXPECT_EQ(ev.info.resolution.x, 5);
EXPECT_EQ(ev.info.resolution.y, 0);
EXPECT_EQ(ev.info.resolution_direction,
@@ -175,7 +176,7 @@ TEST_F(CollisionTest, collision_box_box_dynamic_y_direction_no_velocity) {
bool collision_happend = false;
script_object1_ref->test_fn = [&collision_happend](const CollisionEvent & ev) {
collision_happend = true;
- EXPECT_EQ(ev.info.this_collider.game_object_id, 1);
+ EXPECT_EQ(ev.info.self.transform.game_object_id, 1);
EXPECT_EQ(ev.info.resolution.x, 0);
EXPECT_EQ(ev.info.resolution.y, -5);
EXPECT_EQ(ev.info.resolution_direction,
@@ -183,7 +184,7 @@ TEST_F(CollisionTest, collision_box_box_dynamic_y_direction_no_velocity) {
};
script_object2_ref->test_fn = [&collision_happend](const CollisionEvent & ev) {
collision_happend = true;
- EXPECT_EQ(ev.info.this_collider.game_object_id, 2);
+ EXPECT_EQ(ev.info.self.transform.game_object_id, 2);
EXPECT_EQ(ev.info.resolution.x, 0);
EXPECT_EQ(ev.info.resolution.y, 5);
EXPECT_EQ(ev.info.resolution_direction,
@@ -200,14 +201,14 @@ TEST_F(CollisionTest, collision_box_box_dynamic_both) {
bool collision_happend = false;
script_object1_ref->test_fn = [&collision_happend](const CollisionEvent & ev) {
collision_happend = true;
- EXPECT_EQ(ev.info.this_collider.game_object_id, 1);
+ EXPECT_EQ(ev.info.self.transform.game_object_id, 1);
EXPECT_EQ(ev.info.resolution.x, 10);
EXPECT_EQ(ev.info.resolution.y, 10);
EXPECT_EQ(ev.info.resolution_direction, crepe::CollisionSystem::Direction::BOTH);
};
script_object2_ref->test_fn = [&collision_happend](const CollisionEvent & ev) {
collision_happend = true;
- EXPECT_EQ(ev.info.this_collider.game_object_id, 2);
+ EXPECT_EQ(ev.info.self.transform.game_object_id, 2);
EXPECT_EQ(ev.info.resolution.x, -10);
EXPECT_EQ(ev.info.resolution.y, -10);
EXPECT_EQ(ev.info.resolution_direction, crepe::CollisionSystem::Direction::BOTH);
@@ -227,7 +228,7 @@ TEST_F(CollisionTest, collision_box_box_dynamic_x_direction) {
bool collision_happend = false;
script_object1_ref->test_fn = [&collision_happend](const CollisionEvent & ev) {
collision_happend = true;
- EXPECT_EQ(ev.info.this_collider.game_object_id, 1);
+ EXPECT_EQ(ev.info.self.transform.game_object_id, 1);
EXPECT_EQ(ev.info.resolution.x, -5);
EXPECT_EQ(ev.info.resolution.y, 5);
EXPECT_EQ(ev.info.resolution_direction,
@@ -235,7 +236,7 @@ TEST_F(CollisionTest, collision_box_box_dynamic_x_direction) {
};
script_object2_ref->test_fn = [&collision_happend](const CollisionEvent & ev) {
collision_happend = true;
- EXPECT_EQ(ev.info.this_collider.game_object_id, 2);
+ EXPECT_EQ(ev.info.self.transform.game_object_id, 2);
EXPECT_EQ(ev.info.resolution.x, 5);
EXPECT_EQ(ev.info.resolution.y, -5);
EXPECT_EQ(ev.info.resolution_direction,
@@ -256,7 +257,7 @@ TEST_F(CollisionTest, collision_box_box_dynamic_y_direction) {
bool collision_happend = false;
script_object1_ref->test_fn = [&collision_happend](const CollisionEvent & ev) {
collision_happend = true;
- EXPECT_EQ(ev.info.this_collider.game_object_id, 1);
+ EXPECT_EQ(ev.info.self.transform.game_object_id, 1);
EXPECT_EQ(ev.info.resolution.x, 5);
EXPECT_EQ(ev.info.resolution.y, -5);
EXPECT_EQ(ev.info.resolution_direction,
@@ -264,7 +265,7 @@ TEST_F(CollisionTest, collision_box_box_dynamic_y_direction) {
};
script_object2_ref->test_fn = [&collision_happend](const CollisionEvent & ev) {
collision_happend = true;
- EXPECT_EQ(ev.info.this_collider.game_object_id, 2);
+ EXPECT_EQ(ev.info.self.transform.game_object_id, 2);
EXPECT_EQ(ev.info.resolution.x, -5);
EXPECT_EQ(ev.info.resolution.y, 5);
EXPECT_EQ(ev.info.resolution_direction,
@@ -285,7 +286,7 @@ TEST_F(CollisionTest, collision_box_box_static_both) {
bool collision_happend = false;
script_object1_ref->test_fn = [&collision_happend](const CollisionEvent & ev) {
collision_happend = true;
- EXPECT_EQ(ev.info.this_collider.game_object_id, 1);
+ EXPECT_EQ(ev.info.self.transform.game_object_id, 1);
EXPECT_EQ(ev.info.resolution.x, 10);
EXPECT_EQ(ev.info.resolution.y, 10);
EXPECT_EQ(ev.info.resolution_direction, crepe::CollisionSystem::Direction::BOTH);
@@ -305,7 +306,7 @@ TEST_F(CollisionTest, collision_box_box_static_x_direction) {
bool collision_happend = false;
script_object1_ref->test_fn = [&collision_happend](const CollisionEvent & ev) {
collision_happend = true;
- EXPECT_EQ(ev.info.this_collider.game_object_id, 1);
+ EXPECT_EQ(ev.info.self.transform.game_object_id, 1);
EXPECT_EQ(ev.info.resolution.x, -5);
EXPECT_EQ(ev.info.resolution.y, 5);
EXPECT_EQ(ev.info.resolution_direction,
@@ -330,7 +331,7 @@ TEST_F(CollisionTest, collision_box_box_static_y_direction) {
bool collision_happend = false;
script_object1_ref->test_fn = [&collision_happend](const CollisionEvent & ev) {
collision_happend = true;
- EXPECT_EQ(ev.info.this_collider.game_object_id, 1);
+ EXPECT_EQ(ev.info.self.transform.game_object_id, 1);
EXPECT_EQ(ev.info.resolution.x, 5);
EXPECT_EQ(ev.info.resolution.y, -5);
EXPECT_EQ(ev.info.resolution_direction,
@@ -350,37 +351,3 @@ TEST_F(CollisionTest, collision_box_box_static_y_direction) {
collision_sys.update();
EXPECT_TRUE(collision_happend);
}
-
-TEST_F(CollisionTest, collision_box_box_static_multiple) { //todo check visually
- bool collision_happend = false;
- float offset_value = 0;
- float resolution = 0;
- script_object1_ref->test_fn = [&](const CollisionEvent & ev) {
- collision_happend = true;
- EXPECT_EQ(ev.info.this_collider.game_object_id, 1);
- EXPECT_EQ(ev.info.this_collider.offset.x, offset_value);
- EXPECT_EQ(ev.info.resolution.x, resolution);
- };
- script_object2_ref->test_fn = [&](const CollisionEvent & ev) {
- // is static should not be called
- //FAIL();
- };
- EXPECT_FALSE(collision_happend);
- Transform & tf = this->mgr.get_components_by_id<Transform>(1).front().get();
- tf.position = {45, 30};
- Rigidbody & rg1 = this->mgr.get_components_by_id<Rigidbody>(1).front().get();
- rg1.data.linear_velocity = {10, 10};
- Rigidbody & rg2 = this->mgr.get_components_by_id<Rigidbody>(2).front().get();
- rg2.data.body_type = crepe::Rigidbody::BodyType::STATIC;
- BoxCollider & bxc = this->mgr.get_components_by_id<BoxCollider>(1).front().get();
- bxc.offset = {5, 0};
- this->game_object1.add_component<BoxCollider>(vec2{-5, 0}, vec2{10, 10});
- offset_value = 5;
- resolution = 10;
- collision_sys.update();
- offset_value = -5;
- resolution = 10;
- tf.position = {55, 30};
- collision_sys.update();
- EXPECT_TRUE(collision_happend);
-}