public void FetchLevel(string levelName = "default") { HttpRequestOptions options = new HttpRequestOptions(); options.Method = HttpRequestMethod.GET; var result = WaitFor(ScenePrivate.HttpClient.Request, $"{LevelUrl}/{levelName}", options) as HttpClient.RequestData; if (!result.Success || result.Response.Status != 200) { Log.Write(LogLevel.Error, $"Bad request fetching level, {result.Response.Status}"); return; } string jsonResponse = result.Response.Body; LevelResponse parsed = ((JsonSerializationData <LevelResponse>)(WaitFor(JsonSerializer.Deserialize <LevelResponse>, jsonResponse))).Object; foreach (BitDefinition bitDefinition in parsed.data.bits) { FetchBit(bitDefinition.name); } foreach (ObjectiveEntity entity in parsed.data.objectives) { var match = ObjectivePositions.Find(entity.definition.p); if (match == null) { ScenePrivate.CreateClusterData data = Spawner.SpawnGlobalObjective(entity); Objectives.AddLast(data); ObjectivePositions.AddLast(entity.definition.p); } } }