first commit
This commit is contained in:
@@ -0,0 +1,103 @@
|
||||
/**
|
||||
* Contrats partagés entre le process main et le renderer.
|
||||
* Tout passe par le bridge `window.api` exposé dans le preload.
|
||||
*/
|
||||
|
||||
/** Profil du joueur après login Microsoft. */
|
||||
export interface PlayerProfile {
|
||||
uuid: string
|
||||
name: string
|
||||
/** URL du skin/tête si disponible. */
|
||||
skinUrl?: string
|
||||
}
|
||||
|
||||
/** Phase courante de la séquence "Jouer". */
|
||||
export type LaunchPhase =
|
||||
| 'idle'
|
||||
| 'auth'
|
||||
| 'pack-meta'
|
||||
| 'java'
|
||||
| 'minecraft'
|
||||
| 'neoforge'
|
||||
| 'modpack'
|
||||
| 'launching'
|
||||
| 'running'
|
||||
| 'done'
|
||||
| 'error'
|
||||
|
||||
/** Événement de progression envoyé main -> renderer pendant "Jouer". */
|
||||
export interface ProgressEvent {
|
||||
phase: LaunchPhase
|
||||
/** Libellé lisible à afficher. */
|
||||
message: string
|
||||
/** 0..1 si déterminable, sinon undefined (barre indéterminée). */
|
||||
progress?: number
|
||||
}
|
||||
|
||||
/** Ligne de log du jeu (stdout/stderr) streamée vers la console du renderer. */
|
||||
export interface GameLogLine {
|
||||
stream: 'stdout' | 'stderr'
|
||||
line: string
|
||||
}
|
||||
|
||||
/** Infos du flow "device code" Microsoft à présenter à l'utilisateur. */
|
||||
export interface DeviceCodeInfo {
|
||||
userCode: string
|
||||
verificationUri: string
|
||||
message: string
|
||||
}
|
||||
|
||||
/** État de la mise à jour automatique du launcher (electron-updater). */
|
||||
export type UpdateState =
|
||||
| 'checking'
|
||||
| 'available'
|
||||
| 'downloading'
|
||||
| 'downloaded'
|
||||
| 'none'
|
||||
| 'error'
|
||||
|
||||
/** Statut d'update envoyé main -> renderer pour piloter le bandeau de maj. */
|
||||
export interface UpdateStatus {
|
||||
state: UpdateState
|
||||
/** Version distante (ex. "0.2.0") quand connue. */
|
||||
version?: string
|
||||
/** 0..1 pendant le téléchargement. */
|
||||
progress?: number
|
||||
/** Message d'erreur éventuel (state === 'error'). */
|
||||
message?: string
|
||||
}
|
||||
|
||||
/** Réglages utilisateur persistés localement. */
|
||||
export interface UserSettings {
|
||||
/** RAM max allouée à la JVM, en Mo. */
|
||||
maxMemoryMb: number
|
||||
/** Args JVM additionnels (avancé). */
|
||||
extraJvmArgs: string[]
|
||||
}
|
||||
|
||||
export const DEFAULT_SETTINGS: UserSettings = {
|
||||
maxMemoryMb: 8192,
|
||||
extraJvmArgs: []
|
||||
}
|
||||
|
||||
/** Noms de canaux IPC (invoke renderer -> main). */
|
||||
export const IPC = {
|
||||
authLogin: 'auth:login',
|
||||
authLogout: 'auth:logout',
|
||||
authGetProfile: 'auth:getProfile',
|
||||
play: 'play:start',
|
||||
settingsGet: 'settings:get',
|
||||
settingsSet: 'settings:set',
|
||||
appVersion: 'app:version',
|
||||
openInstanceDir: 'instance:open',
|
||||
updateInstall: 'update:install'
|
||||
} as const
|
||||
|
||||
/** Noms d'événements (send main -> renderer). */
|
||||
export const IPC_EVENT = {
|
||||
progress: 'evt:progress',
|
||||
gameLog: 'evt:gameLog',
|
||||
gameClosed: 'evt:gameClosed',
|
||||
authCode: 'evt:authCode',
|
||||
updateStatus: 'evt:updateStatus'
|
||||
} as const
|
||||
Reference in New Issue
Block a user