コード例 #1
0
        /// <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));
        }
コード例 #2
0
        public void InstantiateFloatyAreaObjects(MessageReceiveFloatyAreaObjects data)
        {
            List <FloatyAreaObjectData> floatyObjects = new List <FloatyAreaObjectData>();

            foreach (var o in data.FloatyObjects)
            {
                floatyObjects.Add((FloatyAreaObjectData)o);
            }

            InstantiateFloatyAreaObjects(floatyObjects);
        }