From 4a504c7e3d0c50cb90907d7903bc325d7daaf369 Mon Sep 17 00:00:00 2001 From: HsiangNianian Date: Thu, 12 Mar 2026 15:40:18 +0800 Subject: feat(instance): finish multi instances system --- packages/ui/src/client.ts | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'packages/ui/src/client.ts') diff --git a/packages/ui/src/client.ts b/packages/ui/src/client.ts index 18d2377..0739861 100644 --- a/packages/ui/src/client.ts +++ b/packages/ui/src/client.ts @@ -25,6 +25,13 @@ import type { VersionMetadata, } from "@/types"; +export interface InstanceRepairResult { + restoredInstances: number; + removedStaleEntries: number; + createdDefaultActive: boolean; + activeInstanceId: string | null; +} + export function assistantChat(messages: Message[]): Promise { return invoke("assistant_chat", { messages, @@ -119,6 +126,16 @@ export function duplicateInstance( }); } +export function exportInstance( + instanceId: string, + archivePath: string, +): Promise { + return invoke("export_instance", { + instanceId, + archivePath, + }); +} + export function fetchAdoptiumJava( majorVersion: number, imageType: string, @@ -267,6 +284,16 @@ export function installVersion( }); } +export function importInstance( + archivePath: string, + newName?: string, +): Promise { + return invoke("import_instance", { + archivePath, + newName, + }); +} + export function isFabricInstalled( instanceId: string, gameVersion: string, @@ -351,6 +378,10 @@ export function refreshJavaCatalog(): Promise { return invoke("refresh_java_catalog"); } +export function repairInstances(): Promise { + return invoke("repair_instances"); +} + export function resumeJavaDownloads(): Promise { return invoke("resume_java_downloads"); } @@ -383,6 +414,10 @@ export function startGame( }); } +export function stopGame(): Promise { + return invoke("stop_game"); +} + export function startMicrosoftLogin(): Promise { return invoke("start_microsoft_login"); } -- cgit v1.2.3-70-g09d2 From e8929b27444908b1f90b9ed3a4d52c5fd63fdf8c Mon Sep 17 00:00:00 2001 From: HsiangNianian Date: Wed, 18 Mar 2026 12:12:45 +0800 Subject: fix(macro): update ts export macro https://github.com/HydroRoll-Team/DropOut/pull/117#discussion_r2922886584 --- packages/ui/src/client.ts | 8 +------- packages/ui/src/stores/game-store.ts | 8 +------- packages/ui/src/types/bindings/core.ts | 7 +++++++ packages/ui/src/types/bindings/instance.ts | 7 +++++++ src-tauri/src/main.rs | 3 ++- 5 files changed, 18 insertions(+), 15 deletions(-) (limited to 'packages/ui/src/client.ts') diff --git a/packages/ui/src/client.ts b/packages/ui/src/client.ts index 0739861..6f354d2 100644 --- a/packages/ui/src/client.ts +++ b/packages/ui/src/client.ts @@ -12,6 +12,7 @@ import type { InstalledForgeVersion, InstalledVersion, Instance, + InstanceRepairResult, JavaCatalog, JavaDownloadInfo, JavaInstallation, @@ -25,13 +26,6 @@ import type { VersionMetadata, } from "@/types"; -export interface InstanceRepairResult { - restoredInstances: number; - removedStaleEntries: number; - createdDefaultActive: boolean; - activeInstanceId: string | null; -} - export function assistantChat(messages: Message[]): Promise { return invoke("assistant_chat", { messages, diff --git a/packages/ui/src/stores/game-store.ts b/packages/ui/src/stores/game-store.ts index 0d896a1..1eaf7e7 100644 --- a/packages/ui/src/stores/game-store.ts +++ b/packages/ui/src/stores/game-store.ts @@ -8,15 +8,9 @@ import { stopGame as stopGameCommand, } from "@/client"; import type { Account } from "@/types/bindings/auth"; +import type { GameExitedEvent } from "@/types/bindings/core"; import type { Version } from "@/types/bindings/manifest"; -interface GameExitedEvent { - instanceId: string; - versionId: string; - exitCode: number | null; - wasStopped: boolean; -} - interface GameState { versions: Version[]; selectedVersion: string; diff --git a/packages/ui/src/types/bindings/core.ts b/packages/ui/src/types/bindings/core.ts index 94e3bde..70cf804 100644 --- a/packages/ui/src/types/bindings/core.ts +++ b/packages/ui/src/types/bindings/core.ts @@ -11,6 +11,13 @@ export type FileInfo = { modified: bigint; }; +export type GameExitedEvent = { + instanceId: string; + versionId: string; + exitCode: number | null; + wasStopped: boolean; +}; + export type GithubRelease = { tagName: string; name: string; diff --git a/packages/ui/src/types/bindings/instance.ts b/packages/ui/src/types/bindings/instance.ts index 2c4f8ae..a8247a9 100644 --- a/packages/ui/src/types/bindings/instance.ts +++ b/packages/ui/src/types/bindings/instance.ts @@ -27,6 +27,13 @@ export type InstanceConfig = { activeInstanceId: string | null; }; +export type InstanceRepairResult = { + restoredInstances: number; + removedStaleEntries: number; + createdDefaultActive: boolean; + activeInstanceId: string | null; +}; + /** * Memory settings override for an instance */ diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 9d4d17c..63287cd 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -68,8 +68,9 @@ impl GameProcessState { } } -#[derive(Debug, Clone, Serialize)] +#[derive(Debug, Clone, Serialize, TS)] #[serde(rename_all = "camelCase")] +#[ts(export, export_to = "core.ts")] struct GameExitedEvent { instance_id: String, version_id: String, -- cgit v1.2.3-70-g09d2