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); } }
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); } }