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); } }
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); }
public void SendMessage(SimulatorBoundMessage message) { _redisServer.PublishObject(ChannelTypes.ServerToSimulator_Data, message.TargetAreaId, message); }