33 lines
989 B
C#
33 lines
989 B
C#
|
using Syntriax.Engine.Core;
|
||
|
|
||
|
namespace Pong.Network;
|
||
|
|
||
|
public class NetworkBehaviour : BehaviourOverride, INetworkBehaviour
|
||
|
{
|
||
|
public int NetworkId { get; private set; } = 0;
|
||
|
|
||
|
public bool LocalAssigned { get; private set; } = false;
|
||
|
|
||
|
public bool IsServer { get; private set; } = false;
|
||
|
public bool IsClient { get; private set; } = false;
|
||
|
|
||
|
public INetworkCommunicator NetworkCommunicator { get; private set; } = null!;
|
||
|
|
||
|
protected override void OnInitialize()
|
||
|
{
|
||
|
if ((BehaviourController.GetBehaviourInParent<INetworkCommunicator>() ?? GameObject.GameManager.FindBehaviour<INetworkCommunicator>()) is not NetworkCommunicator)
|
||
|
throw new System.Exception($"Could not find an {nameof(INetworkCommunicator)}.");
|
||
|
|
||
|
if (NetworkCommunicator is INetworkServer server)
|
||
|
{
|
||
|
IsServer = true;
|
||
|
LocalAssigned = true;
|
||
|
|
||
|
// TODO Set and send Network Id
|
||
|
}
|
||
|
else
|
||
|
IsClient = true;
|
||
|
}
|
||
|
|
||
|
}
|