Editor/AssetBrowserAddon/locations/ModelLocation.cs
using System.IO;
using System;
using System.Collections.Generic;
using System.Linq;
using Editor;
using Sandbox;
namespace Editor;
public record ModelLocation : LocalAssetBrowser.Location
{
public override bool IsAggregate => true;
public ModelLocation() : base("Models", "view_in_ar")
{
Path = "@models";
}
public override bool CanGoUp() => false;
public override IEnumerable<LocalAssetBrowser.Location> GetDirectories() => Enumerable.Empty<LocalAssetBrowser.Location>();
public override IEnumerable<FileInfo> GetFiles()
{
var materialExtensions = new HashSet<string>(StringComparer.OrdinalIgnoreCase)
{
".vmdl"
};
return AssetSystem.All
.Where(asset =>
{
var ext = System.IO.Path.GetExtension(asset.AbsolutePath);
return materialExtensions.Contains(ext);
})
.OrderBy(asset => System.IO.Path.GetFileNameWithoutExtension(asset.AbsolutePath),
StringComparer.OrdinalIgnoreCase)
.Select(asset => new FileInfo(asset.AbsolutePath));
}
}