using Syntriax.Engine.Core; using Syntriax.Engine.Network.Abstract; namespace Syntriax.Engine.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() ?? GameObject.GameManager.FindBehaviour()) 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; } }