示例#1
0
        public static void Save(World world, Guid id)
        {
            var saveData = new ClientSaveData()
            {
                Objects = world.Objects.ToArray(),
            };

            Trace.TraceInformation("Saving client data");
            var watch = Stopwatch.StartNew();

            string data;

            using (var stream = new System.IO.MemoryStream())
            {
                using (var serializer = new Dwarrowdelf.SaveGameSerializer(stream, new[] { new ClientObjectRefResolver(world) }))
                {
                    serializer.Serialize(saveData);

                    stream.Position = 0;

                    using (StreamReader reader = new StreamReader(stream))
                        data = reader.ReadToEnd();
                }
            }

            watch.Stop();
            Trace.TraceInformation("Saving client data took {0}", watch.Elapsed);

            var msg = new Messages.SaveClientDataReplyMessage() { ID = id, Data = data };
            GameData.Data.User.Send(msg);

            if (SaveEvent != null)
                SaveEvent();
        }
示例#2
0
        void HandleMessage(SaveClientDataRequestMessage msg)
        {
            string data = ClientSaveHelper.SerializeClientObjects(m_world);

            var reply = new Messages.SaveClientDataReplyMessage()
            {
                ID = msg.ID, Data = data
            };

            Send(reply);

            if (SaveEvent != null)
            {
                SaveEvent();
            }
        }
示例#3
0
		void HandleMessage(SaveClientDataRequestMessage msg)
		{
			string data = ClientSaveHelper.SerializeClientObjects(m_world);

			var reply = new Messages.SaveClientDataReplyMessage() { ID = msg.ID, Data = data };
			Send(reply);

			if (SaveEvent != null)
				SaveEvent();
		}