Beispiel #1
0
 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);
             }
         }
     }
 }
Beispiel #2
0
        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);
        }