public void Add(Guid id, InteractionType type, InteractionState state = InteractionState.Regular) { lock (_queueLocker) { _queue.Add(InteractionItem.GetItem(id, type, state)); } }
public void Remove(Guid id) { lock (_queueLocker) { var item = _queue.FirstOrDefault(i => i.Id == id); _queue.Remove(InteractionItem.PutItem(item)); } }
public static InteractionItem PutItem(InteractionItem item) { lock (_itemsPoolLocker) { _itemsPool.Push(item); return(item); } }
public static InteractionItem GetItem(Guid id, InteractionType type, InteractionState state) { if (!_itemsPool.TryTake(out InteractionItem item)) { item = new InteractionItem(); } item.Id = id; item.Type = type; item.State = state; item.WasTouchChanged = false; return(item); }
public static InteractionItem PutItem(InteractionItem item) { _itemsPool.Add(item); return(item); }