/// <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); }
/// <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); }