Improved reconnect flow
This commit is contained in:
@ -7,7 +7,7 @@ signal main_player_spawned(player: Player)
|
||||
func _ready():
|
||||
assert(player_scene)
|
||||
|
||||
func handle_packet(data: PackedByteArray, _peer: PacketPeer):
|
||||
func handle_packet(data: PackedByteArray):
|
||||
var buffer := StreamPeerBuffer.new()
|
||||
buffer.data_array = data
|
||||
|
||||
@ -24,19 +24,29 @@ func handle_packet(data: PackedByteArray, _peer: PacketPeer):
|
||||
var player := spawn_player(player_id)
|
||||
player.position = server_position
|
||||
player.set_character_name(player_name)
|
||||
Global.players.add(player)
|
||||
|
||||
func spawn_player(id: String) -> Player:
|
||||
var player = player_scene.instantiate()
|
||||
var player: Player
|
||||
|
||||
if Global.players.has(id):
|
||||
player = Global.players.get_player(id)
|
||||
|
||||
if id == Global.account_id:
|
||||
Global.player = player
|
||||
|
||||
return player
|
||||
|
||||
player = player_scene.instantiate()
|
||||
player.id = id
|
||||
|
||||
if id == Global.account_id:
|
||||
Global.player = player
|
||||
player.controller = PlayerController.new()
|
||||
Global.player = player
|
||||
main_player_spawned.emit(player)
|
||||
else:
|
||||
player.controller = ProxyController.new()
|
||||
|
||||
player.controller.character = player
|
||||
player.add_child(player.controller)
|
||||
%Players.add(player)
|
||||
return player
|
||||
|
Reference in New Issue
Block a user