Interface IGameFileExtension
Provides Snowflake.Filesystem managed filesystem access for a IGame.
Namespace: Snowflake.Model.Game.LibraryExtensions
Assembly: Snowflake.Framework.Primitives.dll
Syntax
public interface IGameFileExtension : IGameExtension
Properties
MediaRoot
The directory to store media such as boxarts, trailers, and screenshots.
Declaration
IIndelibleDirectory MediaRoot { get; }
Property Value
| Type | Description |
|---|---|
| IIndelibleDirectory |
MiscRoot
The directory to store miscellaneous files related to the game.
Declaration
IIndelibleDirectory MiscRoot { get; }
Property Value
| Type | Description |
|---|---|
| IIndelibleDirectory |
ProgramRoot
The directory to store game ROM files and other program data such as assets and game-specific BIOS files.
Declaration
IIndelibleDirectory ProgramRoot { get; }
Property Value
| Type | Description |
|---|---|
| IIndelibleDirectory |
ResourceRoot
The directory to store resources required for the game to run.
Declaration
IIndelibleDirectory ResourceRoot { get; }
Property Value
| Type | Description |
|---|---|
| IIndelibleDirectory |
Root
A read only view on the root path of the game directory context.
Declaration
IReadOnlyDirectory Root { get; }
Property Value
| Type | Description |
|---|---|
| IReadOnlyDirectory |
RuntimeRoot
The directory to store temporary files during the execution of the game. This directory is cleared before an emulator is run, and the required files for the emulator can be copied here.
Declaration
IIndelibleDirectory RuntimeRoot { get; }
Property Value
| Type | Description |
|---|---|
| IIndelibleDirectory |
SavesRoot
The directory to persist save files for a game.
Declaration
IIndelibleDirectory SavesRoot { get; }
Property Value
| Type | Description |
|---|---|
| IIndelibleDirectory |
Methods
GetFileInfo(IFile)
Gets the IFileRecord for a given IFile in this game's root directory if it exists.
Declaration
IFileRecord GetFileInfo(IFile file)
Parameters
| Type | Name | Description |
|---|---|---|
| IFile | file | The IFile to get metadata for. |
Returns
| Type | Description |
|---|---|
| IFileRecord | The IFileRecord if it exists, null if it does not. |
GetFileInfoAsync(IFile)
Asynchronously gets the IFileRecord for a given IFile in this game's root directory if it exists.
Declaration
Task<IFileRecord> GetFileInfoAsync(IFile file)
Parameters
| Type | Name | Description |
|---|---|---|
| IFile | file | The IFile to get metadata for. |
Returns
| Type | Description |
|---|---|
| System.Threading.Tasks.Task<IFileRecord> | The IFileRecord if it exists, null if it does not. |
GetFileRecords()
Gets the list of IFileRecords that have been associated with this game. Note that IFileRecords are simply files that have metadata associated with them.
Declaration
IEnumerable<IFileRecord> GetFileRecords()
Returns
| Type | Description |
|---|---|
| System.Collections.Generic.IEnumerable<IFileRecord> |
GetFileRecordsAsync()
Asynchronously gets the list of IFileRecords that have been associated with this game. Note that IFileRecords are simply files that have metadata associated with them.
Declaration
IAsyncEnumerable<IFileRecord> GetFileRecordsAsync()
Returns
| Type | Description |
|---|---|
| System.Collections.Generic.IAsyncEnumerable<IFileRecord> |
GetRuntimeLocation()
Gets a working scratch directory for an emulator instance within RuntimeRoot.
Declaration
IDirectory GetRuntimeLocation()
Returns
| Type | Description |
|---|---|
| IDirectory | A working scratch directory for an emulator running instance. This directory is guaranteed to be unique. Emulators are responsible for their own cleanup and are well advised to delete this directory after execution completes. |
RegisterFile(IFile, String)
Registers a IFile as IFileRecord. If this IFile already exists as a IFileRecord, the mimetype will be updated with the new mimetype, but no other existing metadata will be changed.
Declaration
IFileRecord RegisterFile(IFile file, string mimetype)
Parameters
| Type | Name | Description |
|---|---|---|
| IFile | file | The IFile to create a IFileRecord for. |
| System.String | mimetype | The mimetype of the IFile, required for IFileRecords |
Returns
| Type | Description |
|---|---|
| IFileRecord | The IFileRecord associated with the provided IFile. |
RegisterFileAsync(IFile, String)
Asynchronously registers a IFile as IFileRecord. If this IFile already exists as a IFileRecord, the mimetype will be updated with the new mimetype, but no other existing metadata will be changed.
Declaration
Task<IFileRecord> RegisterFileAsync(IFile file, string mimetype)
Parameters
| Type | Name | Description |
|---|---|---|
| IFile | file | The IFile to create a IFileRecord for. |
| System.String | mimetype | The mimetype of the IFile, required for IFileRecords |
Returns
| Type | Description |
|---|---|
| System.Threading.Tasks.Task<IFileRecord> | The IFileRecord associated with the provided IFile. |