/// <summary>
    /// Pushes crafting material of given type onto
    /// crafting menu's "On Deck" list
    /// </summary>
    /// <param name="materialToPush">type of material to push</param>
    /// <param name="amount">IGNORED - needed to listen for remove materials event</param>
    void PushMaterial(CraftingMaterials materialToPush, int amount)
    {
        // if materials currently on deck isn't above max
        if (materialsOnDeck.Count < maxMaterialsOnDeck)
        {
            // push crafting material onto deck
            materialsOnDeck.Add(materialToPush);
            CraftingMaterialOnDeck newOnDeck = Instantiate(onDeckMaterialTemplate, parentContainer).GetComponent <CraftingMaterialOnDeck>();

            // modify visual elements of new on deck crafting material
            newOnDeck.Icon         = craftingMaterialsIcons[(int)materialToPush];
            newOnDeck.MaterialType = materialToPush;

            // if user pushed last material onto deck
            if (materialsOnDeck.Count == maxMaterialsOnDeck)
            {
                // determine whether player can craft an item and return
                myWeaponCrafter.DetermineItemFromMaterials(materialsOnDeck.ToArray());
                return;
            }

            // didn't return, play standard push sound effect
            AudioManager.Play(pushSound, true);
        }
        // otherwise (materials on deck plus new exceeds max)
        else
        {
            // discard material, returning it to player's inventory
            addMaterialsEvent.Invoke(materialToPush, 1);

            // play appropriate sound effect
            AudioManager.Play(cantPushSound, true);
        }
    }
 // Adds given material on deck as invoker of pop material event
 public static void AddPopMaterialInvoker(CraftingMaterialOnDeck invoker)
 {
     // adds invoker to list and adds all listeners to this invoker
     popMaterialInvokers.Add(invoker);
     foreach (UnityAction <CraftingMaterials> listener in popMaterialListeners)
     {
         invoker.AddPopMaterialListener(listener);
     }
 }