public void AddWearablesToCatalog(string payload) { if (VERBOSE) { Debug.Log("add wearables: " + payload); } WearablesRequestResponse request = null; try { request = JsonUtility.FromJson <WearablesRequestResponse>(payload); } catch (Exception e) { Debug.LogError($"Fail to parse wearables json {e}"); } if (request == null) { return; } AddWearablesToCatalog(request.wearables); if (!string.IsNullOrEmpty(request.context)) { ResolvePendingWearablesByContextPromise(request.context, request.wearables); pendingWearablesByContextRequestedTimes.Remove(request.context); } }
public void AddWearablesToCatalog(string payload) { WearablesRequestResponse request = JsonUtility.FromJson <WearablesRequestResponse>(payload); if (VERBOSE) { Debug.Log("add wearables: " + payload); } for (int i = 0; i < request.wearables.Length; i++) { switch (request.wearables[i].type) { case "wearable": { WearableItem wearableItem = request.wearables[i]; if (!wearableCatalog.ContainsKey(wearableItem.id)) { wearableCatalog.Add(wearableItem.id, wearableItem); wearablesInUseCounters.Add(wearableItem.id, 1); ResolvePendingWearablePromise(wearableItem.id, wearableItem); pendingWearableRequestedTimes.Remove(wearableItem.id); } break; } case "item": { if (!itemCatalog.ContainsKey(request.wearables[i].id)) { itemCatalog.Add(request.wearables[i].id, (Item)request.wearables[i]); } break; } default: { Debug.LogError("Bad type in item, will not be added to catalog"); break; } } } if (!string.IsNullOrEmpty(request.context)) { ResolvePendingWearablesByContextPromise(request.context, request.wearables); pendingWearablesByContextRequestedTimes.Remove(request.context); } }