public RudpMessagesSender(ByteArrayRudpStorage byteArrayRudpStorage, MatchStorage matchStorage,
                           UdpSendUtils udpSendUtils, IpAddressesStorage ipAddressesStorage)
 {
     this.matchStorage         = matchStorage;
     this.udpSendUtils         = udpSendUtils;
     this.ipAddressesStorage   = ipAddressesStorage;
     this.byteArrayRudpStorage = byteArrayRudpStorage;
 }
Exemple #2
0
 public GameEngineTicker(MatchStorage matchStorage, MatchLifeCycleManager matchLifeCycleManager,
                         InputEntitiesCreator inputEntitiesCreator, ExitEntitiesCreator exitEntitiesCreator,
                         RudpMessagesSender rudpMessagesSender, OutgoingMessagesStorage outgoingMessagesStorage)
 {
     this.matchStorage            = matchStorage;
     this.rudpMessagesSender      = rudpMessagesSender;
     this.exitEntitiesCreator     = exitEntitiesCreator;
     this.inputEntitiesCreator    = inputEntitiesCreator;
     this.matchLifeCycleManager   = matchLifeCycleManager;
     this.outgoingMessagesStorage = outgoingMessagesStorage;
 }
 public IdMapper(string settingsFile)
 {
     _storage = new MatchStorage <IdMatch, string>(settingsFile);
 }
 public MatchModelMessageHandler(MatchCreator matchCreator, MatchStorage matchStorage)
 {
     this.matchCreator   = matchCreator;
     matchModelValidator = new MatchModelValidator(matchStorage);
 }
Exemple #5
0
        public void Run()
        {
            if (matchmakerListenerCts != null)
            {
                throw new Exception("Сервер уже запущен");
            }

            //Старт уведомления матчмейкера о смертях игроков и окончании матчей
            MatchmakerNotifier notifier = new MatchmakerNotifier();

            matchmakerNotifierCts = notifier.StartThread();

            //Создание структур данных для матчей
            matchStorage = new MatchStorage();


            MessageIdFactory messageIdFactory = new MessageIdFactory();
            MessageFactory   messageFactory   = new MessageFactory(messageIdFactory);

            InputEntitiesCreator inputEntitiesCreator = new InputEntitiesCreator(matchStorage);
            ExitEntitiesCreator  exitEntitiesCreator  = new ExitEntitiesCreator(matchStorage);

            ByteArrayRudpStorage byteArrayRudpStorage = new ByteArrayRudpStorage();

            shittyUdpMediator = new ShittyUdpMediator();

            MessagesPackIdFactory   messagesPackIdFactory   = new MessagesPackIdFactory();
            IpAddressesStorage      ipAddressesStorage      = new IpAddressesStorage();
            SimpleMessagesPacker    simpleMessagesPacker    = new SimpleMessagesPacker(PackingHelper.Mtu, shittyUdpMediator, messagesPackIdFactory);
            OutgoingMessagesStorage outgoingMessagesStorage = new OutgoingMessagesStorage(simpleMessagesPacker, ipAddressesStorage);
            UdpSendUtils            udpSendUtils            = new UdpSendUtils(byteArrayRudpStorage, outgoingMessagesStorage, messageFactory);
            MessageProcessor        messageProcessor        = new MessageProcessor(inputEntitiesCreator, exitEntitiesCreator,
                                                                                   byteArrayRudpStorage,
                                                                                   // udpSendUtils,
                                                                                   ipAddressesStorage);

            shittyUdpMediator.SetProcessor(messageProcessor);

            matchRemover = new MatchRemover(matchStorage, byteArrayRudpStorage, udpSendUtils, notifier, ipAddressesStorage, messageIdFactory, messagesPackIdFactory);
            MatchFactory          matchFactory          = new MatchFactory(matchRemover, udpSendUtils, notifier, ipAddressesStorage, messageIdFactory, messagesPackIdFactory);
            MatchCreator          matchCreator          = new MatchCreator(matchFactory);
            MatchLifeCycleManager matchLifeCycleManager =
                new MatchLifeCycleManager(matchStorage, matchCreator, matchRemover);

            //Старт прослушки матчмейкера
            MatchModelMessageHandler matchModelMessageHandler = new MatchModelMessageHandler(matchCreator, matchStorage);
            MatchmakerListener       matchmakerListener       = new MatchmakerListener(matchModelMessageHandler, HttpPort);
            MonitorListener          monitorListener          = new MonitorListener(HttpPort);

            monitorListenerCts    = monitorListener.StartThread();
            matchmakerListenerCts = matchmakerListener.StartThread();


            //Старт прослушки игроков
            shittyUdpMediator
            .SetupConnection(UdpPort)
            .StartReceiveThread();

            RudpMessagesSender rudpMessagesSender = new RudpMessagesSender(byteArrayRudpStorage, matchStorage, udpSendUtils, ipAddressesStorage);
            GameEngineTicker   gameEngineTicker   = new GameEngineTicker(matchStorage, matchLifeCycleManager,
                                                                         inputEntitiesCreator, exitEntitiesCreator, rudpMessagesSender, outgoingMessagesStorage);

            //Старт тиков
            Chronometer chronometer = ChronometerFactory.Create(gameEngineTicker.Tick);

            chronometer.StartEndlessLoop();
        }
Exemple #6
0
 public SimpleNameMatcher(string settingsFile)
 {
     _storage = new MatchStorage <SimpleNameMatch, string>(settingsFile);
 }
Exemple #7
0
 public MatchLogic()
 {
     matchStorage    = new MatchStorage();
     teamPlayerLogic = new TeamPlayerLogic();
     goalLogic       = new GoalLogic();
 }
 public ExitEntitiesCreator(MatchStorage matchStorage)
 {
     this.matchStorage = matchStorage;
 }
 public MatchModelValidator(MatchStorage matchStorage)
 {
     this.matchStorage = matchStorage;
 }
 public MatchLogic()
 {
     matchStorage = new MatchStorage();
     teamPlayerLogic = new TeamPlayerLogic();
     goalLogic = new GoalLogic();
 }