コード例 #1
0
        public MainManager(int simulatorID, RedisNetworkingService redisNetworkingService, SimulatorGameTimeService gameTimeService, SimulatorConfig simulatorConfig, PhysicsConfig physicsConfig)
        {
            _simulatorID       = simulatorID;
            _redisServer       = redisNetworkingService.RedisServer;
            _networkingService = redisNetworkingService;
            _gameTimeService   = gameTimeService;
            _simulatorConfig   = simulatorConfig;
            _physicsConfig     = physicsConfig;

            Utilities.NextUnique();//Force the static to initialize now
        }
コード例 #2
0
        //First argument is simulatorID (int), all subsequent arguments follow the format in _parseSimulationDatum
        public static void Main(string[] simulationData)
        {
            try
            {
                ConsoleManager.WriteLine("Starting simulator instance...", ConsoleMessageType.Debug);

                Logger.Initialize();

                TimeKeeper.Initialize();
                _simulatorConfig = new SimulatorConfig();
                _physicsConfig   = new PhysicsConfig();
                RedisServer            redisServer            = new RedisServer(Logger.LogRedisError, Logger.LogRedisInfo, new RedisConfig().Address);
                RedisNetworkingService redisNetworkingService = new RedisNetworkingService(_simulatorConfig,
                                                                                           redisServer);
                int simulatorID = int.Parse(simulationData[0]);

                List <string> dataArray = new List <string>();
                for (int i = 1; i < simulationData.Length; i++)
                {
                    dataArray.Add(simulationData[i]);
                }


                _mainManager = new MainManager(simulatorID, redisNetworkingService,
                                               new SimulatorGameTimeService(), _simulatorConfig, _physicsConfig);

                //IDs are parsed, then each ID is used to subscribe to a redis channel, which the server uses to communicate data about each system
                foreach (string s in dataArray)
                {
                    if (s == "")
                    {
                        continue;
                    }

                    var data = _parseSimulationDatum(s);
                    _mainManager.StartSimulatingArea(data.Item2, data.Item1);
                }


                _mainManager.ConnectToServer();

                Run();
            }

            catch (Exception e)
            {
                ConsoleManager.WriteLine("Exception in simulator", ConsoleMessageType.Error);
                ConsoleManager.WriteLine(e.ToString(), ConsoleMessageType.Error);
                ConsoleManager.WriteLine(e.Message, ConsoleMessageType.Error);
                Run();
            }
        }