Swarm/Networking/Networking.gd
2024-03-24 03:45:43 +01:00

74 lines
1.8 KiB
GDScript

extends Node
@onready var ws_client = $WSClient
func create_enet_server(port: int) -> void:
var peer: ENetMultiplayerPeer = ENetMultiplayerPeer.new()
peer.create_server(port, 1)
multiplayer.multiplayer_peer = peer
func close_enet_server() -> void:
if multiplayer.multiplayer_peer is ENetMultiplayerPeer:
multiplayer.multiplayer_peer.close()
func disconnect_all() -> void:
close_enet_server()
close_enet_client()
stop_webrtc()
ws_client.stop()
offline_mode()
func stop_webrtc() -> void:
if multiplayer.multiplayer_peer is WebRTCMultiplayerPeer:
multiplayer.multiplayer_peer.close()
ws_client.stop()
offline_mode()
func seal_webrtc() -> void:
ws_client.seal_lobby()
func start_webrtc_lobby() -> void:
if not multiplayer.multiplayer_peer is WebRTCMultiplayerPeer:
disconnect_all()
ws_client.rtc_mp = WebRTCMultiplayerPeer.new()
if GameSettings.LOBBY_ENDPOINT.is_empty():
ws_client.start(GameSettings.DEFAULT_LOBBY_ENDPOINT)
else:
ws_client.start(GameSettings.LOBBY_ENDPOINT)
func join_webrtc_lobby(lobby: String) -> void:
if not multiplayer.multiplayer_peer is WebRTCMultiplayerPeer:
disconnect_all()
ws_client.rtc_mp = WebRTCMultiplayerPeer.new()
if GameSettings.LOBBY_ENDPOINT.is_empty():
ws_client.start(GameSettings.DEFAULT_LOBBY_ENDPOINT, lobby)
else:
ws_client.start(GameSettings.LOBBY_ENDPOINT, lobby)
func connect_with_enet(ip: String, port: int) -> void:
var peer: ENetMultiplayerPeer = ENetMultiplayerPeer.new()
peer.create_client(ip, port)
multiplayer.multiplayer_peer = peer
func close_enet_client() -> void:
if multiplayer.multiplayer_peer is ENetMultiplayerPeer:
multiplayer.multiplayer_peer.close()
func lan_mode() -> void:
pass
func online_mode() -> void:
pass
func offline_mode() -> void:
GameData.peer_id = 1
multiplayer.multiplayer_peer = OfflineMultiplayerPeer.new()
pass