/// <summary> /// Adds the floaty objects and sends messages to players as necessary /// </summary> /// <param name="objects"></param> /// <param name="msg"></param> /// <returns></returns> public virtual void AddFloatyAreaObjects(IEnumerable <IFloatyAreaObject> objects) { var objectsAdded = new List <IFloatyAreaObject>(); foreach (var obj in objects) { if (_model.FloatySpaceObjects.ContainsKey(obj.Id)) { ConsoleManager.WriteLine("Error: area already contains floaty space object.", ConsoleMessageType.Error); continue; } _model.FloatySpaceObjects.Add(obj.Id, obj); objectsAdded.Add(obj); } if (_onlinePlayerIDs.Count <= 0 || objectsAdded.Count <= 0) { return; } var data = new MessageReceiveFloatyAreaObjects(); foreach (var obj in objectsAdded) { data.FloatyObjects.Add(obj.GetFloatyNetworkData()); } BroadcastMessage(new NetworkMessageContainer(data, MessageTypes.ReceiveFloatyAreaObjects)); }
public void InstantiateFloatyAreaObjects(MessageReceiveFloatyAreaObjects data) { List <FloatyAreaObjectData> floatyObjects = new List <FloatyAreaObjectData>(); foreach (var o in data.FloatyObjects) { floatyObjects.Add((FloatyAreaObjectData)o); } InstantiateFloatyAreaObjects(floatyObjects); }