示例#1
0
 /// <summary>
 /// Manually set the <see cref="IdentifiableCategorization.Rule"/> of the <see cref="Identifiable.Id"/>
 /// </summary>
 /// <param name="id"></param>
 /// <param name="rule"></param>
 public static void Categorize(this Identifiable.Id id, IdentifiableCategorization.Rule rule)
 {
     if (SRModLoader.CurrentLoadingStep > SRModLoader.LoadingStep.PRELOAD)
     {
         CategorizeId(id, rule);
         return;
     }
     rules.Add(id, rule);
 }
示例#2
0
        /// <summary>
        /// Put an <see cref="Identifiable.Id"/> into one of the vanilla categories
        /// </summary>
        /// <param name="id"></param>
        /// <param name="category"></param>
        public static void CategorizeId(Identifiable.Id id, IdentifiableCategorization.Rule category)
        {
            string name = Enum.GetName(typeof(Identifiable.Id), id);

            if (name.Contains("TANGLE"))
            {
                Identifiable.ALLERGY_FREE_CLASS.Add(id);
            }
            if (category == IdentifiableCategorization.Rule.NONE)
            {
                return;
            }

            if ((category & (IdentifiableCategorization.Rule.VEGGIE |
                             IdentifiableCategorization.Rule.FRUIT |
                             IdentifiableCategorization.Rule.TOFU |
                             IdentifiableCategorization.Rule.PLORT |
                             IdentifiableCategorization.Rule.MEAT |
                             IdentifiableCategorization.Rule.CHICK |
                             IdentifiableCategorization.Rule.CRAFT)) != 0)
            {
                Identifiable.NON_SLIMES_CLASS.Add(id);
            }
            if ((category & (IdentifiableCategorization.Rule.VEGGIE |
                             IdentifiableCategorization.Rule.FRUIT |
                             IdentifiableCategorization.Rule.TOFU |
                             IdentifiableCategorization.Rule.MEAT)) != 0)
            {
                Identifiable.FOOD_CLASS.Add(id);
            }
            if ((category & (IdentifiableCategorization.Rule.VEGGIE)) != 0)
            {
                Identifiable.VEGGIE_CLASS.Add(id);
            }
            if ((category & (IdentifiableCategorization.Rule.FRUIT)) != 0)
            {
                Identifiable.FRUIT_CLASS.Add(id);
            }
            if ((category & (IdentifiableCategorization.Rule.TOFU)) != 0)
            {
                Identifiable.TOFU_CLASS.Add(id);
            }
            if ((category & (IdentifiableCategorization.Rule.SLIME)) != 0)
            {
                Identifiable.SLIME_CLASS.Add(id);
            }
            if ((category & (IdentifiableCategorization.Rule.LARGO)) != 0)
            {
                Identifiable.LARGO_CLASS.Add(id);
            }
            if ((category & (IdentifiableCategorization.Rule.GORDO)) != 0)
            {
                Identifiable.GORDO_CLASS.Add(id);
            }
            if ((category & (IdentifiableCategorization.Rule.PLORT)) != 0)
            {
                Identifiable.PLORT_CLASS.Add(id);
            }
            if ((category & (IdentifiableCategorization.Rule.MEAT)) != 0)
            {
                Identifiable.MEAT_CLASS.Add(id);
            }
            if ((category & (IdentifiableCategorization.Rule.CHICK)) != 0)
            {
                Identifiable.CHICK_CLASS.Add(id);
            }
            if ((category & (IdentifiableCategorization.Rule.LIQUID)) != 0)
            {
                Identifiable.LIQUID_CLASS.Add(id);
            }
            if ((category & (IdentifiableCategorization.Rule.CRAFT)) != 0)
            {
                Identifiable.CRAFT_CLASS.Add(id);
            }
            if ((category & (IdentifiableCategorization.Rule.FASHION)) != 0)
            {
                Identifiable.FASHION_CLASS.Add(id);
            }
            if ((category & (IdentifiableCategorization.Rule.ECHO)) != 0)
            {
                Identifiable.ECHO_CLASS.Add(id);
            }
            if ((category & (IdentifiableCategorization.Rule.ECHO_NOTE)) != 0)
            {
                Identifiable.ECHO_NOTE_CLASS.Add(id);
            }
            if ((category & (IdentifiableCategorization.Rule.ORNAMENT)) != 0)
            {
                Identifiable.ORNAMENT_CLASS.Add(id);
            }
            if ((category & (IdentifiableCategorization.Rule.TOY)) != 0)
            {
                Identifiable.TOY_CLASS.Add(id);
            }

            Identifiable.EATERS_CLASS.UnionWith(Identifiable.SLIME_CLASS);
            Identifiable.EATERS_CLASS.UnionWith(Identifiable.LARGO_CLASS);
        }