def _gather_version_data(arkman: ArkSteamManager, config: ConfigFile): # Gather identities and versions of all involved components if not arkman.mod_data_cache or not arkman.getGameBuildId(): raise AssertionError("ArkManager must be fully initialised") key = dict(format=5, core=dict(buildid=arkman.getGameBuildId()), mods=dict((modid, arkman.getModData(modid)['version']) for modid in config.mods)) # type: ignore return key
def _gather_relations(arkman: ArkSteamManager, basepath: Path): relations: List[Tuple[str, str]] # list of (name, parent) inclusions = arkman.config.optimisation.SearchInclude exclusions = arkman.config.optimisation.SearchIgnore basepath.mkdir(parents=True, exist_ok=True) # Scan core (or read cache) cachefile = basepath / 'core' version_key = dict(format=FORMAT_VERSION, game_buildid=arkman.getGameBuildId(), inclusions=inclusions, exclusions=exclusions) relations = cache_data(version_key, cachefile, lambda _: _scan_core(arkman)) # Scan /Game/Mods/<modid> for each installed mod (or read cache) for modid in get_managed_mods(): cachefile = basepath / f'mod-{modid}' mod_version = arkman.getModData(modid)['version'] # type:ignore version_key = dict(format=FORMAT_VERSION, mod_version=mod_version, inclusions=inclusions, exclusions=exclusions) mod_relations = cache_data(version_key, cachefile, lambda _: _scan_mod(modid, arkman)) relations.extend(mod_relations) return relations
def _gather_version_data(arkman: ArkSteamManager, config: ConfigFile): # Gather identities and versions of all involved components key = dict(format=4, core=dict(version=arkman.getGameVersion(), buildid=arkman.getGameBuildId()), mods=dict((modid, arkman.getModData(modid)['version']) for modid in config.mods)) # type: ignore return key