using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using Robust.Client.Audio; using Robust.Client.Graphics; using Robust.Shared.ContentPack; using Robust.Shared.Utility; namespace Robust.Client.ResourceManagement; /// /// Handles caching of /// [NotContentImplementable] public interface IResourceCache : IResourceManager { T GetResource(string path, bool useFallback = true) where T : BaseResource, new(); T GetResource(ResPath path, bool useFallback = true) where T : BaseResource, new(); bool TryGetResource(string path, [NotNullWhen(true)] out T? resource) where T : BaseResource, new(); bool TryGetResource(ResPath path, [NotNullWhen(true)] out T? resource) where T : BaseResource, new(); bool TryGetResource(AudioStream stream, [NotNullWhen(true)] out AudioResource? resource); bool TryRemoveResource(string path) where T : BaseResource, IBaseResource, new(); bool TryRemoveResource(ResPath path) where T : BaseResource, IBaseResource, new(); void ReloadResource(string path) where T : BaseResource, new(); void ReloadResource(ResPath path) where T : BaseResource, new(); void CacheResource(string path, T resource) where T : BaseResource, new(); void CacheResource(ResPath path, T resource) where T : BaseResource, new(); T GetFallback() where T : BaseResource, new(); IEnumerable> GetAllResources() where T : BaseResource, new(); // Resource load callbacks so content can hook stuff like click maps. event Action OnRawTextureLoaded; event Action OnRsiLoaded; [Obsolete("Fetch these through IoC directly instead")] IClyde Clyde { get; } [Obsolete("Fetch these through IoC directly instead")] IFontManager FontManager { get; } }