2026-08-07 02:50:54 -05:00
|
|
|
class_name ClientNetworking extends Node
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var peer: ENetMultiplayerPeer
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func start_client(address: String = "127.0.0.1", port: int = 8080) -> void:
|
|
|
|
|
if peer: return
|
|
|
|
|
|
|
|
|
|
push_warning("Client Starting... Address: ", address, " Port: ", port)
|
|
|
|
|
|
|
|
|
|
peer = ENetMultiplayerPeer.new()
|
|
|
|
|
peer.create_client(address, port)
|
|
|
|
|
|
|
|
|
|
multiplayer.multiplayer_peer = peer
|
|
|
|
|
multiplayer.connected_to_server.connect(client_connected_to_server)
|
|
|
|
|
multiplayer.server_disconnected.connect(client_disconnected_from_server)
|
|
|
|
|
multiplayer.connection_failed.connect(client_connection_failed_to_server)
|
|
|
|
|
|
|
|
|
|
|
2026-08-09 18:41:18 -05:00
|
|
|
func _wait_for_connection() -> void:
|
|
|
|
|
while not peer:
|
|
|
|
|
await get_tree().process_frame
|
2026-08-07 02:50:54 -05:00
|
|
|
|
2026-08-09 18:41:18 -05:00
|
|
|
while peer.get_connection_status() != 2:
|
|
|
|
|
await get_tree().process_frame
|
2026-08-07 02:50:54 -05:00
|
|
|
|
2026-08-09 18:41:18 -05:00
|
|
|
func _wait_close_connection():
|
|
|
|
|
close_connection()
|
|
|
|
|
|
|
|
|
|
while peer:
|
|
|
|
|
await get_tree().process_frame
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func client_connected_to_server() -> void:
|
|
|
|
|
assert(false, "This method needs to be overridden...")
|
2026-08-07 02:50:54 -05:00
|
|
|
|
|
|
|
|
func client_disconnected_from_server() -> void:
|
2026-08-09 18:41:18 -05:00
|
|
|
assert(false, "This method needs to be overridden...")
|
|
|
|
|
|
2026-08-07 02:50:54 -05:00
|
|
|
|
|
|
|
|
func client_connection_failed_to_server() -> void:
|
2026-08-09 18:41:18 -05:00
|
|
|
assert(false, "This method needs to be overridden...")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func close_connection() -> void:
|
|
|
|
|
if not peer: return
|
|
|
|
|
|
|
|
|
|
push_warning("Disconnected from, server...")
|
2026-08-07 02:50:54 -05:00
|
|
|
|
|
|
|
|
unset_client()
|
|
|
|
|
|
2026-08-09 18:41:18 -05:00
|
|
|
|
2026-08-07 02:50:54 -05:00
|
|
|
func unset_client() -> void:
|
|
|
|
|
if not peer: return
|
|
|
|
|
|
|
|
|
|
multiplayer.connected_to_server.disconnect(client_connected_to_server)
|
|
|
|
|
multiplayer.connection_failed.disconnect(client_connection_failed_to_server)
|
|
|
|
|
multiplayer.server_disconnected.disconnect(client_disconnected_from_server)
|
|
|
|
|
|
|
|
|
|
peer.close()
|
|
|
|
|
peer = null
|