/ NetworkManager.gd
NetworkManager.gd
 1  extends Node
 2  
 3  const PORT = 7777
 4  const MAX_PLAYERS = 10
 5  
 6  @onready var connection_listener = $ConnectionListener
 7  @onready var event_bus = get_node("/root/MainGame/EventBus")
 8  
 9  func _ready():
10  	multiplayer.peer_connected.connect(_on_peer_connected)
11  	multiplayer.peer_disconnected.connect(_on_peer_disconnected)
12  
13  func _on_peer_connected(id: int):
14  	if multiplayer.is_server():
15  		event_bus.client_joined.emit(id)
16  		tLogger.info("Client joined: " + str(id))
17  
18  func _on_peer_disconnected(id):
19  	if multiplayer.is_server():
20  		event_bus.emit_client_disconnected(id)
21  		tLogger.info("Client disconnected: " + str(id))
22  
23  func host_game():
24  	var peer = ENetMultiplayerPeer.new()
25  	var error = peer.create_server(PORT, MAX_PLAYERS)
26  	if error == OK:
27  		multiplayer.multiplayer_peer = peer
28  		tLogger.info("Server started on port " + str(PORT))
29  
30  func join_game(address: String):
31  	var peer = ENetMultiplayerPeer.new()
32  	var error = peer.create_client(address, PORT)
33  	if error == OK:
34  		multiplayer.multiplayer_peer = peer
35  		tLogger.info("Connecting to " + str(address))