71 lines
1.8 KiB
GDScript
71 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 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
|