From c95ea0f442632b60ae013d9517c16e111f791ecb Mon Sep 17 00:00:00 2001
From: fheinrich <fheinrich@techfak.de>
Date: Fri, 15 Mar 2024 17:05:49 +0100
Subject: [PATCH] Cleaned and commented player movement

---
 .../test_layouts => layouts}/large.layout     |  0
 .../test_layouts => layouts}/large_t.layout   |  0
 cooperative_cuisine/movement.py               | 28 ++++++-------------
 3 files changed, 9 insertions(+), 19 deletions(-)
 rename cooperative_cuisine/configs/{layouts_archive/test_layouts => layouts}/large.layout (100%)
 rename cooperative_cuisine/configs/{layouts_archive/test_layouts => layouts}/large_t.layout (100%)

diff --git a/cooperative_cuisine/configs/layouts_archive/test_layouts/large.layout b/cooperative_cuisine/configs/layouts/large.layout
similarity index 100%
rename from cooperative_cuisine/configs/layouts_archive/test_layouts/large.layout
rename to cooperative_cuisine/configs/layouts/large.layout
diff --git a/cooperative_cuisine/configs/layouts_archive/test_layouts/large_t.layout b/cooperative_cuisine/configs/layouts/large_t.layout
similarity index 100%
rename from cooperative_cuisine/configs/layouts_archive/test_layouts/large_t.layout
rename to cooperative_cuisine/configs/layouts/large_t.layout
diff --git a/cooperative_cuisine/movement.py b/cooperative_cuisine/movement.py
index 6ffaa6dc..2523e50f 100644
--- a/cooperative_cuisine/movement.py
+++ b/cooperative_cuisine/movement.py
@@ -193,47 +193,37 @@ class Movement:
             updated_movement * (self.player_movement_speed * d_time)
         )
 
+        # check if players collided with counters through movement or through being pushed
         (
             collided,
             relevant_axes,
             nearest_counter_to_player,
         ) = self.get_counter_collisions(new_targeted_positions)
-        new_targeted_positions[collided] = player_positions[collided]
 
+        # If collided, check if the players could still move along the axis, starting with x
+        # This leads to players beeing able to slide along counters, which feels alot nicer.
         projected_x = updated_movement.copy()
         projected_x[collided, 1] = 0
         new_targeted_positions[collided] = player_positions[collided] + (
             projected_x[collided] * (self.player_movement_speed * d_time)
         )
-
+        # checking collisions again
         (
             collided,
             relevant_axes,
             nearest_counter_to_player,
         ) = self.get_counter_collisions(new_targeted_positions)
         new_targeted_positions[collided] = player_positions[collided]
+        # and now y axis collisions
         projected_y = updated_movement.copy()
         projected_y[collided, 0] = 0
         new_targeted_positions[collided] = player_positions[collided] + (
             projected_y[collided] * (self.player_movement_speed * d_time)
         )
         new_positions = new_targeted_positions
-        # # Check if sliding against counters is possible
-        # for idx, player in enumerate(player_positions):
-        #     axis = relevant_axes[idx]
-        #     if collided[idx]:
-        #         # collide with counter left or top
-        #         if nearest_counter_to_player[idx][axis] > 0:
-        #             updated_movement[idx, axis] = np.max(
-        #                 [updated_movement[idx, axis], 0]
-        #             )
-        #         # collide with counter right or bottom
-        #         if nearest_counter_to_player[idx][axis] < 0:
-        #             updated_movement[idx, axis] = np.min(
-        #                 [updated_movement[idx, axis], 0]
-        #             )
-
-        # Check collisions with counters again, now absolute with no sliding possible
+
+        # Check collisions with counters a final time, now absolute with no sliding possible.
+        # Players should never be able to enter counters this way.
         (
             collided,
             relevant_axes,
@@ -241,7 +231,7 @@ class Movement:
         ) = self.get_counter_collisions(new_positions)
         new_positions[collided] = player_positions[collided]
 
-        # Collisions player world borders
+        # Collisions of players with world borders
         new_positions = np.clip(
             new_positions,
             self.world_borders_lower + self.player_radius,
-- 
GitLab