refactor match3d runtime adapters

This commit is contained in:
2026-05-12 14:02:42 +08:00
parent 5cb5329f4e
commit 22810245f5
8 changed files with 358 additions and 43 deletions

View File

@@ -104,10 +104,6 @@ import {
ApiClientError,
BACKGROUND_AUTH_REQUEST_OPTIONS,
} from '../../services/apiClient';
import {
fetchCreationEntryConfig,
type CreationEntryConfig,
} from '../../services/creationEntryConfigService';
import {
getPublicAuthUserByCode,
getPublicAuthUserById,
@@ -132,6 +128,10 @@ import {
deleteBigFishWork,
listBigFishWorks,
} from '../../services/big-fish-works';
import {
type CreationEntryConfig,
fetchCreationEntryConfig,
} from '../../services/creationEntryConfigService';
import {
cancelCreativeAgentSession,
confirmCreativePuzzleTemplate,
@@ -144,13 +144,7 @@ import {
shouldRestoreCustomWorldAgentUiState,
} from '../../services/customWorldAgentUiState';
import { match3dCreationClient } from '../../services/match3d-creation';
import {
clickMatch3DItem,
finishMatch3DTimeUp,
restartMatch3DRun,
startMatch3DRun,
stopMatch3DRun,
} from '../../services/match3d-runtime';
import { createServerMatch3DRuntimeAdapter } from '../../services/match3d-runtime';
import {
deleteMatch3DWork,
getMatch3DWorkDetail,
@@ -2599,6 +2593,10 @@ export function PlatformEntryFlowShellImpl({
},
});
const match3dRuntimeAdapter = useMemo(
() => createServerMatch3DRuntimeAdapter(),
[],
);
const match3dFlow = usePlatformCreationAgentFlowController<
Match3DAgentSessionSnapshot,
CreateMatch3DSessionRequest,
@@ -4376,11 +4374,11 @@ export function PlatformEntryFlowShellImpl({
try {
const { run } = options.embedded
? await startMatch3DRun(
? await match3dRuntimeAdapter.startRun(
profile.profileId,
RECOMMEND_RUNTIME_BACKGROUND_AUTH_OPTIONS,
)
: await startMatch3DRun(profile.profileId);
: await match3dRuntimeAdapter.startRun(profile.profileId);
setMatch3DRun(run);
setMatch3DRuntimeReturnStage(returnStage);
if (!options.embedded) {
@@ -4412,6 +4410,7 @@ export function PlatformEntryFlowShellImpl({
[
isMatch3DBusy,
match3dFlow,
match3dRuntimeAdapter,
resolveMatch3DErrorMessage,
setMatch3DError,
setSelectionStage,
@@ -6671,7 +6670,7 @@ export function PlatformEntryFlowShellImpl({
match3dFlow.setIsBusy(true);
setMatch3DError(null);
void restartMatch3DRun(match3dRun.runId)
void match3dRuntimeAdapter.restartRun(match3dRun.runId)
.then(({ run }) => {
setMatch3DRun(run);
})
@@ -6693,14 +6692,14 @@ export function PlatformEntryFlowShellImpl({
if (!runId) {
return Promise.reject(new Error('抓大鹅运行态缺少 runId。'));
}
return clickMatch3DItem(runId, payload);
return match3dRuntimeAdapter.clickItem(runId, payload);
}}
onTimeExpired={() => {
if (!match3dRun?.runId) {
return;
}
void finishMatch3DTimeUp(match3dRun.runId)
void match3dRuntimeAdapter.finishTimeUp(match3dRun.runId)
.then(({ run }) => {
setMatch3DRun(run);
})
@@ -6868,6 +6867,7 @@ export function PlatformEntryFlowShellImpl({
match3dError,
match3dFlow,
match3dRun,
match3dRuntimeAdapter,
platformBootstrap.platformTab,
platformThemeClass,
puzzleError,
@@ -8560,7 +8560,7 @@ export function PlatformEntryFlowShellImpl({
error={match3dError}
onBack={() => {
if (match3dRun?.runId && match3dRun.status === 'running') {
void stopMatch3DRun(match3dRun.runId).catch(
void match3dRuntimeAdapter.stopRun(match3dRun.runId).catch(
() => undefined,
);
}
@@ -8573,7 +8573,7 @@ export function PlatformEntryFlowShellImpl({
match3dFlow.setIsBusy(true);
setMatch3DError(null);
void restartMatch3DRun(match3dRun.runId)
void match3dRuntimeAdapter.restartRun(match3dRun.runId)
.then(({ run }) => {
setMatch3DRun(run);
})
@@ -8597,14 +8597,14 @@ export function PlatformEntryFlowShellImpl({
new Error('抓大鹅运行态缺少 runId。'),
);
}
return clickMatch3DItem(runId, payload);
return match3dRuntimeAdapter.clickItem(runId, payload);
}}
onTimeExpired={() => {
if (!match3dRun?.runId) {
return;
}
void finishMatch3DTimeUp(match3dRun.runId)
void match3dRuntimeAdapter.finishTimeUp(match3dRun.runId)
.then(({ run }) => {
setMatch3DRun(run);
})