feat: add dust2 level builder, player movement controller, and UI menu components
This commit is contained in:
+17
-14
@@ -93,17 +93,16 @@ func _resume() -> void:
|
||||
func _respawn() -> void:
|
||||
_resume() # Unpause
|
||||
|
||||
# Find local player
|
||||
# Find local player using their unique multiplayer ID
|
||||
var local_player: Node3D = null
|
||||
var pid = multiplayer.get_unique_id()
|
||||
|
||||
if get_tree().current_scene.has_node("Players"):
|
||||
for p in get_tree().current_scene.get_node("Players").get_children():
|
||||
if p.has_method("is_multiplayer_authority") and p.is_multiplayer_authority():
|
||||
local_player = p
|
||||
break
|
||||
|
||||
if not local_player:
|
||||
local_player = get_tree().current_scene.get_node_or_null("Player")
|
||||
if get_tree().current_scene:
|
||||
local_player = get_tree().current_scene.get_node_or_null(str(pid))
|
||||
if not local_player:
|
||||
var spawner = get_tree().current_scene.get_node_or_null("PlayerSpawner")
|
||||
if spawner:
|
||||
local_player = spawner.get_node_or_null(str(pid))
|
||||
|
||||
if local_player and local_player.has_method("take_damage"):
|
||||
local_player.take_damage(9999, Vector3.ZERO)
|
||||
@@ -271,10 +270,12 @@ func _build_ui() -> void:
|
||||
user_save.pressed.connect(func():
|
||||
SettingsManager.username = user_input.text
|
||||
SettingsManager._save_settings()
|
||||
if NetworkManager.multiplayer.has_multiplayer_peer() and not NetworkManager.multiplayer.multiplayer_peer is OfflineMultiplayerPeer:
|
||||
NetworkManager.update_username.rpc_id(1, user_input.text)
|
||||
else:
|
||||
NetworkManager.update_username(user_input.text)
|
||||
var nm = get_node_or_null("/root/NetworkManager")
|
||||
if nm:
|
||||
if nm.multiplayer.has_multiplayer_peer() and not nm.multiplayer.multiplayer_peer is OfflineMultiplayerPeer:
|
||||
nm.update_username.rpc_id(1, user_input.text)
|
||||
else:
|
||||
nm.update_username(user_input.text)
|
||||
)
|
||||
user_hbox.add_child(user_save)
|
||||
|
||||
@@ -684,7 +685,9 @@ func _show_return_dialog() -> void:
|
||||
|
||||
func _return_to_main_menu() -> void:
|
||||
_resume() # Reset pause state and cursor mode
|
||||
NetworkManager.disconnect_game()
|
||||
var nm = get_node_or_null("/root/NetworkManager")
|
||||
if nm:
|
||||
nm.disconnect_game()
|
||||
get_tree().change_scene_to_file("res://ui/main_menu/main_menu.tscn")
|
||||
|
||||
func _show_main_menu() -> void:
|
||||
|
||||
Reference in New Issue
Block a user