pub struct GenericGame { /* private fields */ }Expand description
A generic game with loose file drop support.
Implementations§
Trait Implementations§
Source§impl GamePlugin for GenericGame
impl GamePlugin for GenericGame
Source§fn display_name(&self) -> &str
fn display_name(&self) -> &str
Human-readable display name.
Source§fn detect_install(&self) -> Option<PathBuf>
fn detect_install(&self) -> Option<PathBuf>
Attempt to detect the game’s install location.
Default: delegates to
detection::find_game_install(self.game_id()).Source§fn mod_directory(&self, install: &Path) -> PathBuf
fn mod_directory(&self, install: &Path) -> PathBuf
Return the mod directory relative to the install path.
Source§fn executable_dir(&self, install: &Path) -> PathBuf
fn executable_dir(&self, install: &Path) -> PathBuf
Return the directory containing the game executable, relative to the install root.
Used to locate proxy DLLs that need Wine overrides.
Source§fn wine_dll_overrides(&self, install: &Path) -> SmallVec<[String; 4]>
fn wine_dll_overrides(&self, install: &Path) -> SmallVec<[String; 4]>
Scan the game directory for proxy/hook DLLs that need Wine
n,b overrides. Read morefn steam_app_id_u32(&self) -> Option<u32>
fn nexus_game_domain(&self) -> Option<&str>
Source§fn mod_root(&self, install: &Path) -> Result<PathBuf>
fn mod_root(&self, install: &Path) -> Result<PathBuf>
Resolve the actual deployment root for enabled mods. Read more
Source§fn deploy(&self, staging: &Path, target: &Path) -> Result<()>
fn deploy(&self, staging: &Path, target: &Path) -> Result<()>
Deploy staged mods into the game’s mod directory.
Default: recursive symlink farm via
modde_core::fs::deploy_symlinks.Source§fn deploy_to_install(&self, staging: &Path, install: &Path) -> Result<()>
fn deploy_to_install(&self, staging: &Path, install: &Path) -> Result<()>
Deploy staged mods using the game install root as context. Read more
Source§fn post_deploy(&self, _install: &Path) -> Result<()>
fn post_deploy(&self, _install: &Path) -> Result<()>
Run any post-deployment steps (e.g.
REDmod deploy).Source§fn save_directory(&self) -> Option<PathBuf>
fn save_directory(&self) -> Option<PathBuf>
Return the save directory for this game, if known.
Source§fn deploy_targets(&self) -> &'static [DeployTarget]
fn deploy_targets(&self) -> &'static [DeployTarget]
Alternate deployment roots this game exposes to the installer
(e.g. user-config dirs for INI tweak packs). Default: none, in
which case the installer only ever stages into the game install
dir. The order is significant: when the analyzer needs to pick
a default target for a given
DeployTargetKind it takes the
first one of that kind.Source§fn resolve_deploy_target(&self, _id: &str, _install: &Path) -> Option<PathBuf>
fn resolve_deploy_target(&self, _id: &str, _install: &Path) -> Option<PathBuf>
Resolve a
DeployTarget::id this plugin advertises to a real
filesystem path, using the live install dir for any path that
must be derived from it (e.g. Steam compatdata adjacent to
steamapps/common/<game>). Returns None if the target id is
unknown to this plugin or the path cannot be resolved on this
system (e.g. the Wine prefix doesn’t exist yet).Source§fn supports_save_profiles(&self) -> bool
fn supports_save_profiles(&self) -> bool
Whether this game participates in modde’s per-profile save layer. Read more
Source§fn classify_mod(&self, _mod_dir: &Path) -> ModSafety
fn classify_mod(&self, _mod_dir: &Path) -> ModSafety
Classify whether a mod is save-breaking based on its installed content. Read more
Source§fn wine_dll_overrides_from_staging(
&self,
_staging: &Path,
) -> SmallVec<[String; 4]>
fn wine_dll_overrides_from_staging( &self, _staging: &Path, ) -> SmallVec<[String; 4]>
Scan the staging directory for proxy DLLs that mods deploy.
This catches DLLs that may have been deleted by other tools (e.g. fgmod)
from the game directory but are still needed.
fn ini_file_names(&self) -> &[&str]
fn archive_extensions(&self) -> &[&str]
fn has_plugin_system(&self) -> bool
fn plugins_txt_folder(&self) -> Option<&str>
Source§fn nexus_game_id_u32(&self) -> Option<u32>
fn nexus_game_id_u32(&self) -> Option<u32>
Numeric Nexus game ID. Required by the GraphQL v2 API for
browse/search queries (which take
gameId: Int, not a domain
string). Games that only speak REST can leave this None.Source§fn analyze_mod_archive(&self, _extracted_dir: &Path) -> Option<InstallMethod>
fn analyze_mod_archive(&self, _extracted_dir: &Path) -> Option<InstallMethod>
Claim an extracted archive as a game-specific install method. Read more
Source§fn recognizes_bare_layout(&self, _extracted_dir: &Path) -> bool
fn recognizes_bare_layout(&self, _extracted_dir: &Path) -> bool
Decide whether an extracted archive drops cleanly into the game’s
mod dir without any staging (e.g. a Skyrim archive with a
top-level
Data/ directory, or a Cyberpunk archive with r6/). Read moreSource§fn classify_extension(&self, ext: &str) -> ContentCategory
fn classify_extension(&self, ext: &str) -> ContentCategory
Classify a file extension into a content category.
Source§fn summarize_content(&self, mod_dir: &Path) -> ContentSummary
fn summarize_content(&self, mod_dir: &Path) -> ContentSummary
Scan a mod directory and return a content summary.
Auto Trait Implementations§
impl Freeze for GenericGame
impl RefUnwindSafe for GenericGame
impl Send for GenericGame
impl Sync for GenericGame
impl Unpin for GenericGame
impl UnsafeUnpin for GenericGame
impl UnwindSafe for GenericGame
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more