This commit is contained in:
Holt59
2024-08-09 08:30:28 +00:00
parent 2cccff5b49
commit 1739c60009
105 changed files with 1780 additions and 184 deletions
+7
View File
@@ -0,0 +1,7 @@
GameFeature
===========
.. currentmodule:: mobase
.. autoclass:: GameFeature
:show-inheritance:
+2 -2
View File
@@ -12,7 +12,7 @@ GamePlugins
~GamePlugins.getLoadOrder
~GamePlugins.lightPluginsAreSupported
~GamePlugins.overridePluginsAreSupported
~GamePlugins.mediumPluginsAreSupported
~GamePlugins.readPluginLists
~GamePlugins.writePluginLists
@@ -20,6 +20,6 @@ GamePlugins
.. automethod:: getLoadOrder
.. automethod:: lightPluginsAreSupported
.. automethod:: overridePluginsAreSupported
.. automethod:: mediumPluginsAreSupported
.. automethod:: readPluginLists
.. automethod:: writePluginLists
+23
View File
@@ -0,0 +1,23 @@
IGameFeatures
=============
.. currentmodule:: mobase
.. autoclass:: IGameFeatures
:show-inheritance:
.. rubric:: Methods Summary
.. autosummary::
~IGameFeatures.gameFeature
~IGameFeatures.registerFeature
~IGameFeatures.unregisterFeature
~IGameFeatures.unregisterFeatures
.. rubric:: Methods Documentation
.. automethod:: gameFeature
.. automethod:: registerFeature
.. automethod:: unregisterFeature
.. automethod:: unregisterFeatures
+2
View File
@@ -18,6 +18,7 @@ IOrganizer
~IOrganizer.downloadsPath
~IOrganizer.findFileInfos
~IOrganizer.findFiles
~IOrganizer.gameFeatures
~IOrganizer.getFileOrigins
~IOrganizer.getGame
~IOrganizer.getPluginDataPath
@@ -65,6 +66,7 @@ IOrganizer
.. automethod:: downloadsPath
.. automethod:: findFileInfos
.. automethod:: findFiles
.. automethod:: gameFeatures
.. automethod:: getFileOrigins
.. automethod:: getGame
.. automethod:: getPluginDataPath
+4 -4
View File
@@ -15,12 +15,11 @@ IPluginGame
~IPluginGame.binaryName
~IPluginGame.dataDirectory
~IPluginGame.detectGame
~IPluginGame.displayGameName
~IPluginGame.documentsDirectory
~IPluginGame.enabledPlugins
~IPluginGame.executableForcedLoads
~IPluginGame.executables
~IPluginGame.feature
~IPluginGame.featureList
~IPluginGame.gameDirectory
~IPluginGame.gameIcon
~IPluginGame.gameName
@@ -36,6 +35,7 @@ IPluginGame
~IPluginGame.listSaves
~IPluginGame.loadOrderMechanism
~IPluginGame.looksValid
~IPluginGame.lootGameName
~IPluginGame.nexusGameID
~IPluginGame.nexusModOrganizerID
~IPluginGame.primaryPlugins
@@ -55,12 +55,11 @@ IPluginGame
.. automethod:: binaryName
.. automethod:: dataDirectory
.. automethod:: detectGame
.. automethod:: displayGameName
.. automethod:: documentsDirectory
.. automethod:: enabledPlugins
.. automethod:: executableForcedLoads
.. automethod:: executables
.. automethod:: feature
.. automethod:: featureList
.. automethod:: gameDirectory
.. automethod:: gameIcon
.. automethod:: gameName
@@ -76,6 +75,7 @@ IPluginGame
.. automethod:: listSaves
.. automethod:: loadOrderMechanism
.. automethod:: looksValid
.. automethod:: lootGameName
.. automethod:: nexusGameID
.. automethod:: nexusModOrganizerID
.. automethod:: primaryPlugins
+4
View File
@@ -12,8 +12,10 @@ IPluginList
~IPluginList.hasLightExtension
~IPluginList.hasMasterExtension
~IPluginList.hasNoRecords
~IPluginList.isLightFlagged
~IPluginList.isMasterFlagged
~IPluginList.isMediumFlagged
~IPluginList.loadOrder
~IPluginList.masters
~IPluginList.onPluginMoved
@@ -31,8 +33,10 @@ IPluginList
.. automethod:: hasLightExtension
.. automethod:: hasMasterExtension
.. automethod:: hasNoRecords
.. automethod:: isLightFlagged
.. automethod:: isMasterFlagged
.. automethod:: isMediumFlagged
.. automethod:: loadOrder
.. automethod:: masters
.. automethod:: onPluginMoved
@@ -10,10 +10,14 @@ IPluginPreview
.. autosummary::
~IPluginPreview.genDataPreview
~IPluginPreview.genFilePreview
~IPluginPreview.supportedExtensions
~IPluginPreview.supportsArchives
.. rubric:: Methods Documentation
.. automethod:: genDataPreview
.. automethod:: genFilePreview
.. automethod:: supportedExtensions
.. automethod:: supportsArchives
+3 -5
View File
@@ -64,10 +64,8 @@ These plugins (shall eventually) implement all the game specific features and fu
able to add support for further games.
The plugin is also responsible to help MO determine if (and where) the game is installed in the first place.
Since supporting a game properly requires extensions in many places of the UI.
To allow this without creating one huge plugin interface that involves every aspect of MO, game plugins
expose a *feature list*.
The list of possible features can be found in the "game_features" project and each feature can itself be
considered a plugin interface.
To allow this without creating one huge plugin interface that involves every aspect of MO,
game plugins can register only the features they need to MO2 using :meth:`registerFeature<mobase.IGameFeatures.registerFeature>`
As an example for a game feature take BSA invalidation: If the game requires BSA invalidation it will implement
this feature.
@@ -147,4 +145,4 @@ File Mappings
This interface allows plugins to add virtual file (or directory) links to the virtual file system in addition to the
mod files.
Profile-local save games, ini-files and load-orders are all implemented this way in MO2.
Profile-local save games, ini-files and load-orders are all implemented this way in MO2.