|
|
В проекте используется хранилище с поддержкой перезаписи файлов по виртуальному пути. Оно нужно для создания дополнений или модов. Система состоит из двух основных частей: `Storage` и `Resources`
|
|
|
|
|
|
## Storage
|
|
|
Пока что не более чем обертка над `MergedFileSystem` из `KludgeBox`. По умолчанию подключает 2 файловые системы с перезаписью в следующем порядке:
|
|
|
1. "res://"
|
|
|
2. "user://ResourcesOverride"
|
|
|
|
|
|
## Resources
|
|
|
Отвечает за непосредственную загрузку ресурсов с использованием `Storage`. В данный момент умеет загружать:
|
|
|
- 2D текстуры формата `png` и `svg`
|
|
|
- аудио формата `ogg`
|
|
|
- любой файл как текст
|
|
|
- `FsFile` ссылку на любой файл
|
|
|
|
|
|
Все загружаемые ресурсы по умолчанию кэшируются, после чего не загружаются повторно. Если нужен более тонкий контроль над загрузкой, можно использовать флаги, доступные для всех 3х методов:
|
|
|
```c#
|
|
|
public enum LoadFlags
|
|
|
{
|
|
|
Cache = 1, // Если выставлен этот флаг, то ресурс закэшируется
|
|
|
ForceReload = 1 << 1 // Если этот флаг выставлен, то ресурс будет загружен снова, вне зависимости от его наличия в кэше.
|
|
|
}
|
|
|
```
|
|
|
|
|
|
Также есть возможность чистить кэш, как точечно (`RemoveFromCache(string)`), так и весь кэш целиком (`ClearCache()`)
|
|
|
|