Пример #1
0
        private static void OnReserveAreaCancel(ref ReserveAreaCancelMsg msg, MyNetworkClient sender)
        {
            Dictionary <long, ReservedAreaData> reservations;

            if (m_reservedAreas.TryGetValue(msg.ReservationName, out reservations))
            {
                reservations.Remove(msg.Id);
            }
        }
Пример #2
0
        public override void UpdateAfterSimulation()
        {
            base.UpdateAfterSimulation();

            if (Sync.IsServer)
            {
                foreach (var entity in m_reservedEntities)
                {
                    if (Stopwatch.GetTimestamp() > entity.Value.ReservationTimer)
                    {
                        m_removeReservedEntities.Enqueue(entity.Key);
                    }
                }

                foreach (var id in m_removeReservedEntities)
                {
                    m_reservedEntities.Remove(id);
                }

                m_removeReservedEntities.Clear();

                foreach (var tag in m_reservedAreas)
                {
                    foreach (var area in tag.Value)
                    {
                        if (MySandboxGame.Static.UpdateTime > area.Value.ReservationTimer)
                        {
                            m_removeReservedAreas.Enqueue(new KeyValuePair <string, long>(tag.Key, area.Key));
                        }
                    }
                }

                foreach (var id in m_removeReservedAreas)
                {
                    m_reservedAreas[id.Key].Remove(id.Value);

                    var cancelMsg = new ReserveAreaCancelMsg()
                    {
                        ReservationName = id.Key,
                        Id = id.Value,
                    };

                    Sync.Layer.SendMessageToAll(ref cancelMsg, MyTransportMessageEnum.Success);
                }

                m_removeReservedAreas.Clear();
            }
        }
		public override void UpdateAfterSimulation()
		{
			base.UpdateAfterSimulation();

			if (Sync.IsServer)
			{
				foreach (var entity in m_reservedEntities)
				{
					if (Stopwatch.GetTimestamp() > entity.Value.ReservationTimer)
						m_removeReservedEntities.Enqueue(entity.Key);
				}

				foreach (var id in m_removeReservedEntities)
				{
					m_reservedEntities.Remove(id);
				}

                m_removeReservedEntities.Clear();

                foreach (var tag in m_reservedAreas)
                {
                    foreach (var area in tag.Value)
                    {
                        if (MySandboxGame.Static.UpdateTime > area.Value.ReservationTimer)
                            m_removeReservedAreas.Enqueue(new KeyValuePair<string, long>(tag.Key, area.Key));
                    }
                }

                foreach (var id in m_removeReservedAreas)
                {
                    m_reservedAreas[id.Key].Remove(id.Value);

                    var cancelMsg = new ReserveAreaCancelMsg()
                    {
                        ReservationName = id.Key,
                        Id = id.Value,
                    };

                    Sync.Layer.SendMessageToAll(ref cancelMsg, MyTransportMessageEnum.Success);
                }

                m_removeReservedAreas.Clear();
			}
		}
 private static void OnReserveAreaCancel(ref ReserveAreaCancelMsg msg, MyNetworkClient sender)
 {
     Dictionary<long, ReservedAreaData> reservations;
     if (m_reservedAreas.TryGetValue(msg.ReservationName, out reservations))
     {
         reservations.Remove(msg.Id);
     }
 }