Пример #1
0
        public override bool Passes(Item item)
        {
            ItemFilter placeable = new FilterPlaceable();
            bool       ct        = false;

            if (item.createTile != -1)
            {
                ct = TileID.Sets.BasicChest[item.createTile];
            }
            return(placeable.Passes(item) && (MagicStorage.ContainsExactMatch(item.Name, "Crate") || (ct)));
        }
Пример #2
0
        private static ItemFilter GetPlaceableFilter(SubFilterMode subFilterMode)
        {
            ItemFilter filter;

            switch (subFilterMode)
            {
            case SubFilterMode.All:
                filter = new FilterPlaceable();
                break;

            case SubFilterMode.Material:
                filter = new FilterMaterial();
                break;

            case SubFilterMode.Block:
                filter = new FilterBlock();
                break;

            case SubFilterMode.Ore:
                filter = new FilterOre();
                break;

            case SubFilterMode.RoomNeeds:
                filter = new FilterRoomNeeds();
                break;

            case SubFilterMode.Statue:
                filter = new FilterStatue();
                break;

            case SubFilterMode.Banner:
                filter = new FilterBanner();
                break;

            case SubFilterMode.Crate:
                filter = new FilterCrate();
                break;

            case SubFilterMode.OtherPlaceables:
                filter = new FilterOtherPlaceable();
                break;

            default:
                filter = new FilterPlaceable();
                break;
            }
            return(filter);
        }
Пример #3
0
        public override bool Passes(Item item)
        {
            ItemFilter plac = new FilterPlaceable();

            result = false;
            if (plac.Passes(item))
            {
                result = true;
                foreach (var filter in blacklist)
                {
                    if (filter.Passes(item))
                    {
                        result = false;
                    }
                }
            }
            return(result);
        }
Пример #4
0
        public override bool Passes(Item item)
        {
            ItemFilter placeable = new FilterPlaceable();
            bool       rn        = false;

            if (Array.IndexOf(TileID.Sets.RoomNeeds.CountsAsChair, item.createTile) >= 0)
            {
                rn = true;
            }
            if (Array.IndexOf(TileID.Sets.RoomNeeds.CountsAsDoor, item.createTile) >= 0)
            {
                rn = true;
            }
            if (Array.IndexOf(TileID.Sets.RoomNeeds.CountsAsTable, item.createTile) >= 0)
            {
                rn = true;
            }
            if (Array.IndexOf(TileID.Sets.RoomNeeds.CountsAsTorch, item.createTile) >= 0)
            {
                rn = true;
            }
            return(placeable.Passes(item) && rn);
        }
Пример #5
0
        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());
        }
Пример #6
0
        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());
        }
Пример #7
0
        public override bool Passes(Item item)
        {
            ItemFilter placeable = new FilterPlaceable();

            return(placeable.Passes(item) && (MagicStorage.ContainsExactMatch(item.Name, "Banner")));
        }
Пример #8
0
        public override bool Passes(Item item)
        {
            ItemFilter placeable = new FilterPlaceable();

            return(placeable.Passes(item) && (MagicStorage.ContainsExactMatch(item.Name, "Block") || MagicStorage.ContainsExactMatch(item.Name, "Brick") || item.createWall > 0));
        }
Пример #9
0
        public override bool Passes(Item item)
        {
            ItemFilter placeable = new FilterPlaceable();

            return(placeable.Passes(item) && item.material);
        }