From 1444d6b3b0f0ffb5e23f6c28ada70c21852879c2 Mon Sep 17 00:00:00 2001 From: BFoster-BF Date: Sun, 20 Sep 2026 08:00:25 +0100 Subject: [PATCH 1/7] Doors: Add property to flip horizontally #2836 The door sprite can now be flipped horizontally with the use of the "flip_horizontal" Boolean. This affects only the visuals, not the collision shape as requested. Resolves https://github.com/endlessm/threadbare/issues/2836 --- scenes/game_elements/props/door/components/door.gd | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/scenes/game_elements/props/door/components/door.gd b/scenes/game_elements/props/door/components/door.gd index bfd74320f..5b4fd647c 100644 --- a/scenes/game_elements/props/door/components/door.gd +++ b/scenes/game_elements/props/door/components/door.gd @@ -8,6 +8,11 @@ extends Toggleable set(new_val): opened = new_val update_opened_state() + +@export var flip_horizontal: bool = false: + set(new_val): + flip_horizontal = new_val + update_door_flip() @onready var door_open_sound: AudioStreamPlayer2D = %DoorOpenSound @onready var victory_sound: AudioStreamPlayer = %VictorySound @@ -35,3 +40,12 @@ func update_opened_state() -> void: %ColliderWhenClosed.set_collision_layer_value(Enums.CollisionLayers.WALLS, not opened) %ColliderWhenClosed.set_collision_mask_value(Enums.CollisionLayers.PLAYERS, not opened) + + +func update_door_flip() -> void: + %DoorOpened.flip_h = flip_horizontal + + if flip_horizontal: + %DoorOpened.position.x = -abs(%DoorOpened.position.x) + else: + $DoorOpened.position.x = abs(%DoorOpened.position.x) From c499ce6223f1ca508753ad0a97292f9608fe5155 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20Qui=C3=B1ones?= Date: Tue, 22 Sep 2026 10:38:59 -0300 Subject: [PATCH 2/7] Update scenes/game_elements/props/door/components/door.gd --- scenes/game_elements/props/door/components/door.gd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scenes/game_elements/props/door/components/door.gd b/scenes/game_elements/props/door/components/door.gd index 5b4fd647c..b29751245 100644 --- a/scenes/game_elements/props/door/components/door.gd +++ b/scenes/game_elements/props/door/components/door.gd @@ -48,4 +48,4 @@ func update_door_flip() -> void: if flip_horizontal: %DoorOpened.position.x = -abs(%DoorOpened.position.x) else: - $DoorOpened.position.x = abs(%DoorOpened.position.x) + %DoorOpened.position.x = abs(%DoorOpened.position.x) From ade75319e938549ffa59f084c90e482ac32f7dce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20Qui=C3=B1ones?= Date: Tue, 22 Sep 2026 10:46:59 -0300 Subject: [PATCH 3/7] Update scenes/game_elements/props/door/components/door.gd --- scenes/game_elements/props/door/components/door.gd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scenes/game_elements/props/door/components/door.gd b/scenes/game_elements/props/door/components/door.gd index b29751245..43e06104a 100644 --- a/scenes/game_elements/props/door/components/door.gd +++ b/scenes/game_elements/props/door/components/door.gd @@ -40,7 +40,7 @@ func update_opened_state() -> void: %ColliderWhenClosed.set_collision_layer_value(Enums.CollisionLayers.WALLS, not opened) %ColliderWhenClosed.set_collision_mask_value(Enums.CollisionLayers.PLAYERS, not opened) - + func update_door_flip() -> void: %DoorOpened.flip_h = flip_horizontal From 3718c9a60dcd92e386e317a2d0d474a3b0a406a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20Qui=C3=B1ones?= Date: Tue, 22 Sep 2026 10:47:52 -0300 Subject: [PATCH 4/7] Update scenes/game_elements/props/door/components/door.gd --- scenes/game_elements/props/door/components/door.gd | 1 - 1 file changed, 1 deletion(-) diff --git a/scenes/game_elements/props/door/components/door.gd b/scenes/game_elements/props/door/components/door.gd index 43e06104a..cf4193984 100644 --- a/scenes/game_elements/props/door/components/door.gd +++ b/scenes/game_elements/props/door/components/door.gd @@ -44,7 +44,6 @@ func update_opened_state() -> void: func update_door_flip() -> void: %DoorOpened.flip_h = flip_horizontal - if flip_horizontal: %DoorOpened.position.x = -abs(%DoorOpened.position.x) else: From 474c90c21e646a4df16ad45c92b3b889659d2f64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20Qui=C3=B1ones?= Date: Tue, 22 Sep 2026 10:51:07 -0300 Subject: [PATCH 5/7] Update scenes/game_elements/props/door/components/door.gd --- scenes/game_elements/props/door/components/door.gd | 1 - 1 file changed, 1 deletion(-) diff --git a/scenes/game_elements/props/door/components/door.gd b/scenes/game_elements/props/door/components/door.gd index cf4193984..0716b2d71 100644 --- a/scenes/game_elements/props/door/components/door.gd +++ b/scenes/game_elements/props/door/components/door.gd @@ -8,7 +8,6 @@ extends Toggleable set(new_val): opened = new_val update_opened_state() - @export var flip_horizontal: bool = false: set(new_val): flip_horizontal = new_val From c33bba1fa7072a0e7069e6eb4906853f058a9a41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20Qui=C3=B1ones?= Date: Tue, 22 Sep 2026 10:51:17 -0300 Subject: [PATCH 6/7] Update scenes/game_elements/props/door/components/door.gd --- scenes/game_elements/props/door/components/door.gd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scenes/game_elements/props/door/components/door.gd b/scenes/game_elements/props/door/components/door.gd index 0716b2d71..b994d488a 100644 --- a/scenes/game_elements/props/door/components/door.gd +++ b/scenes/game_elements/props/door/components/door.gd @@ -42,7 +42,7 @@ func update_opened_state() -> void: func update_door_flip() -> void: - %DoorOpened.flip_h = flip_horizontal + %DoorOpened.flip_h = flip_horizontal if flip_horizontal: %DoorOpened.position.x = -abs(%DoorOpened.position.x) else: From ad0a76f8b82b3448d18ba24d1fcbddbce75aef90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20Qui=C3=B1ones?= Date: Tue, 22 Sep 2026 10:51:53 -0300 Subject: [PATCH 7/7] Apply suggestion from @manuq --- scenes/game_elements/props/door/components/door.gd | 1 + 1 file changed, 1 insertion(+) diff --git a/scenes/game_elements/props/door/components/door.gd b/scenes/game_elements/props/door/components/door.gd index b994d488a..20af8aebe 100644 --- a/scenes/game_elements/props/door/components/door.gd +++ b/scenes/game_elements/props/door/components/door.gd @@ -8,6 +8,7 @@ extends Toggleable set(new_val): opened = new_val update_opened_state() + @export var flip_horizontal: bool = false: set(new_val): flip_horizontal = new_val