public static Filter CreateFilter(string filter) { var f = filter.ToLowerInvariant(); switch (f) { case "<flats>": return(new NamespaceFilter(LumpNamespace.Flats)); case "<patches>": return(new NamespaceFilter(LumpNamespace.Patches)); case "<sprites>": return(new NamespaceFilter(LumpNamespace.Sprites)); case "<maps>": return(new MapFilter(MapLump.Default)); } if (f.StartsWith("<maps-") && f.EndsWith(">")) { MapLump lumps = MapLump.None; foreach (var split in f.Substring(6, f.Length - 7).Split('-')) { switch (split) { case "all": lumps |= MapLump.All; continue; case "bm": lumps |= MapLump.BLOCKMAP; continue; case "ld": lumps |= MapLump.LINEDEFS; continue; case "n": lumps |= MapLump.NODES; continue; case "r": lumps |= MapLump.REJECTS; continue; case "s": lumps |= MapLump.SECTORS; continue; case "sd": lumps |= MapLump.SIDEDEFS; continue; case "sg": lumps |= MapLump.SEGS; continue; case "ss": lumps |= MapLump.SSECTORS; continue; case "t": lumps |= MapLump.THINGS; continue; case "v": lumps |= MapLump.VERTEXES; continue; } } return(new MapFilter(lumps)); } return(new RegexFilter(filter)); }
bool HasFlag(MapLump lumps) { return((this.lumps & lumps) == lumps); }
bool HasFlag(MapLump lumps) { return (this.lumps & lumps) == lumps; }
public MapFilter(MapLump lumps) { this.lumps = lumps; }