/// <summary>
 /// Sets the instance of the ItemDatabase to the instance given.
 /// </summary>
 /// <param name="aInstance">The instance to make singleton</param>
 /// <returns></returns>
 private static bool SetInstance(ItemDatabase aInstance)
 {
     if (s_Instance != null && s_Instance != aInstance)
     {
         return false;
     }
     s_Instance = aInstance;
     return true;
 }
 /// <summary>
 /// Creates an instance of the ItemDatabase if it was missing.
 /// </summary>
 private static void CreateInstance()
 {
     if(Game.isClosing)
     {
         return;
     }
     GameObject persistant = GameObject.Find(Game.PERSISTANT_GAME_OBJECT_NAME);
     if (persistant == null)
     {
         persistant = new GameObject(Game.PERSISTANT_GAME_OBJECT_NAME);
         persistant.transform.position = Vector3.zero;
         persistant.transform.rotation = Quaternion.identity;
     }
     s_Instance = persistant.GetComponent<ItemDatabase>();
     if (s_Instance == null)
     {
         s_Instance = persistant.AddComponent<ItemDatabase>();
     }
 }
 /// <summary>
 /// Removes the instance of the ItemDatabase if the instance being destroyed is the the same as the singleton.
 /// </summary>
 /// <param name="aInstance"></param>
 private static void DestroyInstance(ItemDatabase aInstance)
 {
     if (s_Instance == aInstance)
     {
         s_Instance = null;
     }
 }