public IGameDataEntry GetEntryAtPath(string path) { // resolve the path, portion by portion var parts = path.Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries); IGameDataDirectoryEntry entry = m_root; foreach (var part in parts) { if (part[0] == '.') { continue; } var thisEntry = entry.GetEntry(part); if (thisEntry is IGameDataFileEntry file) { return(file); } entry = (thisEntry as IGameDataDirectoryEntry); } return(entry); }
public AliasedDirectoryEntry(string alias, IGameDataDirectoryEntry entry) : base(alias, entry) { }
public void Add(IGameDataDirectoryEntry entry) { m_directories = m_directories.Append(entry); }
public static IGameDataDirectoryEntry GetDirectoryEntry(this IGameDataDirectoryEntry entry, string name) => (entry.GetEntry(name) as IGameDataDirectoryEntry);