Implement RPC Node
This commit is contained in:
parent
f7ee533d5a
commit
605e43273e
13 changed files with 524 additions and 206 deletions
|
|
@ -3,15 +3,13 @@ using Godot;
|
|||
|
||||
public partial class NetworkManager : Node
|
||||
{
|
||||
[Export] public RPCNode RPCNode { get; private set; }
|
||||
|
||||
public static NetworkManager Singleton { get; private set; }
|
||||
public static NetworkManager Instance { get; private set; }
|
||||
|
||||
public int LocalNetId { get; private set; } = -1;
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
Singleton = this;
|
||||
Instance = this;
|
||||
|
||||
if (Global.IsGameHost)
|
||||
{
|
||||
|
|
@ -66,7 +64,7 @@ public partial class NetworkManager : Node
|
|||
{
|
||||
if (Global.IsGameHost)
|
||||
{
|
||||
GameManager.Singleton.SendUniverseToClient(id);
|
||||
GameManager.Instance.SendUniverseToClient(id);
|
||||
}
|
||||
|
||||
_ = SpawnNetPlayer(id);
|
||||
|
|
@ -75,7 +73,7 @@ public partial class NetworkManager : Node
|
|||
public void OnPlayerDisconnected(long id)
|
||||
{
|
||||
Player player = GetNode<Player>($"/root/Game/Space/Player-{id}");
|
||||
GameManager.Singleton.DespawnPlayer(player);
|
||||
GameManager.Instance.DespawnPlayer(player);
|
||||
}
|
||||
|
||||
private async Task SpawnNetPlayer(long id)
|
||||
|
|
@ -88,14 +86,9 @@ public partial class NetworkManager : Node
|
|||
bool isMainPlayer = LocalNetId == id;
|
||||
|
||||
Character character = new(GameManager.GameUniverse.Sectors[5, 5, 5], new(0, 0, 0));
|
||||
Player player = GameManager.Singleton.SpawnPlayer(character, isMainPlayer);
|
||||
Player player = GameManager.Instance.SpawnPlayer(character, id, isMainPlayer);
|
||||
player.Name = $"Player-{id}";
|
||||
|
||||
player.SetMultiplayerAuthority((int)id);
|
||||
|
||||
if (isMainPlayer && !Global.IsGameHost)
|
||||
{
|
||||
GameManager.Singleton.RpcId(1, nameof(GameManager.Singleton.RpcSendNearbySectors), character.CurrentSector.Coordinates, id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue