private static ItemFilter GetPotionFilter(SubFilterMode subFilterMode) { ItemFilter filter; switch (subFilterMode) { case SubFilterMode.All: filter = new FilterPotion(); break; case SubFilterMode.Recovery: filter = new FilterRecovery(); break; case SubFilterMode.Food: filter = new FilterFood(); break; case SubFilterMode.Buff: filter = new FilterBuff(); break; case SubFilterMode.OtherPotions: filter = new FilterOtherPotion(); break; default: filter = new FilterPotion(); break; } return(filter); }
public override bool Passes(Item item) { ItemFilter pots = new FilterPotion(); result = false; if (pots.Passes(item)) { result = true; foreach (var filter in blacklist) { if (filter.Passes(item)) { result = false; } } } return(result); }
public static IEnumerable <Item> SortAndFilter(IEnumerable <Item> items, SortMode sortMode, FilterMode filterMode, string modFilter, string nameFilter) { ItemFilter filter; switch (filterMode) { case FilterMode.All: filter = new FilterAll(); break; case FilterMode.Weapons: filter = new FilterWeapon(); break; case FilterMode.Tools: filter = new FilterTool(); break; case FilterMode.Equipment: filter = new FilterEquipment(); break; case FilterMode.Potions: filter = new FilterPotion(); break; case FilterMode.Placeables: filter = new FilterPlaceable(); break; case FilterMode.Misc: filter = new FilterMisc(); break; default: filter = new FilterAll(); break; } IEnumerable <Item> filteredItems = items.Where((item) => filter.Passes(item) && FilterName(item, modFilter, nameFilter)); CompareFunction func; switch (sortMode) { case SortMode.Default: func = new CompareDefault(); break; case SortMode.Id: func = new CompareID(); break; case SortMode.Name: func = new CompareName(); break; case SortMode.Quantity: func = new CompareID(); break; default: return(filteredItems); } BTree <Item> sortedTree = new BTree <Item>(func); foreach (Item item in filteredItems) { sortedTree.Insert(item); } if (sortMode == SortMode.Quantity) { BTree <Item> oldTree = sortedTree; sortedTree = new BTree <Item>(new CompareQuantity()); foreach (Item item in oldTree.GetSortedItems()) { sortedTree.Insert(item); } } return(sortedTree.GetSortedItems()); }
public static IEnumerable <Recipe> GetRecipes(SortMode sortMode, FilterMode filterMode, string modFilter, string nameFilter) { ItemFilter filter; switch (filterMode) { case FilterMode.All: filter = new FilterAll(); break; case FilterMode.Weapons: filter = new FilterWeapon(); break; case FilterMode.Tools: filter = new FilterTool(); break; case FilterMode.Equipment: filter = new FilterEquipment(); break; case FilterMode.Potions: filter = new FilterPotion(); break; case FilterMode.Placeables: filter = new FilterPlaceable(); break; case FilterMode.Misc: filter = new FilterMisc(); break; default: filter = new FilterAll(); break; } IEnumerable <Recipe> filteredRecipes = Main.recipe.Where((recipe, index) => index < Recipe.numRecipes && filter.Passes(recipe) && FilterName(recipe.createItem, modFilter, nameFilter)); CompareFunction func; switch (sortMode) { case SortMode.Default: func = new CompareDefault(); break; case SortMode.Id: func = new CompareID(); break; case SortMode.Name: func = new CompareName(); break; default: return(filteredRecipes); } BTree <Recipe> sortedTree = new BTree <Recipe>(func); foreach (Recipe recipe in filteredRecipes) { sortedTree.Insert(recipe); /*if (CraftingGUI.threadNeedsRestart) * { * return new List<Recipe>(); * }*/ } return(sortedTree.GetSortedItems()); }