public Entity ReplaceCraftingQueue(Nito.Deque<Tuple<string, int>> newDeque)
 {
     var previousComponent = hasCraftingQueue ? craftingQueue : null;
     var component = _craftingQueueComponentPool.Count > 0 ? _craftingQueueComponentPool.Pop() : new CraftingQueueComponent();
     component.deque = newDeque;
     ReplaceComponent(CoreGameComponentIds.CraftingQueue, component);
     if (previousComponent != null) {
         _craftingQueueComponentPool.Push(previousComponent);
     }
     return this;
 }
 public Entity AddCraftingQueue(Nito.Deque<Tuple<string, int>> newDeque)
 {
     var component = _craftingQueueComponentPool.Count > 0 ? _craftingQueueComponentPool.Pop() : new CraftingQueueComponent();
     component.deque = newDeque;
     return AddComponent(CoreGameComponentIds.CraftingQueue, component);
 }