C# Class Nexus.Client.Games.GameModeBase

The base class for game modes.
A Game Mode is a state in which the programme manages plugins for a specific game.
Inheritance: IGameMode, IDisposable
Show file Open project: NexusMods/NexusModManager-4.5

Public Methods

Method Description
CheckSecondaryInstall ( IMod p_modMod ) : bool

Checks whether to use the secondary mod install method.

CheckSecondaryUninstall ( string p_strFileName ) : bool

Checks whether the system needs to uninstal secondary parameters.

Dispose ( ) : void

Ensures all used resources are released.

GameModeBase ( IEnvironmentInfo p_eifEnvironmentInfo ) : System

A simple constructor that initializes the object with the given values.

GetActivePluginLogSerializer ( IPluginOrderLog p_polPluginOrderLog ) : IActivePluginLogSerializer

Gets the serailizer that serializes and deserializes the list of active plugins for this game mode.

GetGameSpecificValueInstaller ( IMod p_modMod, IInstallLog p_ilgInstallLog, TxFileManager p_tfmFileManager, FileUtil p_futFileUtility, ConfirmItemOverwriteDelegate p_dlgOverwriteConfirmationDelegate ) : IGameSpecificValueInstaller

Gets the installer to use to install game specific values.

GetGameSpecificValueUpgradeInstaller ( IMod p_modMod, IInstallLog p_ilgInstallLog, TxFileManager p_tfmFileManager, FileUtil p_futFileUtility, ConfirmItemOverwriteDelegate p_dlgOverwriteConfirmationDelegate ) : IGameSpecificValueInstaller

Gets the installer to use to upgrade game specific values.

GetModFormatAdjustedPath ( IModFormat p_mftModFormat, string p_strPath ) : string

Adjusts the given path to be relative to the installation path of the game mode.

This is basically a hack to allow older FOMods to work. Older FOMods assumed the installation path of Fallout games to be <games>/data, but this new manager specifies the installation path to be <games>. This breaks the older FOMods, so this method can detect the older FOMods (or other mod formats that needs massaging), and adjusts the given path to be relative to the new instaalation path to make things work.

GetModFormatAdjustedPath ( IModFormat p_mftModFormat, string p_strPath, IMod p_modMod ) : string

Adjusts the given path to be relative to the installation path of the game mode.

This is basically a hack to allow older FOMods to work. Older FOMods assumed the installation path of Fallout games to be <games>/data, but this new manager specifies the installation path to be <games>. This breaks the older FOMods, so this method can detect the older FOMods (or other mod formats that needs massaging), and adjusts the given path to be relative to the new instaalation path to make things work.

GetPluginDiscoverer ( ) : IPluginDiscoverer

Gets the discoverer to use to find the plugins managed by this game mode.

GetPluginFactory ( ) : IPluginFactory

Gets the factory that builds plugins for this game mode.

GetPluginOrderLogSerializer ( ) : IPluginOrderLogSerializer

Gets the serializer that serializes and deserializes the plugin order for this game mode.

GetPluginOrderValidator ( ) : IPluginOrderValidator

Gets the object that validates plugin order for this game mode.

GetUpdaters ( ) : IEnumerable

Gets the updaters used by the game mode.

IsCriticalPlugin ( Plugin p_plgPlugin ) : bool

Determines if the given plugin is critical to the current game.

Critical plugins cannot be reordered, cannot be deleted, cannot be deactivated, and cannot have plugins ordered above them.

ModFileMerge ( ReadOnlyObservableList p_rolActiveMods, IMod p_modMod, bool p_booRemove ) : void

Merges the mod files if requested by the game.

SortPlugins ( IList p_lstPlugins ) : string[]

Automatically sorts the given plugin list.

Protected Methods

Method Description
CreateGameModeDescriptor ( ) : IGameModeDescriptor

Creates a game mode descriptor for the current game mode.

Dispose ( bool p_booDisposing ) : void

Disposes of the unamanged resources.

Method Details

CheckSecondaryInstall() public method

Checks whether to use the secondary mod install method.
public CheckSecondaryInstall ( IMod p_modMod ) : bool
p_modMod IMod The mod to be installed.
return bool

CheckSecondaryUninstall() public method

Checks whether the system needs to uninstal secondary parameters.
public CheckSecondaryUninstall ( string p_strFileName ) : bool
p_strFileName string The filename.
return bool

CreateGameModeDescriptor() protected abstract method

Creates a game mode descriptor for the current game mode.
protected abstract CreateGameModeDescriptor ( ) : IGameModeDescriptor
return IGameModeDescriptor

Dispose() public method

Ensures all used resources are released.
public Dispose ( ) : void
return void

Dispose() protected method

Disposes of the unamanged resources.
protected Dispose ( bool p_booDisposing ) : void
p_booDisposing bool Whether the method is being called from the method.
return void

GameModeBase() public method

A simple constructor that initializes the object with the given values.
public GameModeBase ( IEnvironmentInfo p_eifEnvironmentInfo ) : System
p_eifEnvironmentInfo IEnvironmentInfo The application's environment info.
return System

GetActivePluginLogSerializer() public abstract method

