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; }
}