Exemplo n.º 1
0
 public void SendMessageToSimulator(SimulatorBoundMessage message)
 {
     if (_areaIdToSimulatorInterface.ContainsKey(message.TargetAreaId))//Not all areas are simulated currently, e.g. colonies
     {
         _areaIdToSimulatorInterface[message.TargetAreaId].SendMessage(message);
     }
     else
     {
         ConsoleManager.WriteLine("Attempted to send simulator message to a non simulated area.", ConsoleMessageType.Error);
     }
 }
Exemplo n.º 2
0
        public List <int> SendAreaData(List <PSystem> systemsToSimulate, EventHandler <NetworkMessageContainer> messageHandler)
        {
            var areaIDs = new List <int>();

            foreach (var system in systemsToSimulate)
            {
                foreach (var p in system.GetPlanets())
                {
                    var edp = p.GetEntryData(null, true, true);

                    var planetData = new SimulatorBoundMessage(edp, MessageTypes.PlanetLandApproval, p.Id);

                    SendMessage(planetData);
                    areaIDs.Add(p.Id);
                }

                foreach (var m in system.GetMoons())
                {
                    var edm = m.GetEntryData(null, true, true);

                    var moonData = new SimulatorBoundMessage(edm, MessageTypes.PlanetLandApproval, m.Id);

                    SendMessage(moonData);
                    areaIDs.Add(m.Id);
                }

                var eds = system.GetEntryData(null, true, true);

                var systemData = new SimulatorBoundMessage(eds, MessageTypes.StarSystemData, system.Id);

                SendMessage(systemData);
                areaIDs.Add(system.Id);
            }

            _messageHandler = messageHandler;
            foreach (var i in areaIDs)
            {
                _redisServer.Subscribe(ChannelTypes.SimulatorToServer_Data, i, messageHandler);
            }

            return(areaIDs);
        }
        public void SendMessage(NetworkMessageContainer message)
        {
            var msg = new SimulatorBoundMessage(message.MessageData, message.MessageType, _player.CurrentAreaID.Value);

            _redisServer.PublishObject(ChannelTypes.ServerToSimulator_Data, _player.CurrentAreaID.Value, msg);
        }
Exemplo n.º 4
0
 public void SendMessage(SimulatorBoundMessage message)
 {
     _redisServer.PublishObject(ChannelTypes.ServerToSimulator_Data, message.TargetAreaId, message);
 }