예제 #1
0
        /// <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;
                }
            }
        }
예제 #2
0
 /// <summary>
 /// Adds an ingredient into bundle description.
 /// </summary>
 /// <param name="ingredient">Ingredient</param>
 public void AddIngredient(BundleIngredient ingredient)
 {
     Ingredients.Add(ingredient);
 }