feat: update chat

This commit is contained in:
2026-04-15 07:31:49 +08:00
parent a592eb1de0
commit 01661a56ba
9 changed files with 430 additions and 115 deletions
+2
View File
@@ -380,6 +380,8 @@ func logout() -> void:
func _connect_socket() -> bool:
if NakamaManager.socket and NakamaManager.socket.is_connected_to_host():
if not multiplayer.has_multiplayer_peer() and NakamaManager.bridge:
multiplayer.set_multiplayer_peer(NakamaManager.bridge.multiplayer_peer)
return true
NakamaManager.socket = Nakama.create_socket_from(NakamaManager.client)
+2
View File
@@ -43,6 +43,8 @@ func initialize(p_player: Node3D, p_gridmap: Node):
set_process(true)
func _process(delta):
if not multiplayer.has_multiplayer_peer():
return
if not is_instance_valid(player) or not player.is_multiplayer_authority():
return
@@ -623,6 +623,8 @@ func _update_freeze_zones(delta: float):
func _check_for_icy_floor():
# Every player checks if they are standing on an icy floor (item 15 on layer 2)
# This ensures slow-mo works even if zones were cast by another player.
if not multiplayer.has_multiplayer_peer():
return
if not player.is_multiplayer_authority():
return
+2
View File
@@ -88,6 +88,8 @@ func _process(_delta):
func connect_to_nakama_async(email: String = "", password: String = "") -> bool:
if is_connected_to_nakama():
print("Already connected to Nakama.")
if not multiplayer.has_multiplayer_peer() and bridge:
multiplayer.set_multiplayer_peer(bridge.multiplayer_peer)
emit_signal("connected_to_nakama")
return true
+1
View File
@@ -35,6 +35,7 @@ func _start_timer():
timer.start()
func _on_timer_timeout():
if not multiplayer.has_multiplayer_peer(): return
if not is_multiplayer_authority(): return
if not tekton or not enhanced_gridmap: return
+5 -1
View File
@@ -202,7 +202,7 @@ func _process(delta):
var mesh_cache: Array[MeshInstance3D] = []
var original_scales: Array[Vector3] = []
var prompt_container: Node3D
var _prompt_key_label: Label = null # cached ref for live refresh
var _prompt_key_label: Label3D = null # cached ref for live refresh
@onready var SettingsManager = get_node_or_null("/root/SettingsManager")
func _update_prompt_label():
@@ -212,6 +212,10 @@ func _update_prompt_label():
prompt_container.visible = false
return
if not multiplayer.has_multiplayer_peer():
prompt_container.visible = false
return
var authority_player = null
var players = get_tree().get_nodes_in_group("Players")
for p in players: