Пример #1
0
        public override async Task <IEnumerable <TextureItem> > GetTextures(IEnumerable <string> names)
        {
            var textures = new HashSet <string>(names);

            textures.IntersectWith(Textures);
            if (!textures.Any())
            {
                return(new TextureItem[0]);
            }

            var wp   = new WadPackage(_file);
            var list = new List <TextureItem>();

            foreach (var name in textures)
            {
                var entry = wp.GetEntry(name);
                if (entry == null)
                {
                    continue;
                }
                var item = new TextureItem(entry.Name, GetFlags(entry), (int)entry.Width, (int)entry.Height);
                list.Add(item);
            }

            return(list);
        }
Пример #2
0
 public WadTexturePackage(TexturePackageReference reference) : base(reference.File.Name, "Wad3")
 {
     _file = reference.File;
     using (var stream = reference.File.Open())
     {
         Textures.UnionWith(WadPackage.GetEntryNames(stream));
     }
 }
Пример #3
0
        public override async Task <TextureItem> GetTexture(string name)
        {
            if (!Textures.Contains(name))
            {
                return(null);
            }

            var wp    = new WadPackage(_file);
            var entry = wp.GetEntry(name);

            if (entry == null)
            {
                return(null);
            }
            return(new TextureItem(entry.Name, GetFlags(entry), (int)entry.Width, (int)entry.Height));
        }
Пример #4
0
 public WadStream(WadPackage package)
 {
     Package      = package;
     StreamSource = package.GetStreamSource();
 }
Пример #5
0
 public WadStreamSource(IFile file)
 {
     _package = new WadPackage(file);
     _stream  = new WadPackageStreamSource(_package);
 }