void Initialize() { if (initialized) { return; } initialized = true; #if NETSTANDARD Application.quitting += Disconnect; #else // TODO - Finish and Fix this to match unity some how. #endif #if NETSTANDARD if (logger.LogEnabled()) { logger.Log("NetworkServer Created version " + Version.Current); } #else if (logger.LogEnabled()) { logger.Log("NetworkServer Created version " + Assembly.GetAssembly(typeof(NetworkServer))?.GetName().Version); } #endif //Make sure connections are cleared in case any old connections references exist from previous sessions connections.Clear(); #if NETSTANDARD if (Transport is null) { Transport = GetComponent <Transport>(); } #endif if (Transport == null) { throw new InvalidOperationException("Transport could not be found for NetworkServer"); } if (authenticator != null) { authenticator.OnServerAuthenticated += OnAuthenticated; #if NETSTANDARD Connected.AddListener(authenticator.OnServerAuthenticateInternal); #else Connected += authenticator.OnServerAuthenticateInternal; #endif } else { // if no authenticator, consider every connection as authenticated #if NETSTANDARD Connected.AddListener(OnAuthenticated); #else Connected += OnAuthenticated; #endif } }
public override RaceWithFactory AddCompetitor(Transport.Transport transport) { if (transport.IsAir()) { Competitors.Add(transport); } else { throw new AddTransportException(); } return(this); }
public RaceWithFactory StartGame() { var minTime = float.MaxValue; foreach (var competitor in Competitors) { var competitorTime = competitor.TimeForDistance(_distance); if (competitorTime < minTime) { minTime = competitorTime; Winner = competitor; } } return(this); }
public async UniTask ConnectAsync(Uri uri) #endif { if (logger.LogEnabled()) { logger.Log("Client Connect: " + uri); } #if NETSTANDARD if (Transport == null) { Transport = GetComponent <Transport.Transport>(); } #endif if (Transport == null) { throw new InvalidOperationException("Transport could not be found for NetworkClient"); } connectState = ConnectState.Connecting; try { IConnection transportConnection = await Transport.ConnectAsync(uri); InitializeAuthEvents(); // setup all the handlers Connection = GetNewConnection(transportConnection); Time.Reset(); RegisterMessageHandlers(); Time.UpdateClient(this); OnConnected().Forget(); } catch (Exception) { connectState = ConnectState.Disconnected; throw; } }
public override RaceWithFactory AddCompetitor(Transport.Transport transport) { Competitors.Add(transport); return(this); }
public abstract RaceWithFactory AddCompetitor(Transport.Transport transport);
public void Travel(Transport.Transport transport) { transport.Travel(); }