public SendEventManager(IHubContext <SignalHub> hubContext, IServerEventSender eventSender)
 {
     eventSender.Event += (sender, args) =>
     {
         SendHub.SendEvent(hubContext.Clients, args);
     };
 }
Exemple #2
0
        public GameController(IClientEventReceiver clientEventReceiver, IServerEventSender serverEventSender, GameSettings settings)
        {
            var gameEventController = new GameEventController();

            SetupGameEventHandlers(gameEventController);
            SetupClientEventHandlers(clientEventReceiver);

            _eventSender = serverEventSender;
            _minPlayers  = settings.MinPlayers;

            _game          = new GameEngine(gameEventController, settings);
            _botController = new BotController(this, clientEventReceiver);

            _worldBroadcastThread = new Thread(delegate()
            {
                while (true)
                {
                    if (DateTime.UtcNow < _nextWorldUpdate)
                    {
                        continue;
                    }
                    Task.Run(() => BroadcastWorldUpdate());
                    _nextWorldUpdate = DateTime.UtcNow.AddMilliseconds(BroadcastWorldInterval);
                }
            });

            _broadcastCounterThread = new Thread(delegate()
            {
                while (true)
                {
                    Thread.Sleep(1000);
                    Console.WriteLine($"{WorldBroadcastsPerSecond} world broadcasts per second");
                    WorldBroadcastsPerSecond = 0;
                }
            });
            Start();
        }