/// <summary> /// Loads bundle information. /// </summary> public void Startup() { communityCenter = Game1.getLocationFromName("CommunityCenter") as CommunityCenter; var raw = Game1.content.Load <Dictionary <string, string> >("Data\\Bundles" + Locale.GetCurrentLocaleName()); foreach (var pair in raw) { var key = pair.Key.Split('/'); var id = int.Parse(key[1]); var value = pair.Value.Split('/'); var english = value[0]; var locale = value.Last(); var slots = int.Parse(value[value.Length - 2]); if (value.Length == 5) { slots = 0; } var bundle = new Bundle(id, english, locale, slots); bundles.Add(bundle); var netbundle = communityCenter.bundles[id]; var rawIngredients = value[2].Split(' '); for (var i = 0; i < rawIngredients.Length; i += 3) { var objectId = int.Parse(rawIngredients[i]); var objectCount = int.Parse(rawIngredients[i + 1]); var objectQuality = int.Parse(rawIngredients[i + 2]); if (!IsObjectExists(objectId)) { continue; } var objectName = LoadObjectName(objectId); var donated = netbundle[i / 3]; var ingredient = new BundleIngredient(objectId, i / 3, objectName, objectCount, objectQuality, donated); bundle.AddIngredient(ingredient); } if (bundle.Slots == 0) { bundle.Slots = bundle.Ingredients.Count; } if (netbundle.All(x => x == true)) { bundle.IsComplete = true; } } }
/// <summary> /// Adds an ingredient into bundle description. /// </summary> /// <param name="ingredient">Ingredient</param> public void AddIngredient(BundleIngredient ingredient) { Ingredients.Add(ingredient); }