Exemple #1
0
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
Exemple #2
0
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
Exemple #3
0
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