public override TexturePackage CreatePackage(string package) { var tp = new TexturePackage(package, this); var list = new List<TextureItem>(); try { HLLib.Initialize(); using (var pack = new HLLib.Package(package)) { var folder = pack.GetRootFolder(); var items = folder.GetItems(); list.AddRange(items .Select(item => new HLLib.WADFile(item)) .Where(wad => IsValidLumpType(wad.GetLumpType())) .Select(wad => new TextureItem(tp, StripExtension(wad.Name), wad.Width, wad.Height))); } } finally { HLLib.Shutdown(); } foreach (var ti in list) { tp.AddTexture(ti); } return tp; }
public override IEnumerable <TexturePackage> CreatePackages(IEnumerable <string> sourceRoots, IEnumerable <string> additionalPackages, IEnumerable <string> blacklist, IEnumerable <string> whitelist) { // Sprite provider ignores the black/whitelists var dirs = sourceRoots.Union(additionalPackages).Where(Directory.Exists).Select(Path.GetFullPath).Select(x => x.ToLowerInvariant()).Distinct().ToList(); var tp = new TexturePackage(String.Join(";", dirs), "sprites", this) { IsBrowsable = false }; foreach (var dir in dirs) { var sprs = Directory.GetFiles(dir, "*.spr", SearchOption.AllDirectories); if (!sprs.Any()) { continue; } foreach (var spr in sprs) { var size = GetSize(spr); var rel = Path.GetFullPath(spr).Substring(dir.Length).TrimStart('/', '\\').Replace('\\', '/'); tp.AddTexture(new TextureItem(tp, rel.ToLowerInvariant(), TextureFlags.Transparent, size.Width, size.Height)); } } if (!tp.Items.Any()) { yield break; } yield return(tp); }
public override TexturePackage CreatePackage(IFile package) { var tp = new TexturePackage(package, this); var items = package.GetFiles(".*\\.spr$", true) .Select(x => CreateTextureItem(tp, x)); foreach (var ti in items) { tp.AddTexture(ti); } return tp; }
public override TexturePackage CreatePackage(string package) { var tp = new TexturePackage(package, this); var items = Directory.GetFiles(package, "*.spr", SearchOption.AllDirectories) .Select(x => CreateTextureItem(tp, x)); foreach (var ti in items) { tp.AddTexture(ti); } return tp; }
public override IEnumerable<TexturePackage> CreatePackages(IEnumerable<string> sourceRoots, IEnumerable<string> additionalPackages, IEnumerable<string> blacklist, IEnumerable<string> whitelist) { // Sprite provider ignores the black/whitelists var dirs = sourceRoots.Union(additionalPackages).Where(Directory.Exists).Select(Path.GetFullPath).Select(x => x.ToLowerInvariant()).Distinct().ToList(); var tp = new TexturePackage(String.Join(";", dirs), "sprites", this) {IsBrowsable = false}; foreach (var dir in dirs) { var sprs = Directory.GetFiles(dir, "*.spr", SearchOption.AllDirectories); if (!sprs.Any()) continue; foreach (var spr in sprs) { var size = GetSize(spr); var rel = Path.GetFullPath(spr).Substring(dir.Length).TrimStart('/', '\\').Replace('\\', '/'); tp.AddTexture(new TextureItem(tp, rel.ToLowerInvariant(), TextureFlags.Transparent, size.Width, size.Height)); } } if (!tp.Items.Any()) yield break; yield return tp; }
private TexturePackage CreatePackage(string package) { try { var fi = new FileInfo(package); if (!fi.Exists) { return(null); } var tp = new TexturePackage(package, Path.GetFileNameWithoutExtension(package), this); if (LoadFromCache(tp)) { return(tp); } var pack = _roots.Values.FirstOrDefault(x => x.Package.PackageFile.FullName == fi.FullName); if (pack == null) { _roots.Add(tp, pack = new Pk3Stream(new ZipPackage(fi))); } foreach (var file in pack.Package.SearchFiles("textures", @"\.(jpg|png|tga)$", true)) { var size = GetImageSize(pack.StreamSource, file); var fname = file.Substring("textures/".Length); fname = fname.Substring(0, fname.Length - 4); var ti = new TextureItem(tp, fname, GetFlags(fname), size.Width, size.Height) { Reference = file }; tp.AddTexture(ti); } SaveToCache(tp); return(tp); } catch { return(null); } }
private TexturePackage CreatePackage(string package) { try { var fi = new FileInfo(package); if (!fi.Exists) { return(null); } var tp = new TexturePackage(package, Path.GetFileNameWithoutExtension(package), this); if (LoadFromCache(tp)) { return(tp); } var list = new List <TextureItem>(); var pack = _roots.Values.FirstOrDefault(x => x.Package.PackageFile.FullName == fi.FullName); if (pack == null) { _roots.Add(tp, pack = new WadStream(new WadPackage(fi))); } list.AddRange(pack.Package.GetEntries().OfType <WadEntry>().Select(x => new TextureItem(tp, x.Name, GetFlags(x.Name), (int)x.Width, (int)x.Height))); foreach (var ti in list) { tp.AddTexture(ti); } SaveToCache(tp); return(tp); } catch { return(null); } }
private TexturePackage CreatePackage(string package) { try { var fi = new FileInfo(package); if (!fi.Exists) return null; var tp = new TexturePackage(package, Path.GetFileNameWithoutExtension(package), this); if (LoadFromCache(tp)) return tp; var list = new List<TextureItem>(); var pack = _roots.Values.FirstOrDefault(x => x.Package.PackageFile.FullName == fi.FullName); if (pack == null) _roots.Add(tp, pack = new WadStream(new WadPackage(fi))); list.AddRange(pack.Package.GetEntries().OfType<WadEntry>().Select(x => new TextureItem(tp, x.Name, GetFlags(x.Name), (int) x.Width, (int) x.Height))); foreach (var ti in list) { tp.AddTexture(ti); } SaveToCache(tp); return tp; } catch { return null; } }