Improved reconnect flow
This commit is contained in:
@ -8,7 +8,7 @@ func send_message(message: String):
|
||||
buffer.put_data(message.to_utf8_buffer())
|
||||
%Client.send(buffer.data_array)
|
||||
|
||||
func handle_packet(data: PackedByteArray, _peer: PacketPeer):
|
||||
func handle_packet(data: PackedByteArray):
|
||||
var buffer := StreamPeerBuffer.new()
|
||||
buffer.data_array = data
|
||||
|
||||
|
@ -21,7 +21,7 @@ func _enter_tree():
|
||||
func _process(_delta):
|
||||
while socket.get_available_packet_count() > 0:
|
||||
var packet := socket.get_packet()
|
||||
handle_packet(packet, socket)
|
||||
handle_packet(packet)
|
||||
|
||||
func update_statistics():
|
||||
download_changed.emit(download)
|
||||
@ -31,4 +31,4 @@ func update_statistics():
|
||||
|
||||
func send(data: PackedByteArray):
|
||||
socket.put_packet(data)
|
||||
upload += data.size()
|
||||
upload += data.size()
|
||||
|
@ -3,7 +3,7 @@ extends PacketHandler
|
||||
signal success
|
||||
signal failure
|
||||
|
||||
func handle_packet(data: PackedByteArray, _peer: PacketPeer):
|
||||
func handle_packet(data: PackedByteArray):
|
||||
var buffer := StreamPeerBuffer.new()
|
||||
buffer.data_array = data
|
||||
|
||||
@ -15,10 +15,6 @@ func handle_packet(data: PackedByteArray, _peer: PacketPeer):
|
||||
|
||||
Global.account_id = buffer.get_string()
|
||||
Global.auth_token = buffer.get_string()
|
||||
|
||||
print("[%s] Login succeeded." % Global.username)
|
||||
print("[%s] ID: %s" % [Global.username, Global.account_id])
|
||||
print("[%s] Auth token: %s" % [Global.username, Global.auth_token])
|
||||
|
||||
success.emit()
|
||||
|
||||
|
12
client/network/Logout.gd
Normal file
12
client/network/Logout.gd
Normal file
@ -0,0 +1,12 @@
|
||||
extends PacketHandler
|
||||
|
||||
signal success
|
||||
|
||||
func handle_packet(_data: PackedByteArray):
|
||||
logout()
|
||||
success.emit()
|
||||
|
||||
func logout():
|
||||
Global.auth_token = ""
|
||||
Global.account_id = ""
|
||||
Global.player = null
|
@ -10,7 +10,7 @@ var history: Array[float] = []
|
||||
func _init():
|
||||
history.resize(HISTORY_SIZE)
|
||||
|
||||
func handle_packet(data: PackedByteArray, _peer: PacketPeer):
|
||||
func handle_packet(data: PackedByteArray):
|
||||
var id := data[0]
|
||||
var ping := get_time() - history[id]
|
||||
changed.emit(ping)
|
||||
|
@ -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
|
||||
|
@ -11,7 +11,7 @@ func on_jump():
|
||||
buffer.put_8(PacketHandler.Packet.PLAYER_JUMP)
|
||||
%Client.send(buffer.data_array)
|
||||
|
||||
func handle_packet(data: PackedByteArray, _peer: PacketPeer):
|
||||
func handle_packet(data: PackedByteArray):
|
||||
var player_id := data.get_string_from_ascii()
|
||||
var player := Global.players.get_player(player_id)
|
||||
player.jump()
|
||||
|
@ -5,7 +5,7 @@ extends PacketHandler
|
||||
var last_sent := Time.get_ticks_msec()
|
||||
var last_sent_position := Vector3.ZERO
|
||||
|
||||
func handle_packet(data: PackedByteArray, _peer: PacketPeer):
|
||||
func handle_packet(data: PackedByteArray):
|
||||
var buffer := StreamPeerBuffer.new()
|
||||
buffer.data_array = data
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
extends PacketHandler
|
||||
|
||||
func handle_packet(data: PackedByteArray, _peer: PacketPeer):
|
||||
func handle_packet(data: PackedByteArray):
|
||||
var player_id := data.get_string_from_ascii()
|
||||
print("[%s] Remove player: %s" % [Global.username, player_id])
|
||||
%Players.remove(player_id)
|
||||
Global.players.remove(player_id)
|
@ -13,7 +13,7 @@ func get_handler(index: int) -> PacketHandler:
|
||||
func set_handler(index: int, node: PacketHandler):
|
||||
handlers[index] = node
|
||||
|
||||
func handle_packet(packet: PackedByteArray, peer: PacketPeer):
|
||||
func handle_packet(packet: PackedByteArray):
|
||||
var type := packet.decode_u8(0)
|
||||
var handler := get_handler(type)
|
||||
|
||||
@ -21,5 +21,5 @@ func handle_packet(packet: PackedByteArray, peer: PacketPeer):
|
||||
push_warning("Unknown packet type %d" % type)
|
||||
return
|
||||
|
||||
handler.handle_packet(packet.slice(1), peer)
|
||||
handler.handle_packet(packet.slice(1))
|
||||
download += packet.size()
|
||||
|
@ -16,5 +16,5 @@ enum Packet {
|
||||
|
||||
@export var packet_type: Packet
|
||||
|
||||
func handle_packet(_data: PackedByteArray, _peer: PacketPeer):
|
||||
func handle_packet(_data: PackedByteArray):
|
||||
pass
|
Reference in New Issue
Block a user