Skip to content

Commit

Permalink
feat: adding option to ignore character check for spawning objects
Browse files Browse the repository at this point in the history
  • Loading branch information
James-Frowen committed Sep 8, 2021
1 parent c76e081 commit 9234eb4
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 6 deletions.
12 changes: 10 additions & 2 deletions Assets/Mirage/Runtime/ServerObjectManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -665,12 +665,20 @@ public void SpawnObjects()
/// </para>
/// </summary>
/// <param name="player">The player to spawn objects for</param>
public void SpawnVisibleObjects(INetworkPlayer player)
public void SpawnVisibleObjects(INetworkPlayer player) => SpawnVisibleObjects(player, false);

/// <summary>
/// Sends spawn message for scene objects and other visible objects to the given player if it has a character
/// </summary>
/// <param name="player">The player to spawn objects for</param>
/// <param name="ignoreHasCharacter">If true will spawn visibile objects even if player does not have a spawned character yet</param>
// note: can't use optional param here because we need just NetworkPlayer version for event
public void SpawnVisibleObjects(INetworkPlayer player, bool ignoreHasCharacter)
{
if (logger.LogEnabled()) logger.Log("SetClientReadyInternal for conn:" + player);

// client is ready to start spawning objects
if (player.HasCharacter)
if (ignoreHasCharacter || player.HasCharacter)
SpawnVisibleObjectForPlayer(player);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ void ParseForServerMode()
spawner.Server = server;

server.Started.AddListener(OnServerStarted);
server.Authenticated.AddListener(conn => serverObjectManager.SpawnVisibleObjects(conn));
server.Authenticated.AddListener(conn => serverObjectManager.SpawnVisibleObjects(conn, true));
server.StartServer();
Console.WriteLine("Starting Server Only Mode");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public class MultipleClients
Server = Object.FindObjectOfType<NetworkServer>();
ServerObjectManager = Object.FindObjectOfType<ServerObjectManager>();
Server.Authenticated.AddListener(conn => ServerObjectManager.SpawnVisibleObjects(conn));
Server.Authenticated.AddListener(conn => ServerObjectManager.SpawnVisibleObjects(conn, true));
var started = new UniTaskCompletionSource();
Server.Started.AddListener(() => started.TrySetResult());
Expand Down
2 changes: 0 additions & 2 deletions Assets/Tests/Runtime/Host/PlayerSceneReadyHostTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@ public void SetClientReadyAndNotReadyTest()

sceneManager.SetClientNotReady(connection);
Assert.That(connection.SceneIsReady, Is.False);


}

[Test]
Expand Down

0 comments on commit 9234eb4

Please sign in to comment.