This repository has been archived on 2023-12-19. You can view files and clone it, but cannot push or open issues or pull requests.
MUR/scripts/networking/client.gd

44 lines
1.4 KiB
GDScript3
Raw Permalink Normal View History

extends Node
signal connection_failed()
signal connection_succeeded()
signal server_disconnected()
func join_game(ip, port:int):
get_tree().connect("connected_to_server", self, "_connected_ok")
get_tree().connect("connection_failed", self, "_connected_fail")
get_tree().connect("server_disconnected", self, "_server_disconnected")
gamestate.connect("game_ended",self,"_game_ended")
var host = NetworkedMultiplayerENet.new()
host.create_client(ip, port)
get_tree().set_network_peer(host)
func _connected_ok():
gamestate.rpc("set_player", get_tree().get_network_unique_id())
emit_signal("connection_succeeded")
func _connected_fail():
get_tree().disconnect("connected_to_server", self, "_connected_ok")
get_tree().disconnect("connection_failed", self, "_connected_fail")
get_tree().disconnect("server_disconnected", self, "_server_disconnected")
get_tree().set_network_peer(null)
emit_signal("connection_failed")
func _server_disconnected():
gamestate.quit_game()
emit_signal("server_disconnected")
func _game_ended():
get_tree().disconnect("connected_to_server", self, "_connected_ok")
get_tree().disconnect("connection_failed", self, "_connected_fail")
get_tree().disconnect("server_disconnected", self, "_server_disconnected")
gamestate.disconnect("game_ended",self,"_game_ended")
get_tree().set_refuse_new_network_connections(false)
get_tree().set_network_peer(null)