Fix issues with reconnecting to server
parent
c9652ae651
commit
2e2a73e207
|
@ -18,7 +18,7 @@ func _on_ContinueButton_pressed():
|
|||
|
||||
func _on_ExitButton_pressed():
|
||||
get_tree().paused = false
|
||||
if MultiplayerController.connected:
|
||||
if MultiplayerController.is_online():
|
||||
MultiplayerController.quit()
|
||||
get_tree().change_scene("res://menu/main_menu.tscn")
|
||||
get_tree().root.get_child(get_tree().root.get_child_count() - 1).queue_free()
|
||||
|
|
|
@ -9,7 +9,6 @@ var peers_vehicles = {}
|
|||
var current_track: Node = null
|
||||
var current_track_path: String
|
||||
var current_vehicle: String
|
||||
var connected = false
|
||||
|
||||
|
||||
func _ready():
|
||||
|
@ -20,6 +19,13 @@ func _ready():
|
|||
get_tree().connect("connection_failed", self, "_connection_failed")
|
||||
|
||||
|
||||
func is_online():
|
||||
var network_peer = get_tree().get_network_peer()
|
||||
if network_peer == null:
|
||||
return false
|
||||
return network_peer.get_connection_status() == NetworkedMultiplayerPeer.CONNECTION_CONNECTED
|
||||
|
||||
|
||||
func create_server(port, track, vehicle):
|
||||
current_track_path = track
|
||||
current_track = load(track).instance()
|
||||
|
@ -29,7 +35,6 @@ func create_server(port, track, vehicle):
|
|||
peers[1] = true
|
||||
create_player(1, vehicle)
|
||||
get_tree().root.call_deferred("add_child", current_track)
|
||||
connected = true
|
||||
|
||||
|
||||
func create_client(address, port, vehicle):
|
||||
|
@ -56,21 +61,20 @@ func _peer_disconnected(peer_id):
|
|||
|
||||
func _connected_to_server():
|
||||
print("_connected_to_server")
|
||||
connected = true
|
||||
|
||||
|
||||
func _connection_failed():
|
||||
connected = false
|
||||
current_track = null
|
||||
peers_vehicles.clear()
|
||||
get_tree().network_peer = null
|
||||
_server_disconnected()
|
||||
|
||||
|
||||
func _server_disconnected():
|
||||
connected = false
|
||||
current_track = null
|
||||
peers.clear()
|
||||
peers_vehicles.clear()
|
||||
get_tree().network_peer = null
|
||||
get_tree().root.get_child(get_tree().root.get_child_count() - 1).queue_free()
|
||||
get_tree().change_scene("res://menu/main_menu.tscn")
|
||||
|
||||
|
@ -97,8 +101,8 @@ func destroy_player(peer_id):
|
|||
|
||||
func quit():
|
||||
enet_peer.close_connection()
|
||||
connected = false
|
||||
current_track = null
|
||||
get_tree().network_peer = null
|
||||
peers.clear()
|
||||
peers_vehicles.clear()
|
||||
|
||||
|
|
|
@ -21,7 +21,6 @@ func _ready() -> void:
|
|||
|
||||
func spawn_player(player_node: BuggedVehicle, gui: Node) -> void:
|
||||
self.player_node = player_node
|
||||
self.player_node.add_child(player_controller)
|
||||
self.gui = gui
|
||||
if ready:
|
||||
_spawn_in_player()
|
||||
|
|
|
@ -256,8 +256,9 @@ func _physics_process(delta: float):
|
|||
steering = steering_input * lerp(max_steer_angle_rad, speed_steer_angle_rad, steer_speed_factor)
|
||||
emit_signal("steering_updated", steering, steering / max_steer_angle_rad)
|
||||
|
||||
if get_network_master() == get_tree().get_network_unique_id():
|
||||
_synchronize()
|
||||
if MultiplayerController.is_online():
|
||||
if get_network_master() == get_tree().get_network_unique_id():
|
||||
_synchronize()
|
||||
|
||||
|
||||
func _generate_engine_sound(rpm_factor):
|
||||
|
|
Loading…
Reference in New Issue