//a piece can request a collectable at a specified position, and if there is one available it will be spawned in
 public void requestCollectable(TunnelCollectableSlot slot)
 {
     if (availablePool.Count > 0)
     {
         TunnelCollectable tc = chooseCollectable();
         spawnCollectable(tc, slot);
     }
     else             //unlikely but possible
     {
         Debug.Log("No available collectables left. Ignoring request.");
     }
 }
 private void spawnCollectable(TunnelCollectable tc, TunnelCollectableSlot slot)
 {
     tc.Reset();
     slot.PlaceCollectable(tc);
     tc.gameObject.SetActive(true);
 }