public IEnumerable <ConfigRecipeData> DeserializeRecipeDataConfig(string data) { data = data.Replace("\t", string.Empty).Replace("\r", string.Empty).Replace("\n", string.Empty); if (data.Trim().Length > 0) { string[] splitData = data.Split('@'); if (splitData.Length > 0) { for (int i = 0; i < splitData.Length; i++) { string frontHalf = splitData[i].Substring(0, splitData[i].IndexOf("\"CraftingRequirements\":")); string backHalf = splitData[i].Substring(splitData[i].IndexOf("\"CraftingRequirements\":")); frontHalf += "\"CraftingRequirements\": \"\"}"; backHalf = backHalf.Substring(backHalf.IndexOf(":") + 1); backHalf = backHalf.Remove(backHalf.Length - 1); ConfigRecipeData itemData = JsonUtility.FromJson <ConfigRecipeData>(frontHalf); string[] splitResourceData = backHalf.Split('#'); if (splitResourceData.Length > 0) { List <ConfigResource> res = new List <ConfigResource>(); for (int j = 0; j < splitResourceData.Length; j++) { res.Add(JsonUtility.FromJson <ConfigResource>(splitResourceData[j])); } itemData.CraftingRequirementsArray = res.ToArray(); } yield return(itemData); } } } }
public void AddRecipeAsConfigRecord(RecipeHelper rh) { ConfigRecipeData newData = new ConfigRecipeData(); var existingRecord = recipeConfigs.Where(rc => rc.ItemPrefab == rh.GetPrefabName()).FirstOrDefault(); if (existingRecord != null) { newData.Enabled = existingRecord.Enabled; } newData.ReadConfigFromRecipeHelper(rh); recipeConfigs.RemoveAll(rc => rc.ItemPrefab == rh.GetPrefabName()); recipeConfigs.Add(newData); }