feat: Introduce tekton_walking 3D model, implement a CameraContextManager for dynamic camera positioning, and add a ScreenShakeManager script.

This commit is contained in:
Yogi Wiguna
2026-02-11 13:24:24 +08:00
parent 903619a396
commit 382899d3e1
13 changed files with 274 additions and 51 deletions
+14 -2
View File
@@ -9,6 +9,7 @@ var ui_manager
var goals_cycle_manager
var screen_shake_manager
var touch_controls
var camera_context_manager
# Minimal local state
var _connection_check_timer: float = 0.0
@@ -76,9 +77,8 @@ func _init_managers():
screen_shake_manager = load("res://scripts/managers/screen_shake.gd").new()
screen_shake_manager.name = "ScreenShakeManager"
add_child(screen_shake_manager)
screen_shake_manager.initialize($Camera3D)
screen_shake_manager.initialize($Camera3D200)
# Touch controls for mobile
# Touch controls for mobile
touch_controls = get_node_or_null("TouchControls")
if not touch_controls:
@@ -89,6 +89,12 @@ func _init_managers():
touch_controls.initialize(self)
# NEW: Camera Context Manager for dynamic camera position
camera_context_manager = load("res://scripts/managers/camera_context_manager.gd").new()
camera_context_manager.name = "CameraContextManager"
add_child(camera_context_manager)
camera_context_manager.initialize($Camera3D200, screen_shake_manager)
# Connect signals for UI updates
goals_cycle_manager.timer_updated.connect(_on_timer_updated)
goals_cycle_manager.score_updated.connect(_on_score_updated)
@@ -324,6 +330,8 @@ func _setup_host_game():
ui_manager.set_local_player(player_character)
if touch_controls:
touch_controls.set_player(player_character)
if camera_context_manager:
camera_context_manager.set_player(player_character)
# Set host name
player_character.display_name = LobbyManager.local_player_name
@@ -436,6 +444,8 @@ func _setup_client_game():
ui_manager.set_local_player(player_character)
if touch_controls:
touch_controls.set_player(player_character)
if camera_context_manager:
camera_context_manager.set_player(player_character)
ui_manager.update_button_states()
print("Client: Configured local player ", my_id)
@@ -654,6 +664,8 @@ func add_player_character(peer_id: int, is_bot: bool = false):
ui_manager.set_local_player(player_character)
if touch_controls:
touch_controls.set_player(player_character)
if camera_context_manager:
camera_context_manager.set_player(player_character)
ui_manager.update_button_states()
ui_manager.update_playerboard_ui()