WIP: Add a dedicated server option

This commit is contained in:
2025-01-29 23:53:15 +01:00
parent 67e81abad9
commit c62b2d7a09
35 changed files with 651 additions and 86 deletions

View File

@ -16,11 +16,23 @@ func _on_connected_ok():
@rpc("any_peer", "reliable", "call_remote")
func register_player(id: int, name: String):
var player_state := PlayerState.new()
player_state.id = id
player_state.name = name
players[multiplayer.get_remote_sender_id()] = player_state
if multiplayer.is_server():
var player_state := PlayerState.new()
player_state.id = id
player_state.name = name
players[multiplayer.get_remote_sender_id()] = player_state
@rpc("any_peer", "reliable", "call_remote")
func remove_player(id: int):
if multiplayer.is_server():
if players.has(id):
players.erase(id)
func _on_player_disconnected(id):
remove_player.rpc_id(1, id)
func _on_player_connected(id):
pass
#if multiplayer.is_server():
@ -28,6 +40,7 @@ func _on_player_connected(id):
func _ready() -> void:
multiplayer.peer_connected.connect(_on_player_connected)
multiplayer.peer_disconnected.connect(_on_player_disconnected)
multiplayer.connected_to_server.connect(_on_connected_ok)
pass # Replace with function body.
@ -43,8 +56,8 @@ func create_server(player_data: PlayerManager) -> Error:
var err = peer.create_server(27015, 30)
if err:
return err
multiplayer.multiplayer_peer = peer
if DisplayServer.get_name() != "headless":
if not OS.has_feature("dedicated_server"):
multiplayer.multiplayer_peer = peer
var player_state := PlayerState.new()
player_state.id = 1
player_state.name = player_data.name