Пример #1
0
 public GameManager(ILogger <GameManager> logger, IOptions <ServerConfig> config, INodeLocator nodeLocator, IServiceProvider serviceProvider, IEventManager eventManager, IGameCodeFactory gameCodeFactory)
 {
     _logger          = logger;
     _nodeLocator     = nodeLocator;
     _serviceProvider = serviceProvider;
     _eventManager    = eventManager;
     _gameCodeFactory = gameCodeFactory;
     _publicIp        = new IPEndPoint(IPAddress.Parse(config.Value.ResolvePublicIp()), config.Value.PublicPort);
     _games           = new ConcurrentDictionary <int, Game>();
 }
Пример #2
0
        public GameCodeManager(ILogger <GameCodeManager> logger, IGameCodeFactory codeFactory, IEventManager eventManager)
        {
            this._logger      = logger;
            this._codeFactory = codeFactory;
            logger.LogInformation("Boot.Codes: Reading files from {Path}", Path);

            var validCodes = Read().ToList();

            if (validCodes.Count == 0)
            {
                return;
            }

            validCodes.Shuffle();

            this.FourCharCodes = validCodes.Count(code => code.Code.Length == 4);
            this.SixCharCodes  = validCodes.Count(code => code.Code.Length == 6);

            this._codes = validCodes;
            this._inUse = new HashSet <GameCode>();

            eventManager.RegisterListener(new GameEventListener(this));
        }