private IEnumerator LoadCharacter(bool test) { JObject jcharacter; if (!test) { string response = null; APIHandler.GetCharacter(r => response = r); while (response == null) { yield return(null); } Debug.Log("Got character response"); JArray jresp = JArray.Parse(response); jcharacter = (JObject)jresp[0]; } else { Debug.Log("Using mock character json for testing."); string mockCharacter = System.IO.File.ReadAllText(Application.streamingAssetsPath + "/mockCharacter.json"); jcharacter = JObject.Parse(mockCharacter); } //Create all owned items JArray jitems = (JArray)jcharacter["ownedItems"]; foreach (JObject jitem in jitems) { Item.FromJObject(jitem); } //Item image loading now started (called from each Item's constructor) Debug.Log("Loading all item images..."); while (!ItemImageLoader.AllLoaded()) { yield return(null); } Debug.Log("All item images loaded."); Inventory.Update(); //Based on response jresp, equip correct items try { JArray jequippedItems = (JArray)jcharacter["equippedItems"]; foreach (var jitemID in jequippedItems) { Equipment.Equip(Item.Get((string)jitemID), updateBackend: false); } } catch (System.InvalidCastException) { Debug.Log("equippedItems was null and not an empty list, which means no items were equipped."); } }
private void Update() { _spinner.Rotate(Vector3.forward, 100 * Time.deltaTime); if (_close) { if (ItemImageLoader.FirstRequestSent && ItemImageLoader.AllLoaded()) { _appearingWindow.Close(); _close = false; } } }