public SendEventManager(IHubContext <SignalHub> hubContext, IServerEventSender eventSender) { eventSender.Event += (sender, args) => { SendHub.SendEvent(hubContext.Clients, args); }; }
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(); }