Gets the serailizer that serializes and deserializes the list of active plugins for this game mode.
public abstract GetActivePluginLogSerializer ( IPluginOrderLog p_polPluginOrderLog ) : IActivePluginLogSerializer
p_polPluginOrderLog IPluginOrderLog The tracking plugin order for the current game mode.
return IActivePluginLogSerializer

GetGameSpecificValueInstaller() public abstract method

Gets the installer to use to install game specific values.
public abstract GetGameSpecificValueInstaller ( IMod p_modMod, IInstallLog p_ilgInstallLog, TxFileManager p_tfmFileManager, FileUtil p_futFileUtility, ConfirmItemOverwriteDelegate p_dlgOverwriteConfirmationDelegate ) : IGameSpecificValueInstaller
p_modMod IMod The mod being installed.
p_ilgInstallLog IInstallLog The install log to use to log the installation of the game specific values.
p_tfmFileManager ChinhDo.Transactions.TxFileManager The transactional file manager to use to interact with the file system.
p_futFileUtility Nexus.Client.Util.FileUtil The file utility class.
p_dlgOverwriteConfirmationDelegate ConfirmItemOverwriteDelegate The method to call in order to confirm an overwrite.
return IGameSpecificValueInstaller

GetGameSpecificValueUpgradeInstaller() public abstract method

Gets the installer to use to upgrade game specific values.
public abstract GetGameSpecificValueUpgradeInstaller ( IMod p_modMod, IInstallLog p_ilgInstallLog, TxFileManager p_tfmFileManager, FileUtil p_futFileUtility, ConfirmItemOverwriteDelegate p_dlgOverwriteConfirmationDelegate ) : IGameSpecificValueInstaller
p_modMod IMod The mod being upgraded.
p_ilgInstallLog IInstallLog The install log to use to log the installation of the game specific values.
p_tfmFileManager ChinhDo.Transactions.TxFileManager The transactional file manager to use to interact with the file system.
p_futFileUtility Nexus.Client.Util.FileUtil The file utility class.
p_dlgOverwriteConfirmationDelegate ConfirmItemOverwriteDelegate The method to call in order to confirm an overwrite.
return IGameSpecificValueInstaller

GetModFormatAdjustedPath() public method

Adjusts the given path to be relative to the installation path of the game mode.
This is basically a hack to allow older FOMods to work. Older FOMods assumed the installation path of Fallout games to be <games>/data, but this new manager specifies the installation path to be <games>. This breaks the older FOMods, so this method can detect the older FOMods (or other mod formats that needs massaging), and adjusts the given path to be relative to the new instaalation path to make things work.
public GetModFormatAdjustedPath ( IModFormat p_mftModFormat, string p_strPath ) : string
p_mftModFormat IModFormat The mod format for which to adjust the path.
p_strPath string The path to adjust
return string

GetModFormatAdjustedPath() public method

Adjusts the given path to be relative to the installation path of the game mode.
This is basically a hack to allow older FOMods to work. Older FOMods assumed the installation path of Fallout games to be <games>/data, but this new manager specifies the installation path to be <games>. This breaks the older FOMods, so this method can detect the older FOMods (or other mod formats that needs massaging), and adjusts the given path to be relative to the new instaalation path to make things work.
public GetModFormatAdjustedPath ( IModFormat p_mftModFormat, string p_strPath, IMod p_modMod ) : string
p_mftModFormat IModFormat The mod format for which to adjust the path.
p_strPath string The path to adjust.
p_modMod IMod The mod.
return string

GetPluginDiscoverer() public abstract method

Gets the discoverer to use to find the plugins managed by this game mode.
public abstract GetPluginDiscoverer ( ) : IPluginDiscoverer
return IPluginDiscoverer

GetPluginFactory() public abstract method

Gets the factory that builds plugins for this game mode.
public abstract GetPluginFactory ( ) : IPluginFactory
return IPluginFactory

GetPluginOrderLogSerializer() public abstract method

Gets the serializer that serializes and deserializes the plugin order for this game mode.
public abstract GetPluginOrderLogSerializer ( ) : IPluginOrderLogSerializer
return IPluginOrderLogSerializer

GetPluginOrderValidator() public abstract method

Gets the object that validates plugin order for this game mode.
public abstract GetPluginOrderValidator ( ) : IPluginOrderValidator
return IPluginOrderValidator

GetUpdaters() public abstract method

Gets the updaters used by the game mode.
public abstract GetUpdaters ( ) : IEnumerable
return IEnumerable

IsCriticalPlugin() public method

Determines if the given plugin is critical to the current game.
Critical plugins cannot be reordered, cannot be deleted, cannot be deactivated, and cannot have plugins ordered above them.
public IsCriticalPlugin ( Plugin p_plgPlugin ) : bool
p_plgPlugin Nexus.Client.Plugins.Plugin The plugin for which it is to be determined whether or not it is critical.
return bool

ModFileMerge() public method

Merges the mod files if requested by the game.
public ModFileMerge ( ReadOnlyObservableList p_rolActiveMods, IMod p_modMod, bool p_booRemove ) : void
p_rolActiveMods ReadOnlyObservableList The list of active mods.
p_modMod IMod The current mod.
p_booRemove bool Whether we're adding or removing the mod.
return void

SortPlugins() public method

Automatically sorts the given plugin list.
public SortPlugins ( IList p_lstPlugins ) : string[]
p_lstPlugins IList The plugin list to sort.
return string[]