Reworked launcher updates to use the big button.

This commit is contained in:
2026-08-28 20:30:06 +02:00
parent 9d3ec58f0c
commit f6e2d0923b

View File

@@ -24,6 +24,8 @@ class PrimaryAction(str, Enum):
INSTALL = "INSTALL" INSTALL = "INSTALL"
UPDATE = "UPDATE" UPDATE = "UPDATE"
PLAY = "PLAY" PLAY = "PLAY"
CHECKING = "CHECKING…"
LAUNCHER_UPDATE = "UPDATE LAUNCHER"
@dataclass(frozen=True) @dataclass(frozen=True)
@@ -40,8 +42,10 @@ class GameInstallationStatus:
def inspect_game_installation( def inspect_game_installation(
paths: AppPaths, paths: AppPaths,
official_build: int | None = None, official_build: int | None = None,
*,
compatibility_ready: bool | None = True,
) -> GameInstallationStatus: ) -> GameInstallationStatus:
"""Select Install, Update, or Play without modifying the installation. """Select the primary launcher action without modifying the installation.
A completed native sync is the verified source for the local depot build. A completed native sync is the verified source for the local depot build.
When the official build cannot be checked, a complete local game remains When the official build cannot be checked, a complete local game remains
@@ -54,6 +58,8 @@ def inspect_game_installation(
or official_build < 0 or official_build < 0
): ):
raise ValueError("official build must be a non-negative integer") raise ValueError("official build must be a non-negative integer")
if compatibility_ready is not None and not isinstance(compatibility_ready, bool):
raise ValueError("compatibility readiness must be a boolean or null")
missing_files = tuple( missing_files = tuple(
relative relative
@@ -68,6 +74,10 @@ def inspect_game_installation(
local_build is None or local_build < official_build local_build is None or local_build < official_build
): ):
action = PrimaryAction.UPDATE action = PrimaryAction.UPDATE
elif compatibility_ready is None:
action = PrimaryAction.CHECKING
elif not compatibility_ready:
action = PrimaryAction.LAUNCHER_UPDATE
else: else:
action = PrimaryAction.PLAY action = PrimaryAction.PLAY
return GameInstallationStatus( return GameInstallationStatus(