Move the real player authority to server
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
- Add rust bindings for the server player controller - Implement reconciliation loop for checking the player state - Place spawners on the test map - Add Containerfile and helm chart
This commit is contained in:
@ -16,20 +16,31 @@ 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_local")
|
||||
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():
|
||||
#GameServerManager.load_map.rpc_id(id, GameServerManager.current_map)
|
||||
if multiplayer.is_server():
|
||||
print("Player is connected with id: " + str(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)
|
||||
print("started")
|
||||
pass # Replace with function body.
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
@ -42,10 +53,10 @@ func set_map(name: String):
|
||||
func create_server(player_data: PlayerManager) -> Error:
|
||||
var peer = ENetMultiplayerPeer.new()
|
||||
var err = peer.create_server(27015, 30)
|
||||
multiplayer.multiplayer_peer = peer
|
||||
if err:
|
||||
return err
|
||||
multiplayer.multiplayer_peer = peer
|
||||
if DisplayServer.get_name() != "headless":
|
||||
if not OS.has_feature("dedicated_server"):
|
||||
var player_state := PlayerState.new()
|
||||
player_state.id = 1
|
||||
player_state.name = player_data.name
|
||||
@ -54,7 +65,8 @@ func create_server(player_data: PlayerManager) -> Error:
|
||||
|
||||
func join_server(player_data: PlayerManager, ip: String, port: int) -> Error:
|
||||
var peer = ENetMultiplayerPeer.new()
|
||||
var err = peer.create_client("127.0.0.1", 27015)
|
||||
print("trying to connect to: " + ip + ":" + str(port))
|
||||
var err = peer.create_client(ip, port)
|
||||
if err != OK:
|
||||
return err
|
||||
player_state_global.id = multiplayer.get_remote_sender_id()
|
||||
|
Reference in New Issue
Block a user