@blcklab/anyo-player 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/LICENSE +21 -0
- package/README.md +304 -0
- package/dist/createAnyoPlayer.d.ts +3 -0
- package/dist/createAnyoPlayer.d.ts.map +1 -0
- package/dist/createAnyoPlayer.js +5 -0
- package/dist/createAnyoPlayer.js.map +1 -0
- package/dist/element-define.d.ts +2 -0
- package/dist/element-define.d.ts.map +1 -0
- package/dist/element-define.js +4 -0
- package/dist/element-define.js.map +1 -0
- package/dist/element.d.ts +66 -0
- package/dist/element.d.ts.map +1 -0
- package/dist/element.js +363 -0
- package/dist/element.js.map +1 -0
- package/dist/errors.d.ts +11 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +21 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/inputBindings.d.ts +3 -0
- package/dist/inputBindings.d.ts.map +1 -0
- package/dist/inputBindings.js +3 -0
- package/dist/inputBindings.js.map +1 -0
- package/dist/internal/AccessibilityController.d.ts +50 -0
- package/dist/internal/AccessibilityController.d.ts.map +1 -0
- package/dist/internal/AccessibilityController.js +212 -0
- package/dist/internal/AccessibilityController.js.map +1 -0
- package/dist/internal/AnyoPlayerCore.d.ts +357 -0
- package/dist/internal/AnyoPlayerCore.d.ts.map +1 -0
- package/dist/internal/AnyoPlayerCore.js +3880 -0
- package/dist/internal/AnyoPlayerCore.js.map +1 -0
- package/dist/internal/AudioController.d.ts +37 -0
- package/dist/internal/AudioController.d.ts.map +1 -0
- package/dist/internal/AudioController.js +167 -0
- package/dist/internal/AudioController.js.map +1 -0
- package/dist/internal/CaptionController.d.ts +16 -0
- package/dist/internal/CaptionController.d.ts.map +1 -0
- package/dist/internal/CaptionController.js +83 -0
- package/dist/internal/CaptionController.js.map +1 -0
- package/dist/internal/ContainerHost.d.ts +17 -0
- package/dist/internal/ContainerHost.d.ts.map +1 -0
- package/dist/internal/ContainerHost.js +110 -0
- package/dist/internal/ContainerHost.js.map +1 -0
- package/dist/internal/DesktopInputController.d.ts +80 -0
- package/dist/internal/DesktopInputController.d.ts.map +1 -0
- package/dist/internal/DesktopInputController.js +367 -0
- package/dist/internal/DesktopInputController.js.map +1 -0
- package/dist/internal/EmbeddingController.d.ts +33 -0
- package/dist/internal/EmbeddingController.d.ts.map +1 -0
- package/dist/internal/EmbeddingController.js +161 -0
- package/dist/internal/EmbeddingController.js.map +1 -0
- package/dist/internal/EventHub.d.ts +7 -0
- package/dist/internal/EventHub.d.ts.map +1 -0
- package/dist/internal/EventHub.js +27 -0
- package/dist/internal/EventHub.js.map +1 -0
- package/dist/internal/FrameworkAdapterController.d.ts +46 -0
- package/dist/internal/FrameworkAdapterController.d.ts.map +1 -0
- package/dist/internal/FrameworkAdapterController.js +165 -0
- package/dist/internal/FrameworkAdapterController.js.map +1 -0
- package/dist/internal/FullscreenController.d.ts +29 -0
- package/dist/internal/FullscreenController.d.ts.map +1 -0
- package/dist/internal/FullscreenController.js +122 -0
- package/dist/internal/FullscreenController.js.map +1 -0
- package/dist/internal/GamepadController.d.ts +54 -0
- package/dist/internal/GamepadController.d.ts.map +1 -0
- package/dist/internal/GamepadController.js +276 -0
- package/dist/internal/GamepadController.js.map +1 -0
- package/dist/internal/InputBindingsController.d.ts +34 -0
- package/dist/internal/InputBindingsController.d.ts.map +1 -0
- package/dist/internal/InputBindingsController.js +223 -0
- package/dist/internal/InputBindingsController.js.map +1 -0
- package/dist/internal/InteractionPresentationController.d.ts +38 -0
- package/dist/internal/InteractionPresentationController.d.ts.map +1 -0
- package/dist/internal/InteractionPresentationController.js +208 -0
- package/dist/internal/InteractionPresentationController.js.map +1 -0
- package/dist/internal/MapController.d.ts +16 -0
- package/dist/internal/MapController.d.ts.map +1 -0
- package/dist/internal/MapController.js +68 -0
- package/dist/internal/MapController.js.map +1 -0
- package/dist/internal/PerformanceController.d.ts +94 -0
- package/dist/internal/PerformanceController.d.ts.map +1 -0
- package/dist/internal/PerformanceController.js +455 -0
- package/dist/internal/PerformanceController.js.map +1 -0
- package/dist/internal/PlayerCameraController.d.ts +79 -0
- package/dist/internal/PlayerCameraController.d.ts.map +1 -0
- package/dist/internal/PlayerCameraController.js +551 -0
- package/dist/internal/PlayerCameraController.js.map +1 -0
- package/dist/internal/ResponsiveController.d.ts +37 -0
- package/dist/internal/ResponsiveController.d.ts.map +1 -0
- package/dist/internal/ResponsiveController.js +143 -0
- package/dist/internal/ResponsiveController.js.map +1 -0
- package/dist/internal/RuntimeFactory.d.ts +42 -0
- package/dist/internal/RuntimeFactory.d.ts.map +1 -0
- package/dist/internal/RuntimeFactory.js +93 -0
- package/dist/internal/RuntimeFactory.js.map +1 -0
- package/dist/internal/ScreenshotController.d.ts +8 -0
- package/dist/internal/ScreenshotController.d.ts.map +1 -0
- package/dist/internal/ScreenshotController.js +47 -0
- package/dist/internal/ScreenshotController.js.map +1 -0
- package/dist/internal/SessionController.d.ts +44 -0
- package/dist/internal/SessionController.d.ts.map +1 -0
- package/dist/internal/SessionController.js +411 -0
- package/dist/internal/SessionController.js.map +1 -0
- package/dist/internal/SourceResolver.d.ts +31 -0
- package/dist/internal/SourceResolver.d.ts.map +1 -0
- package/dist/internal/SourceResolver.js +362 -0
- package/dist/internal/SourceResolver.js.map +1 -0
- package/dist/internal/StateMachine.d.ts +10 -0
- package/dist/internal/StateMachine.d.ts.map +1 -0
- package/dist/internal/StateMachine.js +35 -0
- package/dist/internal/StateMachine.js.map +1 -0
- package/dist/internal/StyleController.d.ts +14 -0
- package/dist/internal/StyleController.d.ts.map +1 -0
- package/dist/internal/StyleController.js +116 -0
- package/dist/internal/StyleController.js.map +1 -0
- package/dist/internal/TelemetryController.d.ts +28 -0
- package/dist/internal/TelemetryController.d.ts.map +1 -0
- package/dist/internal/TelemetryController.js +113 -0
- package/dist/internal/TelemetryController.js.map +1 -0
- package/dist/internal/TouchInputController.d.ts +73 -0
- package/dist/internal/TouchInputController.d.ts.map +1 -0
- package/dist/internal/TouchInputController.js +379 -0
- package/dist/internal/TouchInputController.js.map +1 -0
- package/dist/internal/VfxController.d.ts +11 -0
- package/dist/internal/VfxController.d.ts.map +1 -0
- package/dist/internal/VfxController.js +23 -0
- package/dist/internal/VfxController.js.map +1 -0
- package/dist/internal/ViewPreferenceController.d.ts +40 -0
- package/dist/internal/ViewPreferenceController.d.ts.map +1 -0
- package/dist/internal/ViewPreferenceController.js +132 -0
- package/dist/internal/ViewPreferenceController.js.map +1 -0
- package/dist/internal/VisibilityController.d.ts +26 -0
- package/dist/internal/VisibilityController.d.ts.map +1 -0
- package/dist/internal/VisibilityController.js +62 -0
- package/dist/internal/VisibilityController.js.map +1 -0
- package/dist/internal/XRController.d.ts +42 -0
- package/dist/internal/XRController.d.ts.map +1 -0
- package/dist/internal/XRController.js +169 -0
- package/dist/internal/XRController.js.map +1 -0
- package/dist/internal/sourceUrls.d.ts +6 -0
- package/dist/internal/sourceUrls.d.ts.map +1 -0
- package/dist/internal/sourceUrls.js +79 -0
- package/dist/internal/sourceUrls.js.map +1 -0
- package/dist/react.d.ts +44 -0
- package/dist/react.d.ts.map +1 -0
- package/dist/react.js +115 -0
- package/dist/react.js.map +1 -0
- package/dist/session.d.ts +3 -0
- package/dist/session.d.ts.map +1 -0
- package/dist/session.js +3 -0
- package/dist/session.js.map +1 -0
- package/dist/styleText.d.ts +2 -0
- package/dist/styleText.d.ts.map +1 -0
- package/dist/styleText.js +2 -0
- package/dist/styleText.js.map +1 -0
- package/dist/styles.css +573 -0
- package/dist/types.d.ts +1476 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/ui/PlayerUI.d.ts +193 -0
- package/dist/ui/PlayerUI.d.ts.map +1 -0
- package/dist/ui/PlayerUI.js +1201 -0
- package/dist/ui/PlayerUI.js.map +1 -0
- package/dist/vue.d.ts +97 -0
- package/dist/vue.d.ts.map +1 -0
- package/dist/vue.js +126 -0
- package/dist/vue.js.map +1 -0
- package/dist/worldCache.d.ts +16 -0
- package/dist/worldCache.d.ts.map +1 -0
- package/dist/worldCache.js +46 -0
- package/dist/worldCache.js.map +1 -0
- package/dist/worldSources.d.ts +19 -0
- package/dist/worldSources.d.ts.map +1 -0
- package/dist/worldSources.js +51 -0
- package/dist/worldSources.js.map +1 -0
- package/package.json +114 -0
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,1476 @@
|
|
|
1
|
+
import type { ActionHandler, ComponentTypeRegistry, UnknownComponentPolicy, RendererAssetProgress, RendererDiagnostic, World, WorldDocument, WorldValidationOptions, WorldPlugin, WorldSystem, RuntimeSystemsOptions, RendererXREnterOptions, XRExplorationPluginOptions, XRInputSnapshot, XRSessionState } from '@blcklab/anyo';
|
|
2
|
+
import type { RegisteredWebSurfaceApp, WebSurfaceAppRegistry, WebSurfaceDiagnostic, WebSurfaceExternalUrlPolicy } from '@blcklab/anyo/web-surface';
|
|
3
|
+
import type { EngineOptions, Node } from '@blcklab/sekai64';
|
|
4
|
+
import type { AssetLoaderRegistration } from '@blcklab/sekai64/assets';
|
|
5
|
+
import type { RendererModule } from '@blcklab/sekai64/modules';
|
|
6
|
+
import type { AnyoPlayerError } from './errors.js';
|
|
7
|
+
export type AnyoPlayerState = 'idle' | 'loading' | 'replacing' | 'ready' | 'entering' | 'running' | 'paused' | 'vr-entering' | 'vr-active' | 'vr-exiting' | 'error' | 'disposing' | 'disposed';
|
|
8
|
+
export type AnyoPlayerLoadingPhase = 'idle' | 'resolving-source' | 'creating-runtime' | 'loading-world' | 'waiting-ready' | 'loading-assets' | 'replacing-world' | 'ready' | 'ready-with-warnings' | 'error' | 'disposing' | 'disposed';
|
|
9
|
+
export type AnyoPlayerReadyStatus = 'ready' | 'ready-with-warnings';
|
|
10
|
+
export type AnyoPlayerPauseReason = 'user' | 'visibility' | 'offscreen';
|
|
11
|
+
export type AnyoPlayerInputMode = 'desktop' | 'touch' | 'gamepad';
|
|
12
|
+
export type AnyoPlayerVRSupportState = 'disabled' | 'unknown' | 'checking' | 'supported' | 'unsupported' | 'error';
|
|
13
|
+
export type AnyoPlayerXRTrackingState = 'unavailable' | 'tracked' | 'lost';
|
|
14
|
+
export type AnyoPlayerReducedMotionPreference = boolean | 'system';
|
|
15
|
+
export type AnyoPlayerInputModality = 'unknown' | 'keyboard' | 'pointer' | 'touch' | 'gamepad';
|
|
16
|
+
export type AnyoPlayerAnnouncementPriority = 'polite' | 'assertive';
|
|
17
|
+
export type AnyoPlayerQualityPreset = 'auto' | 'low' | 'medium' | 'high' | 'ultra';
|
|
18
|
+
export type AnyoPlayerResolvedQualityPreset = Exclude<AnyoPlayerQualityPreset, 'auto'>;
|
|
19
|
+
export interface AnyoPlayerQualityStorage {
|
|
20
|
+
getItem(key: string): string | null | Promise<string | null>;
|
|
21
|
+
setItem(key: string, value: string): void | Promise<void>;
|
|
22
|
+
removeItem(key: string): void | Promise<void>;
|
|
23
|
+
}
|
|
24
|
+
export interface AnyoPlayerQualityPolicy {
|
|
25
|
+
/** Optional hard override owned by the host application. */
|
|
26
|
+
forceQuality?: AnyoPlayerQualityPreset;
|
|
27
|
+
/** Highest preset the world/player may select. */
|
|
28
|
+
maximumQuality?: AnyoPlayerResolvedQualityPreset;
|
|
29
|
+
/** Lowest preset the world/player may select. */
|
|
30
|
+
minimumQuality?: AnyoPlayerResolvedQualityPreset;
|
|
31
|
+
allowDynamicResolution?: boolean;
|
|
32
|
+
minimumRenderScale?: number;
|
|
33
|
+
maximumRenderScale?: number;
|
|
34
|
+
maximumTargetFps?: number;
|
|
35
|
+
maximumShadowMapSize?: number;
|
|
36
|
+
maximumShadowCascades?: number;
|
|
37
|
+
maximumAnisotropy?: number;
|
|
38
|
+
}
|
|
39
|
+
export interface AnyoPlayerDeviceProfile {
|
|
40
|
+
mobile: boolean;
|
|
41
|
+
touch: boolean;
|
|
42
|
+
cores: number;
|
|
43
|
+
memoryGB: number | null;
|
|
44
|
+
devicePixelRatio: number;
|
|
45
|
+
saveData: boolean;
|
|
46
|
+
reducedData: boolean;
|
|
47
|
+
lowPowerHint: boolean;
|
|
48
|
+
}
|
|
49
|
+
export interface AnyoPlayerQualityPreferenceSnapshot {
|
|
50
|
+
format: '@blcklab/anyo-player/quality-preference';
|
|
51
|
+
version: 1;
|
|
52
|
+
quality: AnyoPlayerQualityPreset;
|
|
53
|
+
targetFps: number;
|
|
54
|
+
dynamicResolution: boolean;
|
|
55
|
+
minimumScale: number;
|
|
56
|
+
maximumScale: number;
|
|
57
|
+
}
|
|
58
|
+
export interface AnyoPlayerPerformanceOptions {
|
|
59
|
+
quality?: AnyoPlayerQualityPreset;
|
|
60
|
+
targetFps?: number;
|
|
61
|
+
dynamicResolution?: boolean;
|
|
62
|
+
minimumScale?: number;
|
|
63
|
+
maximumScale?: number;
|
|
64
|
+
telemetryIntervalMs?: number;
|
|
65
|
+
adjustmentIntervalMs?: number;
|
|
66
|
+
sampleWindow?: number;
|
|
67
|
+
inactiveRenderScale?: number;
|
|
68
|
+
policy?: AnyoPlayerQualityPolicy;
|
|
69
|
+
storage?: AnyoPlayerQualityStorage;
|
|
70
|
+
storageKey?: string;
|
|
71
|
+
restoreOnLoad?: boolean;
|
|
72
|
+
saveOnChange?: boolean;
|
|
73
|
+
}
|
|
74
|
+
export interface AnyoPlayerPerformanceSnapshot {
|
|
75
|
+
timestamp: string;
|
|
76
|
+
quality: AnyoPlayerQualityPreset;
|
|
77
|
+
resolvedQuality: AnyoPlayerResolvedQualityPreset;
|
|
78
|
+
targetFps: number;
|
|
79
|
+
dynamicResolution: boolean;
|
|
80
|
+
backend: string | null;
|
|
81
|
+
fps: number;
|
|
82
|
+
cpuFrameMs: number;
|
|
83
|
+
gpuFrameMs: number | null;
|
|
84
|
+
renderScale: number;
|
|
85
|
+
drawCalls: number;
|
|
86
|
+
shadowDrawCalls: number;
|
|
87
|
+
postProcessPasses: number;
|
|
88
|
+
triangles: number;
|
|
89
|
+
visibleObjects: number;
|
|
90
|
+
culledObjects: number;
|
|
91
|
+
pipelineChanges: number;
|
|
92
|
+
materialChanges: number;
|
|
93
|
+
textureUploads: number;
|
|
94
|
+
geometryMemory: number;
|
|
95
|
+
textureMemory: number;
|
|
96
|
+
occlusionCulledObjects: number;
|
|
97
|
+
clusterCount: number;
|
|
98
|
+
clusteredLightReferences: number;
|
|
99
|
+
staticBatches: number;
|
|
100
|
+
textureEvictions: number;
|
|
101
|
+
geometryEvictions: number;
|
|
102
|
+
instancedDrawCalls: number;
|
|
103
|
+
renderedInstances: number;
|
|
104
|
+
frustumCulledObjects: number;
|
|
105
|
+
shadowCulledObjects: number;
|
|
106
|
+
clusterOverflows: number;
|
|
107
|
+
rejectedLights: number;
|
|
108
|
+
acceptedLights: number;
|
|
109
|
+
queueBuildMs: number;
|
|
110
|
+
shadowPassMs: number;
|
|
111
|
+
postProcessMs: number;
|
|
112
|
+
streamingQueued: number;
|
|
113
|
+
streamingActive: number;
|
|
114
|
+
shaderCompilations: number;
|
|
115
|
+
gpuResourceCreations: number;
|
|
116
|
+
inactive: boolean;
|
|
117
|
+
}
|
|
118
|
+
export interface AnyoPlayerPerformanceChangeEvent {
|
|
119
|
+
previous: AnyoPlayerPerformanceSnapshot;
|
|
120
|
+
performance: AnyoPlayerPerformanceSnapshot;
|
|
121
|
+
}
|
|
122
|
+
export interface AnyoPlayerQualityPreferenceChangeEvent {
|
|
123
|
+
previous: AnyoPlayerQualityPreferenceSnapshot;
|
|
124
|
+
preference: AnyoPlayerQualityPreferenceSnapshot;
|
|
125
|
+
source: 'runtime' | 'storage' | 'policy';
|
|
126
|
+
}
|
|
127
|
+
export interface AnyoPlayerQualityPreferenceSavedEvent {
|
|
128
|
+
key: string;
|
|
129
|
+
snapshot: AnyoPlayerQualityPreferenceSnapshot;
|
|
130
|
+
}
|
|
131
|
+
export interface AnyoPlayerQualityPreferenceLoadedEvent {
|
|
132
|
+
key: string;
|
|
133
|
+
snapshot: AnyoPlayerQualityPreferenceSnapshot | null;
|
|
134
|
+
}
|
|
135
|
+
export interface AnyoPlayerQualityPreferenceClearedEvent {
|
|
136
|
+
key: string;
|
|
137
|
+
}
|
|
138
|
+
export type AnyoPlayerTelemetryCategory = 'lifecycle' | 'renderer' | 'recovery' | 'input' | 'interaction' | 'session' | 'audio' | 'xr' | 'host';
|
|
139
|
+
export interface AnyoPlayerTelemetryEvent {
|
|
140
|
+
format: '@blcklab/anyo-player/telemetry';
|
|
141
|
+
version: 1;
|
|
142
|
+
sequence: number;
|
|
143
|
+
name: string;
|
|
144
|
+
category: AnyoPlayerTelemetryCategory;
|
|
145
|
+
timestamp: string;
|
|
146
|
+
state: AnyoPlayerState;
|
|
147
|
+
phase: AnyoPlayerLoadingPhase;
|
|
148
|
+
details?: Readonly<Record<string, unknown>>;
|
|
149
|
+
}
|
|
150
|
+
export type AnyoPlayerAnalyticsSink = (event: AnyoPlayerTelemetryEvent) => void | Promise<void>;
|
|
151
|
+
export interface AnyoPlayerAnalyticsOptions {
|
|
152
|
+
enabled?: boolean;
|
|
153
|
+
sink?: AnyoPlayerAnalyticsSink | readonly AnyoPlayerAnalyticsSink[];
|
|
154
|
+
categories?: readonly AnyoPlayerTelemetryCategory[];
|
|
155
|
+
bufferSize?: number;
|
|
156
|
+
}
|
|
157
|
+
export type AnyoPlayerRendererRecoveryState = 'idle' | 'scheduled' | 'recovering' | 'recovered' | 'failed' | 'canceled';
|
|
158
|
+
export interface AnyoPlayerRendererRecoveryOptions {
|
|
159
|
+
enabled?: boolean;
|
|
160
|
+
automatic?: boolean;
|
|
161
|
+
maxAttempts?: number;
|
|
162
|
+
delayMs?: number;
|
|
163
|
+
backoff?: number;
|
|
164
|
+
restoreSession?: boolean;
|
|
165
|
+
/** Optional backend used after repeated WebGPU recovery failure. */
|
|
166
|
+
fallbackBackend?: false | 'auto' | 'webgl2';
|
|
167
|
+
fallbackAfterAttempt?: number;
|
|
168
|
+
}
|
|
169
|
+
export interface AnyoPlayerRendererRecoveryStatus {
|
|
170
|
+
state: AnyoPlayerRendererRecoveryState;
|
|
171
|
+
attempt: number;
|
|
172
|
+
maxAttempts: number;
|
|
173
|
+
automatic: boolean;
|
|
174
|
+
diagnosticCode: string | null;
|
|
175
|
+
error: AnyoPlayerError | null;
|
|
176
|
+
}
|
|
177
|
+
export interface AnyoPlayerRendererRecoveryChange {
|
|
178
|
+
previous: AnyoPlayerRendererRecoveryStatus;
|
|
179
|
+
recovery: AnyoPlayerRendererRecoveryStatus;
|
|
180
|
+
}
|
|
181
|
+
export interface AnyoPlayerDiagnosticOptions {
|
|
182
|
+
historyLimit?: number;
|
|
183
|
+
}
|
|
184
|
+
export interface AnyoPlayerDiagnosticRecord {
|
|
185
|
+
sequence: number;
|
|
186
|
+
timestamp: string;
|
|
187
|
+
source: 'renderer' | 'player';
|
|
188
|
+
code: string;
|
|
189
|
+
message: string;
|
|
190
|
+
severity: 'info' | 'warning' | 'error' | 'fatal';
|
|
191
|
+
recoverable: boolean;
|
|
192
|
+
diagnostic?: RendererDiagnostic;
|
|
193
|
+
}
|
|
194
|
+
export interface AnyoPlayerDiagnosticRecordedEvent {
|
|
195
|
+
record: AnyoPlayerDiagnosticRecord;
|
|
196
|
+
}
|
|
197
|
+
export interface AnyoPlayerAccessibilityOptions {
|
|
198
|
+
reducedMotion?: AnyoPlayerReducedMotionPreference;
|
|
199
|
+
keyboardNavigation?: boolean;
|
|
200
|
+
focusManagement?: boolean;
|
|
201
|
+
announcements?: boolean;
|
|
202
|
+
instructions?: string;
|
|
203
|
+
roleDescription?: string;
|
|
204
|
+
/** Announces loading, recovery, and world replacement status changes. */
|
|
205
|
+
announceStatusChanges?: boolean;
|
|
206
|
+
}
|
|
207
|
+
export interface AnyoPlayerReducedMotionChange {
|
|
208
|
+
previous: boolean;
|
|
209
|
+
reducedMotion: boolean;
|
|
210
|
+
preference: AnyoPlayerReducedMotionPreference;
|
|
211
|
+
}
|
|
212
|
+
export interface AnyoPlayerInputModalityChange {
|
|
213
|
+
previous: AnyoPlayerInputModality;
|
|
214
|
+
modality: AnyoPlayerInputModality;
|
|
215
|
+
}
|
|
216
|
+
export interface AnyoPlayerAnnouncementOptions {
|
|
217
|
+
priority?: AnyoPlayerAnnouncementPriority;
|
|
218
|
+
}
|
|
219
|
+
export interface AnyoPlayerCaptionOptions {
|
|
220
|
+
speaker?: string;
|
|
221
|
+
language?: string;
|
|
222
|
+
durationMs?: number;
|
|
223
|
+
announce?: boolean;
|
|
224
|
+
}
|
|
225
|
+
export interface AnyoPlayerCaptionState {
|
|
226
|
+
visible: boolean;
|
|
227
|
+
text: string;
|
|
228
|
+
speaker: string | null;
|
|
229
|
+
language: string | null;
|
|
230
|
+
startedAt: string | null;
|
|
231
|
+
expiresAt: string | null;
|
|
232
|
+
}
|
|
233
|
+
export interface AnyoPlayerCaptionTarget {
|
|
234
|
+
showCaption(caption: AnyoPlayerCaptionState): void;
|
|
235
|
+
clearCaption(): void;
|
|
236
|
+
}
|
|
237
|
+
export interface AnyoPlayerCaptionChangeEvent {
|
|
238
|
+
previous: AnyoPlayerCaptionState;
|
|
239
|
+
caption: AnyoPlayerCaptionState;
|
|
240
|
+
}
|
|
241
|
+
export type AnyoPlayerInputAction = 'move-forward' | 'move-backward' | 'move-left' | 'move-right' | 'look-up' | 'look-down' | 'look-left' | 'look-right' | 'run' | 'jump' | 'interact' | 'pause';
|
|
242
|
+
export interface AnyoPlayerKeyboardInputBinding {
|
|
243
|
+
device: 'keyboard';
|
|
244
|
+
code: string;
|
|
245
|
+
}
|
|
246
|
+
export interface AnyoPlayerGamepadButtonInputBinding {
|
|
247
|
+
device: 'gamepad-button';
|
|
248
|
+
button: number;
|
|
249
|
+
}
|
|
250
|
+
export interface AnyoPlayerGamepadAxisInputBinding {
|
|
251
|
+
device: 'gamepad-axis';
|
|
252
|
+
axis: number;
|
|
253
|
+
direction: -1 | 1;
|
|
254
|
+
threshold?: number;
|
|
255
|
+
}
|
|
256
|
+
export type AnyoPlayerInputBinding = AnyoPlayerKeyboardInputBinding | AnyoPlayerGamepadButtonInputBinding | AnyoPlayerGamepadAxisInputBinding;
|
|
257
|
+
export type AnyoPlayerInputBindingMap = Record<AnyoPlayerInputAction, readonly AnyoPlayerInputBinding[]>;
|
|
258
|
+
export interface AnyoPlayerInputStorage {
|
|
259
|
+
getItem(key: string): string | null | Promise<string | null>;
|
|
260
|
+
setItem(key: string, value: string): void | Promise<void>;
|
|
261
|
+
removeItem(key: string): void | Promise<void>;
|
|
262
|
+
}
|
|
263
|
+
export interface AnyoPlayerGamepadOptions {
|
|
264
|
+
enabled?: boolean;
|
|
265
|
+
index?: number | 'auto';
|
|
266
|
+
deadZone?: number;
|
|
267
|
+
lookSensitivity?: number;
|
|
268
|
+
}
|
|
269
|
+
export interface AnyoPlayerInputBindingsOptions {
|
|
270
|
+
bindings?: Partial<AnyoPlayerInputBindingMap>;
|
|
271
|
+
gamepad?: boolean | AnyoPlayerGamepadOptions;
|
|
272
|
+
storage?: AnyoPlayerInputStorage;
|
|
273
|
+
storageKey?: string;
|
|
274
|
+
restoreOnLoad?: boolean;
|
|
275
|
+
saveOnChange?: boolean;
|
|
276
|
+
keyboardLookSensitivity?: number;
|
|
277
|
+
}
|
|
278
|
+
export interface AnyoPlayerViewStorage {
|
|
279
|
+
getItem(key: string): string | null | Promise<string | null>;
|
|
280
|
+
setItem(key: string, value: string): void | Promise<void>;
|
|
281
|
+
removeItem(key: string): void | Promise<void>;
|
|
282
|
+
}
|
|
283
|
+
export interface AnyoPlayerViewPreferenceOptions {
|
|
284
|
+
fieldOfView?: number;
|
|
285
|
+
pointerLookScale?: number;
|
|
286
|
+
touchLookScale?: number;
|
|
287
|
+
gamepadLookScale?: number;
|
|
288
|
+
invertY?: boolean;
|
|
289
|
+
minimumFieldOfView?: number;
|
|
290
|
+
maximumFieldOfView?: number;
|
|
291
|
+
storage?: AnyoPlayerViewStorage;
|
|
292
|
+
storageKey?: string;
|
|
293
|
+
restoreOnLoad?: boolean;
|
|
294
|
+
saveOnChange?: boolean;
|
|
295
|
+
}
|
|
296
|
+
export interface AnyoPlayerViewPreferenceSnapshot {
|
|
297
|
+
format: '@blcklab/anyo-player/view-preference';
|
|
298
|
+
version: 1;
|
|
299
|
+
fieldOfView: number;
|
|
300
|
+
pointerLookScale: number;
|
|
301
|
+
touchLookScale: number;
|
|
302
|
+
gamepadLookScale: number;
|
|
303
|
+
invertY: boolean;
|
|
304
|
+
}
|
|
305
|
+
export interface AnyoPlayerViewPreferenceChangeEvent {
|
|
306
|
+
previous: AnyoPlayerViewPreferenceSnapshot;
|
|
307
|
+
preference: AnyoPlayerViewPreferenceSnapshot;
|
|
308
|
+
source: 'runtime' | 'storage' | 'reset';
|
|
309
|
+
}
|
|
310
|
+
export interface AnyoPlayerViewPreferenceSavedEvent {
|
|
311
|
+
key: string;
|
|
312
|
+
snapshot: AnyoPlayerViewPreferenceSnapshot;
|
|
313
|
+
}
|
|
314
|
+
export interface AnyoPlayerViewPreferenceLoadedEvent {
|
|
315
|
+
key: string;
|
|
316
|
+
snapshot: AnyoPlayerViewPreferenceSnapshot | null;
|
|
317
|
+
}
|
|
318
|
+
export interface AnyoPlayerViewPreferenceClearedEvent {
|
|
319
|
+
key: string;
|
|
320
|
+
}
|
|
321
|
+
export interface AnyoPlayerInputBindingsSnapshot {
|
|
322
|
+
format: '@blcklab/anyo-player/input-bindings';
|
|
323
|
+
version: 1;
|
|
324
|
+
bindings: AnyoPlayerInputBindingMap;
|
|
325
|
+
}
|
|
326
|
+
export interface AnyoPlayerInputBindingsChangeEvent {
|
|
327
|
+
bindings: AnyoPlayerInputBindingMap;
|
|
328
|
+
source: 'runtime' | 'reset' | 'storage';
|
|
329
|
+
}
|
|
330
|
+
export interface AnyoPlayerInputBindingsSavedEvent {
|
|
331
|
+
key: string;
|
|
332
|
+
snapshot: AnyoPlayerInputBindingsSnapshot;
|
|
333
|
+
}
|
|
334
|
+
export interface AnyoPlayerInputBindingsLoadedEvent {
|
|
335
|
+
key: string;
|
|
336
|
+
snapshot: AnyoPlayerInputBindingsSnapshot | null;
|
|
337
|
+
}
|
|
338
|
+
export interface AnyoPlayerInputBindingsClearedEvent {
|
|
339
|
+
key: string;
|
|
340
|
+
}
|
|
341
|
+
export interface AnyoPlayerInputActionEvent {
|
|
342
|
+
action: AnyoPlayerInputAction;
|
|
343
|
+
value: number;
|
|
344
|
+
pressed: boolean;
|
|
345
|
+
device: 'keyboard' | 'gamepad';
|
|
346
|
+
}
|
|
347
|
+
export interface AnyoPlayerGamepadState {
|
|
348
|
+
index: number;
|
|
349
|
+
id: string;
|
|
350
|
+
mapping: string;
|
|
351
|
+
connected: boolean;
|
|
352
|
+
timestamp: number;
|
|
353
|
+
}
|
|
354
|
+
export interface AnyoPlayerGamepadChangeEvent {
|
|
355
|
+
gamepads: readonly AnyoPlayerGamepadState[];
|
|
356
|
+
activeGamepad: number | null;
|
|
357
|
+
}
|
|
358
|
+
export interface AnyoPlayerVROptions extends Omit<Partial<RendererXREnterOptions>, 'mode'> {
|
|
359
|
+
mode?: 'immersive-vr';
|
|
360
|
+
checkSupportOnLoad?: boolean;
|
|
361
|
+
}
|
|
362
|
+
export interface AnyoPlayerResizeOptions {
|
|
363
|
+
enabled?: boolean;
|
|
364
|
+
pixelRatio?: number | 'device';
|
|
365
|
+
maxPixelRatio?: number;
|
|
366
|
+
}
|
|
367
|
+
export type AnyoPlayerActivationMode = 'manual' | 'immediate' | 'visible';
|
|
368
|
+
export type AnyoPlayerPreloadMode = 'none' | 'source' | 'runtime';
|
|
369
|
+
export type AnyoPlayerIntersectionState = 'unknown' | 'visible' | 'hidden' | 'unsupported';
|
|
370
|
+
export interface AnyoPlayerPosterOptions {
|
|
371
|
+
src: string;
|
|
372
|
+
alt?: string;
|
|
373
|
+
fit?: 'cover' | 'contain';
|
|
374
|
+
position?: string;
|
|
375
|
+
background?: string;
|
|
376
|
+
className?: string;
|
|
377
|
+
hideWhen?: 'loading' | 'ready' | 'entered';
|
|
378
|
+
}
|
|
379
|
+
export interface AnyoPlayerEmbeddingOptions {
|
|
380
|
+
activation?: AnyoPlayerActivationMode;
|
|
381
|
+
preload?: AnyoPlayerPreloadMode;
|
|
382
|
+
poster?: string | AnyoPlayerPosterOptions;
|
|
383
|
+
pauseWhenOffscreen?: boolean;
|
|
384
|
+
resumeWhenVisible?: boolean;
|
|
385
|
+
root?: Element | Document | null;
|
|
386
|
+
rootMargin?: string;
|
|
387
|
+
threshold?: number | readonly number[];
|
|
388
|
+
}
|
|
389
|
+
export interface AnyoPlayerActivationChange {
|
|
390
|
+
activated: boolean;
|
|
391
|
+
}
|
|
392
|
+
export interface AnyoPlayerIntersectionChange {
|
|
393
|
+
previous: AnyoPlayerIntersectionState;
|
|
394
|
+
state: AnyoPlayerIntersectionState;
|
|
395
|
+
}
|
|
396
|
+
export interface AnyoPlayerPreloadedEvent {
|
|
397
|
+
source: AnyoPlayerSource;
|
|
398
|
+
document: WorldDocument;
|
|
399
|
+
}
|
|
400
|
+
export interface AnyoPlayerPosterChange {
|
|
401
|
+
visible: boolean;
|
|
402
|
+
}
|
|
403
|
+
export interface AnyoPlayerWorldRegistrationOptions {
|
|
404
|
+
replace?: boolean;
|
|
405
|
+
}
|
|
406
|
+
export interface AnyoPlayerWorldDefinition {
|
|
407
|
+
source: AnyoPlayerSource;
|
|
408
|
+
label?: string;
|
|
409
|
+
metadata?: Readonly<Record<string, unknown>>;
|
|
410
|
+
}
|
|
411
|
+
export type AnyoPlayerWorldRegistry = Readonly<Record<string, AnyoPlayerSource | AnyoPlayerWorldDefinition>>;
|
|
412
|
+
export type AnyoPlayerWorldTransitionPresentation = 'none' | 'fade';
|
|
413
|
+
export type AnyoPlayerWorldNavigationState = 'idle' | 'preparing' | 'switching' | 'completed' | 'canceled' | 'failed';
|
|
414
|
+
export interface AnyoPlayerWorldTransitionContext {
|
|
415
|
+
fromWorldId: string | null;
|
|
416
|
+
toWorldId: string;
|
|
417
|
+
source: AnyoPlayerSource;
|
|
418
|
+
signal: AbortSignal;
|
|
419
|
+
}
|
|
420
|
+
export interface AnyoPlayerWorldTransitionCompleteContext extends AnyoPlayerWorldTransitionContext {
|
|
421
|
+
world: World;
|
|
422
|
+
}
|
|
423
|
+
export type AnyoPlayerBeforeWorldSwitchHook = (context: AnyoPlayerWorldTransitionContext) => void | Promise<void>;
|
|
424
|
+
export type AnyoPlayerAfterWorldSwitchHook = (context: AnyoPlayerWorldTransitionCompleteContext) => void | Promise<void>;
|
|
425
|
+
export interface AnyoPlayerWorldTransitionOptions {
|
|
426
|
+
presentation?: AnyoPlayerWorldTransitionPresentation;
|
|
427
|
+
minimumDuration?: number;
|
|
428
|
+
beforeSwitch?: AnyoPlayerBeforeWorldSwitchHook;
|
|
429
|
+
afterSwitch?: AnyoPlayerAfterWorldSwitchHook;
|
|
430
|
+
}
|
|
431
|
+
export interface AnyoPlayerNavigationOptions {
|
|
432
|
+
worlds: AnyoPlayerWorldRegistry;
|
|
433
|
+
initialWorld?: string;
|
|
434
|
+
transition?: false | AnyoPlayerWorldTransitionOptions;
|
|
435
|
+
}
|
|
436
|
+
export interface AnyoPlayerNavigateOptions {
|
|
437
|
+
force?: boolean;
|
|
438
|
+
transition?: false | AnyoPlayerWorldTransitionOptions;
|
|
439
|
+
}
|
|
440
|
+
export interface AnyoPlayerWorldNavigationStatus {
|
|
441
|
+
state: AnyoPlayerWorldNavigationState;
|
|
442
|
+
fromWorldId: string | null;
|
|
443
|
+
toWorldId: string | null;
|
|
444
|
+
error: AnyoPlayerError | null;
|
|
445
|
+
}
|
|
446
|
+
export interface AnyoPlayerWorldNavigationStartEvent {
|
|
447
|
+
fromWorldId: string | null;
|
|
448
|
+
toWorldId: string;
|
|
449
|
+
source: AnyoPlayerSource;
|
|
450
|
+
}
|
|
451
|
+
export interface AnyoPlayerWorldNavigationChangeEvent {
|
|
452
|
+
previous: AnyoPlayerWorldNavigationStatus;
|
|
453
|
+
navigation: AnyoPlayerWorldNavigationStatus;
|
|
454
|
+
}
|
|
455
|
+
export interface AnyoPlayerWorldNavigationCompleteEvent extends AnyoPlayerWorldNavigationStartEvent {
|
|
456
|
+
world: World;
|
|
457
|
+
}
|
|
458
|
+
export interface AnyoPlayerWorldNavigationCanceledEvent extends AnyoPlayerWorldNavigationStartEvent {
|
|
459
|
+
}
|
|
460
|
+
export interface AnyoPlayerWorldNavigationErrorEvent extends AnyoPlayerWorldNavigationStartEvent {
|
|
461
|
+
error: AnyoPlayerError;
|
|
462
|
+
}
|
|
463
|
+
export interface AnyoPlayerWorldPreloadedEvent {
|
|
464
|
+
worldId: string;
|
|
465
|
+
source: AnyoPlayerSource;
|
|
466
|
+
document: WorldDocument;
|
|
467
|
+
}
|
|
468
|
+
export interface AnyoPlayerVisibilityOptions {
|
|
469
|
+
pauseWhenHidden?: boolean;
|
|
470
|
+
resumeWhenVisible?: boolean;
|
|
471
|
+
/** Lower render scale while the browser window is unfocused without pausing simulation. */
|
|
472
|
+
reduceWhenUnfocused?: boolean;
|
|
473
|
+
unfocusedRenderScale?: number;
|
|
474
|
+
}
|
|
475
|
+
export interface AnyoPlayerFullscreenOptions {
|
|
476
|
+
enabled?: boolean;
|
|
477
|
+
target?: 'container' | 'canvas';
|
|
478
|
+
}
|
|
479
|
+
export interface AnyoPlayerVfxTarget {
|
|
480
|
+
onPause?(): void | Promise<void>;
|
|
481
|
+
onResume?(): void | Promise<void>;
|
|
482
|
+
}
|
|
483
|
+
export interface AnyoPlayerMapTarget {
|
|
484
|
+
onPause?(): void | Promise<void>;
|
|
485
|
+
onResume?(): void | Promise<void>;
|
|
486
|
+
getAttribution?(): string | null;
|
|
487
|
+
onAttributionChange?(listener: (text: string | null) => void): () => void;
|
|
488
|
+
}
|
|
489
|
+
export interface AnyoPlayerAudioTarget {
|
|
490
|
+
unlock?(): void | Promise<void>;
|
|
491
|
+
setMuted?(muted: boolean): void | Promise<void>;
|
|
492
|
+
onPause?(): void | Promise<void>;
|
|
493
|
+
onResume?(): void | Promise<void>;
|
|
494
|
+
}
|
|
495
|
+
export interface AnyoPlayerAudioOptions {
|
|
496
|
+
muted?: boolean;
|
|
497
|
+
unlockOnEnter?: boolean;
|
|
498
|
+
muteOnPause?: boolean;
|
|
499
|
+
targets?: readonly AnyoPlayerAudioTarget[];
|
|
500
|
+
}
|
|
501
|
+
export interface AnyoPlayerAudioState {
|
|
502
|
+
enabled: boolean;
|
|
503
|
+
muted: boolean;
|
|
504
|
+
unlocked: boolean;
|
|
505
|
+
blocked: boolean;
|
|
506
|
+
targetCount: number;
|
|
507
|
+
}
|
|
508
|
+
export interface AnyoPlayerAudioChangeEvent extends AnyoPlayerAudioState {
|
|
509
|
+
previousMuted: boolean;
|
|
510
|
+
source: 'runtime' | 'pause' | 'resume' | 'target';
|
|
511
|
+
}
|
|
512
|
+
export interface AnyoPlayerAudioUnlockedEvent extends AnyoPlayerAudioState {
|
|
513
|
+
}
|
|
514
|
+
export interface AnyoPlayerPauseMenuOptions {
|
|
515
|
+
enabled?: boolean;
|
|
516
|
+
title?: string;
|
|
517
|
+
message?: string;
|
|
518
|
+
showResume?: boolean;
|
|
519
|
+
showAudio?: boolean;
|
|
520
|
+
showFullscreen?: boolean;
|
|
521
|
+
showScreenshot?: boolean;
|
|
522
|
+
}
|
|
523
|
+
export type AnyoPlayerScreenshotType = 'image/png' | 'image/jpeg' | 'image/webp';
|
|
524
|
+
export interface AnyoPlayerScreenshotOptions {
|
|
525
|
+
type?: AnyoPlayerScreenshotType;
|
|
526
|
+
quality?: number;
|
|
527
|
+
}
|
|
528
|
+
export interface AnyoPlayerScreenshotResult {
|
|
529
|
+
blob: Blob;
|
|
530
|
+
type: string;
|
|
531
|
+
width: number;
|
|
532
|
+
height: number;
|
|
533
|
+
createdAt: string;
|
|
534
|
+
}
|
|
535
|
+
export interface AnyoPlayerScreenshotCapturedEvent {
|
|
536
|
+
screenshot: AnyoPlayerScreenshotResult;
|
|
537
|
+
}
|
|
538
|
+
export interface AnyoPlayerResizeEvent {
|
|
539
|
+
width: number;
|
|
540
|
+
height: number;
|
|
541
|
+
pixelRatio: number;
|
|
542
|
+
}
|
|
543
|
+
export type AnyoPlayerRuntimeHealthState = 'healthy' | 'degraded' | 'recovering' | 'failed';
|
|
544
|
+
export interface AnyoPlayerRuntimeHealth {
|
|
545
|
+
state: AnyoPlayerRuntimeHealthState;
|
|
546
|
+
reasons: readonly string[];
|
|
547
|
+
rendererAvailable: boolean;
|
|
548
|
+
worldAvailable: boolean;
|
|
549
|
+
assetsReady: boolean;
|
|
550
|
+
performanceWithinTarget: boolean;
|
|
551
|
+
recoveryActive: boolean;
|
|
552
|
+
}
|
|
553
|
+
export interface AnyoPlayerSourceInfo {
|
|
554
|
+
kind: 'document' | 'json' | 'url' | 'blob' | 'file-map' | 'archive' | 'cache';
|
|
555
|
+
url: string | null;
|
|
556
|
+
bytes: number | null;
|
|
557
|
+
cache: 'none' | 'hit' | 'miss' | 'stored' | 'fallback';
|
|
558
|
+
integrity: 'not-requested' | 'verified' | 'failed' | 'unavailable';
|
|
559
|
+
migratedFrom: string | null;
|
|
560
|
+
documentVersion: string;
|
|
561
|
+
}
|
|
562
|
+
export interface AnyoPlayerDiagnosticBundle {
|
|
563
|
+
format: '@blcklab/anyo-player/diagnostic-bundle';
|
|
564
|
+
version: 1;
|
|
565
|
+
createdAt: string;
|
|
566
|
+
health: AnyoPlayerRuntimeHealth;
|
|
567
|
+
runtime: AnyoPlayerRuntimeReport;
|
|
568
|
+
source: AnyoPlayerSourceInfo | null;
|
|
569
|
+
documentHash: string | null;
|
|
570
|
+
diagnostics: readonly AnyoPlayerDiagnosticRecord[];
|
|
571
|
+
telemetry: readonly AnyoPlayerTelemetryEvent[];
|
|
572
|
+
qualityPreference: AnyoPlayerQualityPreferenceSnapshot;
|
|
573
|
+
viewPreference: AnyoPlayerViewPreferenceSnapshot;
|
|
574
|
+
inputBindings: AnyoPlayerInputBindingsSnapshot;
|
|
575
|
+
}
|
|
576
|
+
export interface AnyoPlayerRuntimeReport {
|
|
577
|
+
format: '@blcklab/anyo-player/runtime-report';
|
|
578
|
+
version: 1;
|
|
579
|
+
createdAt: string;
|
|
580
|
+
lifecycle: {
|
|
581
|
+
state: AnyoPlayerState;
|
|
582
|
+
phase: AnyoPlayerLoadingPhase;
|
|
583
|
+
readyStatus: AnyoPlayerReadyStatus | null;
|
|
584
|
+
entered: boolean;
|
|
585
|
+
paused: boolean;
|
|
586
|
+
pauseReason: AnyoPlayerPauseReason | null;
|
|
587
|
+
activated: boolean;
|
|
588
|
+
};
|
|
589
|
+
world: {
|
|
590
|
+
loaded: boolean;
|
|
591
|
+
documentVersion: string | null;
|
|
592
|
+
currentRoom: string | null;
|
|
593
|
+
rooms: number;
|
|
594
|
+
entities: number;
|
|
595
|
+
primitives: number;
|
|
596
|
+
materials: number;
|
|
597
|
+
colliders: number;
|
|
598
|
+
portals: number;
|
|
599
|
+
triggers: number;
|
|
600
|
+
};
|
|
601
|
+
renderer: {
|
|
602
|
+
name: string | null;
|
|
603
|
+
version: string | null;
|
|
604
|
+
backend: string | null;
|
|
605
|
+
shadows: boolean | null;
|
|
606
|
+
atmosphere: boolean | null;
|
|
607
|
+
colorGrading: boolean | null;
|
|
608
|
+
gpuPostProcessing: boolean | null;
|
|
609
|
+
ssao: boolean | null;
|
|
610
|
+
bloom: boolean | null;
|
|
611
|
+
outlines: boolean | null;
|
|
612
|
+
cascadedShadows: boolean | null;
|
|
613
|
+
mipmapGeneration: boolean | null;
|
|
614
|
+
};
|
|
615
|
+
performance: AnyoPlayerPerformanceSnapshot;
|
|
616
|
+
viewport: AnyoPlayerResizeEvent;
|
|
617
|
+
input: {
|
|
618
|
+
mode: AnyoPlayerInputMode | null;
|
|
619
|
+
modality: AnyoPlayerInputModality;
|
|
620
|
+
pointerLocked: boolean;
|
|
621
|
+
touchEnabled: boolean;
|
|
622
|
+
activeGamepad: number | null;
|
|
623
|
+
reducedMotion: boolean;
|
|
624
|
+
};
|
|
625
|
+
assets: RendererAssetProgress;
|
|
626
|
+
recovery: AnyoPlayerRendererRecoveryStatus;
|
|
627
|
+
diagnostics: {
|
|
628
|
+
total: number;
|
|
629
|
+
errors: number;
|
|
630
|
+
warnings: number;
|
|
631
|
+
};
|
|
632
|
+
}
|
|
633
|
+
export type AnyoPlayerCacheMode = 'network-first' | 'cache-first' | 'offline-first' | 'network-only';
|
|
634
|
+
export interface AnyoPlayerWorldCacheEntry {
|
|
635
|
+
key: string;
|
|
636
|
+
storedAt: string;
|
|
637
|
+
document: WorldDocument;
|
|
638
|
+
documentUrl?: string;
|
|
639
|
+
integrity?: string;
|
|
640
|
+
}
|
|
641
|
+
export interface AnyoPlayerWorldCache {
|
|
642
|
+
get(key: string): AnyoPlayerWorldCacheEntry | null | Promise<AnyoPlayerWorldCacheEntry | null>;
|
|
643
|
+
set(key: string, entry: AnyoPlayerWorldCacheEntry): void | Promise<void>;
|
|
644
|
+
delete(key: string): void | Promise<void>;
|
|
645
|
+
clear?(): void | Promise<void>;
|
|
646
|
+
}
|
|
647
|
+
export interface AnyoPlayerVirtualFileSystem {
|
|
648
|
+
files: ReadonlyMap<string, Blob | ArrayBuffer | string> | Readonly<Record<string, Blob | ArrayBuffer | string>>;
|
|
649
|
+
entry?: string;
|
|
650
|
+
}
|
|
651
|
+
export type AnyoPlayerArchiveDecoder = (archive: Blob | ArrayBuffer, signal: AbortSignal) => Promise<AnyoPlayerVirtualFileSystem>;
|
|
652
|
+
export interface AnyoPlayerLoadingOptions {
|
|
653
|
+
cache?: false | AnyoPlayerWorldCache;
|
|
654
|
+
cacheMode?: AnyoPlayerCacheMode;
|
|
655
|
+
migrate?: boolean;
|
|
656
|
+
verifyIntegrity?: boolean;
|
|
657
|
+
maxDocumentBytes?: number;
|
|
658
|
+
archiveDecoder?: AnyoPlayerArchiveDecoder;
|
|
659
|
+
}
|
|
660
|
+
export interface AnyoPlayerUrlSource {
|
|
661
|
+
url: string | URL;
|
|
662
|
+
request?: Omit<RequestInit, 'signal'>;
|
|
663
|
+
integrity?: string;
|
|
664
|
+
cacheKey?: string;
|
|
665
|
+
}
|
|
666
|
+
export interface AnyoPlayerJsonSource {
|
|
667
|
+
json: string;
|
|
668
|
+
baseUrl?: string | URL;
|
|
669
|
+
integrity?: string;
|
|
670
|
+
}
|
|
671
|
+
export interface AnyoPlayerDocumentSource {
|
|
672
|
+
document: WorldDocument;
|
|
673
|
+
}
|
|
674
|
+
export interface AnyoPlayerBlobSource {
|
|
675
|
+
blob: Blob;
|
|
676
|
+
name?: string;
|
|
677
|
+
baseUrl?: string | URL;
|
|
678
|
+
integrity?: string;
|
|
679
|
+
}
|
|
680
|
+
export interface AnyoPlayerFileMapSource extends AnyoPlayerVirtualFileSystem {
|
|
681
|
+
baseUrl?: string | URL;
|
|
682
|
+
integrity?: string;
|
|
683
|
+
}
|
|
684
|
+
export interface AnyoPlayerArchiveSource {
|
|
685
|
+
archive: Blob | ArrayBuffer;
|
|
686
|
+
decoder?: AnyoPlayerArchiveDecoder;
|
|
687
|
+
entry?: string;
|
|
688
|
+
integrity?: string;
|
|
689
|
+
}
|
|
690
|
+
export type AnyoPlayerSource = WorldDocument | string | URL | Blob | AnyoPlayerUrlSource | AnyoPlayerJsonSource | AnyoPlayerDocumentSource | AnyoPlayerBlobSource | AnyoPlayerFileMapSource | AnyoPlayerArchiveSource;
|
|
691
|
+
export interface AnyoPlayerSessionStorage {
|
|
692
|
+
getItem(key: string): string | null | Promise<string | null>;
|
|
693
|
+
setItem(key: string, value: string): void | Promise<void>;
|
|
694
|
+
removeItem(key: string): void | Promise<void>;
|
|
695
|
+
}
|
|
696
|
+
export interface AnyoPlayerSessionOptions {
|
|
697
|
+
storage?: AnyoPlayerSessionStorage;
|
|
698
|
+
storageKey?: string;
|
|
699
|
+
worldKey?: string;
|
|
700
|
+
dataPaths?: readonly string[];
|
|
701
|
+
includeAllData?: boolean;
|
|
702
|
+
restoreOnLoad?: boolean;
|
|
703
|
+
saveOnPause?: boolean;
|
|
704
|
+
saveOnVisibilityHidden?: boolean;
|
|
705
|
+
strictWorldKey?: boolean;
|
|
706
|
+
strictDocumentVersion?: boolean;
|
|
707
|
+
strictRoom?: boolean;
|
|
708
|
+
}
|
|
709
|
+
export interface AnyoPlayerSessionCaptureOptions {
|
|
710
|
+
dataPaths?: readonly string[];
|
|
711
|
+
includeAllData?: boolean;
|
|
712
|
+
metadata?: Record<string, unknown>;
|
|
713
|
+
}
|
|
714
|
+
export interface AnyoPlayerSessionRestoreOptions {
|
|
715
|
+
restoreRuntimeData?: boolean;
|
|
716
|
+
restorePauseState?: boolean;
|
|
717
|
+
restoreXR?: boolean;
|
|
718
|
+
strictWorldKey?: boolean;
|
|
719
|
+
strictDocumentVersion?: boolean;
|
|
720
|
+
strictRoom?: boolean;
|
|
721
|
+
}
|
|
722
|
+
export interface AnyoPlayerSessionDataEntry {
|
|
723
|
+
path: string;
|
|
724
|
+
value: unknown;
|
|
725
|
+
}
|
|
726
|
+
export interface AnyoPlayerSessionSnapshot {
|
|
727
|
+
format: '@blcklab/anyo-player/session';
|
|
728
|
+
version: 1;
|
|
729
|
+
createdAt: string;
|
|
730
|
+
world: {
|
|
731
|
+
key?: string;
|
|
732
|
+
documentVersion: string;
|
|
733
|
+
room: string | null;
|
|
734
|
+
};
|
|
735
|
+
camera: {
|
|
736
|
+
position: [number, number, number];
|
|
737
|
+
yaw: number;
|
|
738
|
+
pitch: number;
|
|
739
|
+
};
|
|
740
|
+
xrRig?: {
|
|
741
|
+
position: [number, number, number];
|
|
742
|
+
yaw: number;
|
|
743
|
+
};
|
|
744
|
+
data?: AnyoPlayerSessionDataEntry[];
|
|
745
|
+
player: {
|
|
746
|
+
paused: boolean;
|
|
747
|
+
pauseReason: AnyoPlayerPauseReason | null;
|
|
748
|
+
inputMode: AnyoPlayerInputMode | null;
|
|
749
|
+
};
|
|
750
|
+
metadata?: Record<string, unknown>;
|
|
751
|
+
}
|
|
752
|
+
export interface AnyoPlayerSessionCapturedEvent {
|
|
753
|
+
snapshot: AnyoPlayerSessionSnapshot;
|
|
754
|
+
}
|
|
755
|
+
export interface AnyoPlayerSessionSavedEvent {
|
|
756
|
+
key: string;
|
|
757
|
+
snapshot: AnyoPlayerSessionSnapshot;
|
|
758
|
+
}
|
|
759
|
+
export interface AnyoPlayerSessionLoadedEvent {
|
|
760
|
+
key: string;
|
|
761
|
+
snapshot: AnyoPlayerSessionSnapshot | null;
|
|
762
|
+
}
|
|
763
|
+
export interface AnyoPlayerSessionRestoredEvent {
|
|
764
|
+
snapshot: AnyoPlayerSessionSnapshot;
|
|
765
|
+
}
|
|
766
|
+
export interface AnyoPlayerSessionClearedEvent {
|
|
767
|
+
key: string;
|
|
768
|
+
}
|
|
769
|
+
export interface AnyoPlayerRendererOptions {
|
|
770
|
+
backend?: 'auto' | 'webgpu' | 'webgl2';
|
|
771
|
+
antialias?: boolean;
|
|
772
|
+
alpha?: boolean;
|
|
773
|
+
pixelRatio?: number;
|
|
774
|
+
maxPixelRatio?: number;
|
|
775
|
+
fieldOfView?: number;
|
|
776
|
+
near?: number;
|
|
777
|
+
far?: number;
|
|
778
|
+
development?: boolean;
|
|
779
|
+
maxPointLights?: number;
|
|
780
|
+
/** Shared Sekai64 S1–S7 color output configuration. */
|
|
781
|
+
colorManagement?: EngineOptions['colorManagement'];
|
|
782
|
+
/** Lightweight hemisphere/image-based environment contribution. */
|
|
783
|
+
environmentLighting?: EngineOptions['environmentLighting'];
|
|
784
|
+
/** Directional shadow-map quality and bias controls. */
|
|
785
|
+
shadows?: EngineOptions['shadows'];
|
|
786
|
+
/** Texture filtering and output dithering controls. */
|
|
787
|
+
imageQuality?: EngineOptions['imageQuality'];
|
|
788
|
+
/** Optional host override for world-authored distance/height atmosphere. */
|
|
789
|
+
atmosphere?: EngineOptions['atmosphere'];
|
|
790
|
+
/** Optional host override for world-authored display color grading. */
|
|
791
|
+
colorGrading?: EngineOptions['colorGrading'];
|
|
792
|
+
/** GPU post-processing plan: contact AO, bloom, and optional outlines. */
|
|
793
|
+
postProcessing?: EngineOptions['postProcessing'];
|
|
794
|
+
/** Renderer-side culling, bounds caching, sorting, and shadow-caster controls. */
|
|
795
|
+
optimization?: EngineOptions['optimization'];
|
|
796
|
+
/** Optional beveled geometry for authored entity boxes; structural building boxes stay exact. */
|
|
797
|
+
entityGeometry?: {
|
|
798
|
+
beveledBoxes?: boolean;
|
|
799
|
+
bevelRadius?: number;
|
|
800
|
+
bevelSegments?: number;
|
|
801
|
+
};
|
|
802
|
+
assetConcurrency?: number;
|
|
803
|
+
/** Trusted host-installed format loaders, forwarded to the Sekai64 renderer. */
|
|
804
|
+
assetLoaders?: readonly AssetLoaderRegistration<Node>[];
|
|
805
|
+
/** Optional Sekai64 renderer modules installed with the renderer lifecycle. */
|
|
806
|
+
modules?: readonly RendererModule[];
|
|
807
|
+
}
|
|
808
|
+
export interface AnyoPlayerDesktopKeyBindings {
|
|
809
|
+
forward: readonly string[];
|
|
810
|
+
backward: readonly string[];
|
|
811
|
+
left: readonly string[];
|
|
812
|
+
right: readonly string[];
|
|
813
|
+
run: readonly string[];
|
|
814
|
+
jump: readonly string[];
|
|
815
|
+
}
|
|
816
|
+
export interface AnyoPlayerTouchOptions {
|
|
817
|
+
moveRadius?: number;
|
|
818
|
+
deadZone?: number;
|
|
819
|
+
moveSensitivity?: number;
|
|
820
|
+
lookSensitivity?: number;
|
|
821
|
+
runButton?: boolean;
|
|
822
|
+
jumpButton?: boolean;
|
|
823
|
+
preventDefault?: boolean;
|
|
824
|
+
tapThreshold?: number;
|
|
825
|
+
tapMaxDuration?: number;
|
|
826
|
+
}
|
|
827
|
+
export type AnyoPlayerVec3 = readonly [number, number, number];
|
|
828
|
+
export type AnyoPlayerCameraMode = 'explore' | 'orbit' | 'top' | 'free';
|
|
829
|
+
export interface AnyoPlayerCameraBounds {
|
|
830
|
+
min: AnyoPlayerVec3;
|
|
831
|
+
max: AnyoPlayerVec3;
|
|
832
|
+
}
|
|
833
|
+
export interface AnyoPlayerCameraFrameOptions {
|
|
834
|
+
target?: AnyoPlayerVec3;
|
|
835
|
+
bounds?: AnyoPlayerCameraBounds;
|
|
836
|
+
radius?: number;
|
|
837
|
+
distance?: number;
|
|
838
|
+
/** Multiplicative framing padding. Values below 1 are clamped. */
|
|
839
|
+
padding?: number;
|
|
840
|
+
northUp?: boolean;
|
|
841
|
+
}
|
|
842
|
+
export interface AnyoPlayerCameraModeOptions extends AnyoPlayerCameraFrameOptions {
|
|
843
|
+
yaw?: number;
|
|
844
|
+
pitch?: number;
|
|
845
|
+
speed?: number;
|
|
846
|
+
restoreExplorePose?: boolean;
|
|
847
|
+
}
|
|
848
|
+
export interface AnyoPlayerTeleportOptions {
|
|
849
|
+
position: AnyoPlayerVec3;
|
|
850
|
+
rotation?: readonly [number, number];
|
|
851
|
+
resetMotion?: boolean;
|
|
852
|
+
clearInput?: boolean;
|
|
853
|
+
}
|
|
854
|
+
export interface AnyoPlayerCameraModeChange {
|
|
855
|
+
previous: AnyoPlayerCameraMode;
|
|
856
|
+
mode: AnyoPlayerCameraMode;
|
|
857
|
+
}
|
|
858
|
+
export interface AnyoPlayerTeleportedEvent {
|
|
859
|
+
position: AnyoPlayerVec3;
|
|
860
|
+
rotation: readonly [number, number];
|
|
861
|
+
resetMotion: boolean;
|
|
862
|
+
}
|
|
863
|
+
export type AnyoPlayerFallRecoveryState = 'idle' | 'recovering' | 'recovered' | 'failed';
|
|
864
|
+
export interface AnyoPlayerFallRecoveryOptions {
|
|
865
|
+
minimumY?: number;
|
|
866
|
+
maxAttempts?: number;
|
|
867
|
+
cooldownMs?: number;
|
|
868
|
+
supportTolerance?: number;
|
|
869
|
+
resetAttemptsAfterSeconds?: number;
|
|
870
|
+
}
|
|
871
|
+
export interface AnyoPlayerFallRecoveryStatus {
|
|
872
|
+
state: AnyoPlayerFallRecoveryState;
|
|
873
|
+
attempt: number;
|
|
874
|
+
maxAttempts: number;
|
|
875
|
+
position: AnyoPlayerVec3 | null;
|
|
876
|
+
message: string | null;
|
|
877
|
+
}
|
|
878
|
+
export interface AnyoPlayerFallRecoveryChange {
|
|
879
|
+
previous: AnyoPlayerFallRecoveryStatus;
|
|
880
|
+
recovery: AnyoPlayerFallRecoveryStatus;
|
|
881
|
+
}
|
|
882
|
+
export interface AnyoPlayerExplorationOptions {
|
|
883
|
+
desktop?: boolean;
|
|
884
|
+
touch?: boolean | AnyoPlayerTouchOptions;
|
|
885
|
+
vr?: boolean | AnyoPlayerVROptions;
|
|
886
|
+
pointerLock?: boolean;
|
|
887
|
+
lookSensitivity?: number;
|
|
888
|
+
keys?: Partial<AnyoPlayerDesktopKeyBindings>;
|
|
889
|
+
preventDefaultKeys?: boolean;
|
|
890
|
+
xr?: XRExplorationPluginOptions;
|
|
891
|
+
/** Verified-ground recovery. Set false to disable. */
|
|
892
|
+
fallRecovery?: false | AnyoPlayerFallRecoveryOptions;
|
|
893
|
+
}
|
|
894
|
+
export type AnyoPlayerInteractionTrigger = 'hover' | 'reticle' | 'select';
|
|
895
|
+
export type AnyoPlayerReticleMode = 'pointer-lock' | 'running';
|
|
896
|
+
export interface AnyoPlayerInteractionContext {
|
|
897
|
+
trigger: AnyoPlayerInteractionTrigger;
|
|
898
|
+
entityId?: string;
|
|
899
|
+
primitiveId?: string;
|
|
900
|
+
instanceId?: number;
|
|
901
|
+
source?: string;
|
|
902
|
+
data?: unknown;
|
|
903
|
+
action?: string;
|
|
904
|
+
event?: string;
|
|
905
|
+
params?: Record<string, unknown>;
|
|
906
|
+
distance?: number;
|
|
907
|
+
}
|
|
908
|
+
export interface AnyoPlayerInteractionPromptContent {
|
|
909
|
+
text: string;
|
|
910
|
+
title?: string;
|
|
911
|
+
description?: string;
|
|
912
|
+
actionLabel?: string;
|
|
913
|
+
inputHint?: string;
|
|
914
|
+
ariaLabel?: string;
|
|
915
|
+
}
|
|
916
|
+
export type AnyoPlayerInteractionPromptResolver = (context: AnyoPlayerInteractionContext) => string | AnyoPlayerInteractionPromptContent | null | undefined;
|
|
917
|
+
export interface AnyoPlayerInteractionReticleOptions {
|
|
918
|
+
enabled?: boolean;
|
|
919
|
+
mode?: AnyoPlayerReticleMode;
|
|
920
|
+
sampleInterval?: number;
|
|
921
|
+
maxDistance?: number;
|
|
922
|
+
}
|
|
923
|
+
export interface AnyoPlayerInteractionOptions {
|
|
924
|
+
enabled?: boolean;
|
|
925
|
+
defaultText?: string;
|
|
926
|
+
dataKey?: string;
|
|
927
|
+
selectionDuration?: number;
|
|
928
|
+
resolvePrompt?: AnyoPlayerInteractionPromptResolver;
|
|
929
|
+
reticle?: boolean | AnyoPlayerInteractionReticleOptions;
|
|
930
|
+
activateKeys?: readonly string[];
|
|
931
|
+
}
|
|
932
|
+
export interface AnyoPlayerInteractionTargetState {
|
|
933
|
+
available: boolean;
|
|
934
|
+
entityId: string | null;
|
|
935
|
+
primitiveId: string | null;
|
|
936
|
+
instanceId: number | null;
|
|
937
|
+
distance: number | null;
|
|
938
|
+
source: 'reticle' | null;
|
|
939
|
+
}
|
|
940
|
+
export interface AnyoPlayerReticleState {
|
|
941
|
+
visible: boolean;
|
|
942
|
+
active: boolean;
|
|
943
|
+
}
|
|
944
|
+
export interface AnyoPlayerInteractionPromptState {
|
|
945
|
+
visible: boolean;
|
|
946
|
+
text: string;
|
|
947
|
+
title: string | null;
|
|
948
|
+
description: string | null;
|
|
949
|
+
actionLabel: string | null;
|
|
950
|
+
inputHint: string | null;
|
|
951
|
+
ariaLabel: string | null;
|
|
952
|
+
actionAvailable: boolean;
|
|
953
|
+
trigger: AnyoPlayerInteractionTrigger | null;
|
|
954
|
+
entityId: string | null;
|
|
955
|
+
primitiveId: string | null;
|
|
956
|
+
}
|
|
957
|
+
export interface AnyoPlayerUiLabels {
|
|
958
|
+
loadingTitle: string;
|
|
959
|
+
resolvingSource: string;
|
|
960
|
+
creatingRuntime: string;
|
|
961
|
+
loadingWorld: string;
|
|
962
|
+
waitingReady: string;
|
|
963
|
+
loadingAssets: string;
|
|
964
|
+
replacingWorld: string;
|
|
965
|
+
replacementFailed: string;
|
|
966
|
+
readyWithWarnings: string;
|
|
967
|
+
enterTitle: string;
|
|
968
|
+
enterMessage: string;
|
|
969
|
+
enterButton: string;
|
|
970
|
+
reenterMessage: string;
|
|
971
|
+
pointerLockFailed: string;
|
|
972
|
+
pause: string;
|
|
973
|
+
resume: string;
|
|
974
|
+
muteAudio: string;
|
|
975
|
+
unmuteAudio: string;
|
|
976
|
+
unlockAudio: string;
|
|
977
|
+
audioUnavailable: string;
|
|
978
|
+
takeScreenshot: string;
|
|
979
|
+
screenshotCaptured: string;
|
|
980
|
+
screenshotFailed: string;
|
|
981
|
+
pauseMenuTitle: string;
|
|
982
|
+
pauseMenuMessage: string;
|
|
983
|
+
pausedTitle: string;
|
|
984
|
+
pausedMessage: string;
|
|
985
|
+
visibilityPaused: string;
|
|
986
|
+
offscreenPaused: string;
|
|
987
|
+
enterFullscreen: string;
|
|
988
|
+
exitFullscreen: string;
|
|
989
|
+
fullscreenFailed: string;
|
|
990
|
+
touchMove: string;
|
|
991
|
+
touchRun: string;
|
|
992
|
+
touchJump: string;
|
|
993
|
+
interactionDefault: string;
|
|
994
|
+
interactionAction: string;
|
|
995
|
+
interactionHint: string;
|
|
996
|
+
vrChecking: string;
|
|
997
|
+
enterVR: string;
|
|
998
|
+
exitVR: string;
|
|
999
|
+
vrUnsupported: string;
|
|
1000
|
+
vrEntering: string;
|
|
1001
|
+
vrActive: string;
|
|
1002
|
+
vrExiting: string;
|
|
1003
|
+
vrTrackingLost: string;
|
|
1004
|
+
vrTrackingRestored: string;
|
|
1005
|
+
vrInputs: string;
|
|
1006
|
+
vrEnterFailed: string;
|
|
1007
|
+
vrExitFailed: string;
|
|
1008
|
+
errorTitle: string;
|
|
1009
|
+
retry: string;
|
|
1010
|
+
webglContextLost: string;
|
|
1011
|
+
webglContextRestored: string;
|
|
1012
|
+
webgpuDeviceLost: string;
|
|
1013
|
+
worldControls: string;
|
|
1014
|
+
loadingProgress: string;
|
|
1015
|
+
}
|
|
1016
|
+
export type AnyoPlayerUiStyleMode = 'auto' | 'external' | 'inject';
|
|
1017
|
+
export type AnyoPlayerUiAdapterMode = 'augment' | 'replace';
|
|
1018
|
+
export type AnyoPlayerUiSlotName = 'loading' | 'diagnostic' | 'xr-status' | 'reticle' | 'interaction' | 'enter' | 'pause' | 'controls' | 'error';
|
|
1019
|
+
export interface AnyoPlayerThemeTokens {
|
|
1020
|
+
background?: string;
|
|
1021
|
+
surface?: string;
|
|
1022
|
+
text?: string;
|
|
1023
|
+
muted?: string;
|
|
1024
|
+
border?: string;
|
|
1025
|
+
accent?: string;
|
|
1026
|
+
accentText?: string;
|
|
1027
|
+
warning?: string;
|
|
1028
|
+
error?: string;
|
|
1029
|
+
panelRadius?: string;
|
|
1030
|
+
controlRadius?: string;
|
|
1031
|
+
fontFamily?: string;
|
|
1032
|
+
backdropBlur?: string;
|
|
1033
|
+
}
|
|
1034
|
+
export interface AnyoPlayerUiStyleOptions {
|
|
1035
|
+
mode?: AnyoPlayerUiStyleMode;
|
|
1036
|
+
root?: Document | ShadowRoot | null;
|
|
1037
|
+
nonce?: string;
|
|
1038
|
+
}
|
|
1039
|
+
export interface AnyoPlayerUiDiagnosticSnapshot {
|
|
1040
|
+
message: string;
|
|
1041
|
+
severity: 'info' | 'warning' | 'error' | 'fatal';
|
|
1042
|
+
}
|
|
1043
|
+
export interface AnyoPlayerUiSnapshot {
|
|
1044
|
+
phase: AnyoPlayerLoadingPhase;
|
|
1045
|
+
progress: RendererAssetProgress;
|
|
1046
|
+
readyStatus: AnyoPlayerReadyStatus | null;
|
|
1047
|
+
paused: boolean;
|
|
1048
|
+
pauseReason: AnyoPlayerPauseReason | null;
|
|
1049
|
+
fullscreen: boolean;
|
|
1050
|
+
interactionPrompt: AnyoPlayerInteractionPromptState;
|
|
1051
|
+
reticle: AnyoPlayerReticleState;
|
|
1052
|
+
vrSupport: AnyoPlayerVRSupportState;
|
|
1053
|
+
vrSession: 'idle' | 'entering' | 'active' | 'exiting';
|
|
1054
|
+
xrTracking: AnyoPlayerXRTrackingState;
|
|
1055
|
+
xrInputCount: number;
|
|
1056
|
+
audio: AnyoPlayerAudioState;
|
|
1057
|
+
caption: AnyoPlayerCaptionState;
|
|
1058
|
+
error: AnyoPlayerError | null;
|
|
1059
|
+
diagnostic: AnyoPlayerUiDiagnosticSnapshot | null;
|
|
1060
|
+
}
|
|
1061
|
+
export interface AnyoPlayerUiAdapterActions {
|
|
1062
|
+
retry(): Promise<void>;
|
|
1063
|
+
enter(): void;
|
|
1064
|
+
togglePause(): void;
|
|
1065
|
+
toggleFullscreen(): Promise<void>;
|
|
1066
|
+
toggleVR(): Promise<void>;
|
|
1067
|
+
interact(): Promise<boolean>;
|
|
1068
|
+
toggleAudio(): Promise<void>;
|
|
1069
|
+
captureScreenshot(): Promise<void>;
|
|
1070
|
+
}
|
|
1071
|
+
export type AnyoPlayerUiSlotMap = Readonly<Record<AnyoPlayerUiSlotName, HTMLElement>>;
|
|
1072
|
+
export interface AnyoPlayerUiAdapterContext {
|
|
1073
|
+
root: HTMLElement;
|
|
1074
|
+
slots: AnyoPlayerUiSlotMap;
|
|
1075
|
+
actions: AnyoPlayerUiAdapterActions;
|
|
1076
|
+
labels: Readonly<AnyoPlayerUiLabels>;
|
|
1077
|
+
getSnapshot(): AnyoPlayerUiSnapshot;
|
|
1078
|
+
}
|
|
1079
|
+
export interface AnyoPlayerUiAdapter {
|
|
1080
|
+
mode?: AnyoPlayerUiAdapterMode;
|
|
1081
|
+
mount(context: AnyoPlayerUiAdapterContext): void | (() => void);
|
|
1082
|
+
update?(snapshot: AnyoPlayerUiSnapshot): void;
|
|
1083
|
+
dispose?(): void;
|
|
1084
|
+
}
|
|
1085
|
+
export interface AnyoPlayerThemeChangeEvent {
|
|
1086
|
+
theme: Readonly<AnyoPlayerThemeTokens>;
|
|
1087
|
+
}
|
|
1088
|
+
export interface AnyoPlayerUiOptions {
|
|
1089
|
+
showProgress?: boolean;
|
|
1090
|
+
showProgressDetails?: boolean;
|
|
1091
|
+
showDiagnostics?: boolean;
|
|
1092
|
+
showErrors?: boolean;
|
|
1093
|
+
showEnterPrompt?: boolean;
|
|
1094
|
+
showControls?: boolean;
|
|
1095
|
+
showPauseControl?: boolean;
|
|
1096
|
+
showAudioControl?: boolean;
|
|
1097
|
+
showFullscreenControl?: boolean;
|
|
1098
|
+
showTouchControls?: boolean;
|
|
1099
|
+
showInteractionPrompt?: boolean;
|
|
1100
|
+
showInteractionAction?: boolean;
|
|
1101
|
+
showReticle?: boolean;
|
|
1102
|
+
showVRControl?: boolean;
|
|
1103
|
+
showXRStatus?: boolean;
|
|
1104
|
+
allowRetry?: boolean;
|
|
1105
|
+
className?: string;
|
|
1106
|
+
labels?: Partial<AnyoPlayerUiLabels>;
|
|
1107
|
+
theme?: AnyoPlayerThemeTokens;
|
|
1108
|
+
styles?: false | AnyoPlayerUiStyleOptions;
|
|
1109
|
+
adapter?: AnyoPlayerUiAdapter;
|
|
1110
|
+
}
|
|
1111
|
+
export interface AnyoPlayerWebSurfaceOptions {
|
|
1112
|
+
/**
|
|
1113
|
+
* Reuse a host-owned registry across players or application modules.
|
|
1114
|
+
* Player creates an isolated registry when omitted.
|
|
1115
|
+
*/
|
|
1116
|
+
registry?: WebSurfaceAppRegistry;
|
|
1117
|
+
/**
|
|
1118
|
+
* Convenience registrations installed for the lifetime of this Player.
|
|
1119
|
+
* These registrations are removed during disposal without clearing a host-owned registry.
|
|
1120
|
+
*/
|
|
1121
|
+
apps?: Readonly<Record<string, RegisteredWebSurfaceApp>>;
|
|
1122
|
+
/**
|
|
1123
|
+
* Optional host-owned overlay root. When omitted, Anyo creates and owns a fixed document root.
|
|
1124
|
+
*/
|
|
1125
|
+
root?: HTMLElement;
|
|
1126
|
+
zIndex?: number;
|
|
1127
|
+
externalUrls?: WebSurfaceExternalUrlPolicy;
|
|
1128
|
+
onDiagnostic?: (diagnostic: WebSurfaceDiagnostic) => void;
|
|
1129
|
+
}
|
|
1130
|
+
export interface AnyoPlayerComponentOptions {
|
|
1131
|
+
/** Host-owned registry used by the built-in entity compiler. */
|
|
1132
|
+
registry?: ComponentTypeRegistry;
|
|
1133
|
+
/** Policy for component types that are not present in the registry. */
|
|
1134
|
+
unknown?: UnknownComponentPolicy;
|
|
1135
|
+
}
|
|
1136
|
+
export interface AnyoPlayerOptions {
|
|
1137
|
+
container: HTMLElement;
|
|
1138
|
+
canvas?: HTMLCanvasElement;
|
|
1139
|
+
source?: AnyoPlayerSource;
|
|
1140
|
+
baseUrl?: string | URL;
|
|
1141
|
+
renderer?: AnyoPlayerRendererOptions;
|
|
1142
|
+
performance?: false | AnyoPlayerPerformanceOptions;
|
|
1143
|
+
loading?: false | AnyoPlayerLoadingOptions;
|
|
1144
|
+
exploration?: AnyoPlayerExplorationOptions;
|
|
1145
|
+
view?: false | AnyoPlayerViewPreferenceOptions;
|
|
1146
|
+
webSurface?: false | AnyoPlayerWebSurfaceOptions;
|
|
1147
|
+
/** Extension component registry/policy used by the built-in entity compiler. */
|
|
1148
|
+
components?: AnyoPlayerComponentOptions;
|
|
1149
|
+
/**
|
|
1150
|
+
* Trusted host-installed Anyo plugins appended after Player built-ins.
|
|
1151
|
+
* Plugins are executable host code and are never read from world JSON.
|
|
1152
|
+
*/
|
|
1153
|
+
plugins?: readonly WorldPlugin[];
|
|
1154
|
+
/** Trusted host-installed fixed-step runtime systems, including optional physics. */
|
|
1155
|
+
systems?: readonly WorldSystem[];
|
|
1156
|
+
/** Fixed-step scheduler tuning shared by installed runtime systems. */
|
|
1157
|
+
systemOptions?: RuntimeSystemsOptions;
|
|
1158
|
+
interaction?: false | AnyoPlayerInteractionOptions;
|
|
1159
|
+
resize?: false | AnyoPlayerResizeOptions;
|
|
1160
|
+
visibility?: false | AnyoPlayerVisibilityOptions;
|
|
1161
|
+
embedding?: false | AnyoPlayerEmbeddingOptions;
|
|
1162
|
+
navigation?: false | AnyoPlayerNavigationOptions;
|
|
1163
|
+
fullscreen?: false | AnyoPlayerFullscreenOptions;
|
|
1164
|
+
validation?: WorldValidationOptions;
|
|
1165
|
+
ui?: false | AnyoPlayerUiOptions;
|
|
1166
|
+
session?: false | AnyoPlayerSessionOptions;
|
|
1167
|
+
input?: false | AnyoPlayerInputBindingsOptions;
|
|
1168
|
+
accessibility?: false | AnyoPlayerAccessibilityOptions;
|
|
1169
|
+
audio?: false | AnyoPlayerAudioOptions;
|
|
1170
|
+
pauseMenu?: false | AnyoPlayerPauseMenuOptions;
|
|
1171
|
+
rendererRecovery?: false | AnyoPlayerRendererRecoveryOptions;
|
|
1172
|
+
analytics?: false | AnyoPlayerAnalyticsOptions;
|
|
1173
|
+
diagnostics?: false | AnyoPlayerDiagnosticOptions;
|
|
1174
|
+
ariaLabel?: string;
|
|
1175
|
+
fetch?: typeof globalThis.fetch;
|
|
1176
|
+
onWarning?: (message: string) => void;
|
|
1177
|
+
}
|
|
1178
|
+
export interface AnyoPlayerStateChange {
|
|
1179
|
+
previous: AnyoPlayerState;
|
|
1180
|
+
state: AnyoPlayerState;
|
|
1181
|
+
}
|
|
1182
|
+
export interface AnyoPlayerPhaseChange {
|
|
1183
|
+
previous: AnyoPlayerLoadingPhase;
|
|
1184
|
+
phase: AnyoPlayerLoadingPhase;
|
|
1185
|
+
}
|
|
1186
|
+
export interface AnyoPlayerReadyEvent {
|
|
1187
|
+
world: World;
|
|
1188
|
+
progress: RendererAssetProgress;
|
|
1189
|
+
status: AnyoPlayerReadyStatus;
|
|
1190
|
+
}
|
|
1191
|
+
export interface AnyoPlayerWorldReplacingEvent {
|
|
1192
|
+
world: World;
|
|
1193
|
+
source: AnyoPlayerSource;
|
|
1194
|
+
}
|
|
1195
|
+
export interface AnyoPlayerWorldReplacedEvent extends AnyoPlayerReadyEvent {
|
|
1196
|
+
}
|
|
1197
|
+
export interface AnyoPlayerEnteredEvent {
|
|
1198
|
+
world: World;
|
|
1199
|
+
mode: AnyoPlayerInputMode;
|
|
1200
|
+
pointerLockRequested: boolean;
|
|
1201
|
+
}
|
|
1202
|
+
export type AnyoPlayerExitReason = 'blur' | 'window-blur' | 'escape' | 'pointer-lock-exit' | 'pointer-lock-error' | 'gamepad-disconnected' | 'runtime-error' | 'vr-enter' | 'replace-world' | 'session-restore' | 'pause' | 'visibility' | 'offscreen' | 'dispose' | 'camera-mode';
|
|
1203
|
+
export interface AnyoPlayerExitedEvent {
|
|
1204
|
+
reason: AnyoPlayerExitReason;
|
|
1205
|
+
}
|
|
1206
|
+
export interface AnyoPlayerPointerLockChange {
|
|
1207
|
+
locked: boolean;
|
|
1208
|
+
}
|
|
1209
|
+
export interface AnyoPlayerPauseEvent {
|
|
1210
|
+
reason: AnyoPlayerPauseReason;
|
|
1211
|
+
}
|
|
1212
|
+
export interface AnyoPlayerResumeEvent {
|
|
1213
|
+
reason: AnyoPlayerPauseReason;
|
|
1214
|
+
controlsRequested: boolean;
|
|
1215
|
+
}
|
|
1216
|
+
export interface AnyoPlayerFullscreenChange {
|
|
1217
|
+
fullscreen: boolean;
|
|
1218
|
+
}
|
|
1219
|
+
export interface AnyoPlayerVRSupportChange {
|
|
1220
|
+
previous: AnyoPlayerVRSupportState;
|
|
1221
|
+
state: AnyoPlayerVRSupportState;
|
|
1222
|
+
supported: boolean | null;
|
|
1223
|
+
}
|
|
1224
|
+
export interface AnyoPlayerXRStateChange {
|
|
1225
|
+
previous: XRSessionState;
|
|
1226
|
+
state: XRSessionState;
|
|
1227
|
+
}
|
|
1228
|
+
export interface AnyoPlayerXRTrackingChange {
|
|
1229
|
+
previous: AnyoPlayerXRTrackingState;
|
|
1230
|
+
state: AnyoPlayerXRTrackingState;
|
|
1231
|
+
}
|
|
1232
|
+
export interface AnyoPlayerXRInputChange {
|
|
1233
|
+
inputs: readonly XRInputSnapshot[];
|
|
1234
|
+
}
|
|
1235
|
+
export interface AnyoPlayerVREnteredEvent {
|
|
1236
|
+
world: World;
|
|
1237
|
+
inputs: readonly XRInputSnapshot[];
|
|
1238
|
+
}
|
|
1239
|
+
export interface AnyoPlayerVRExitedEvent {
|
|
1240
|
+
browserEnded: boolean;
|
|
1241
|
+
}
|
|
1242
|
+
export interface AnyoPlayerInteractionTargetChange {
|
|
1243
|
+
target: AnyoPlayerInteractionTargetState;
|
|
1244
|
+
}
|
|
1245
|
+
export interface AnyoPlayerInteractionActivatedEvent {
|
|
1246
|
+
target: AnyoPlayerInteractionTargetState;
|
|
1247
|
+
selected: boolean;
|
|
1248
|
+
}
|
|
1249
|
+
export interface AnyoPlayerWarning {
|
|
1250
|
+
message: string;
|
|
1251
|
+
}
|
|
1252
|
+
export interface AnyoPlayerEventMap {
|
|
1253
|
+
statechange: AnyoPlayerStateChange;
|
|
1254
|
+
phasechange: AnyoPlayerPhaseChange;
|
|
1255
|
+
progress: RendererAssetProgress;
|
|
1256
|
+
diagnostic: RendererDiagnostic;
|
|
1257
|
+
diagnosticrecorded: AnyoPlayerDiagnosticRecordedEvent;
|
|
1258
|
+
rendererrecoverychange: AnyoPlayerRendererRecoveryChange;
|
|
1259
|
+
performancechange: AnyoPlayerPerformanceChangeEvent;
|
|
1260
|
+
qualitypreferencechange: AnyoPlayerQualityPreferenceChangeEvent;
|
|
1261
|
+
qualitypreferencesaved: AnyoPlayerQualityPreferenceSavedEvent;
|
|
1262
|
+
qualitypreferenceloaded: AnyoPlayerQualityPreferenceLoadedEvent;
|
|
1263
|
+
qualitypreferencecleared: AnyoPlayerQualityPreferenceClearedEvent;
|
|
1264
|
+
viewpreferencechange: AnyoPlayerViewPreferenceChangeEvent;
|
|
1265
|
+
viewpreferencesaved: AnyoPlayerViewPreferenceSavedEvent;
|
|
1266
|
+
viewpreferenceloaded: AnyoPlayerViewPreferenceLoadedEvent;
|
|
1267
|
+
viewpreferencecleared: AnyoPlayerViewPreferenceClearedEvent;
|
|
1268
|
+
captionchange: AnyoPlayerCaptionChangeEvent;
|
|
1269
|
+
cameramodechange: AnyoPlayerCameraModeChange;
|
|
1270
|
+
teleported: AnyoPlayerTeleportedEvent;
|
|
1271
|
+
fallrecoverychange: AnyoPlayerFallRecoveryChange;
|
|
1272
|
+
telemetry: AnyoPlayerTelemetryEvent;
|
|
1273
|
+
analyticserror: AnyoPlayerError;
|
|
1274
|
+
warning: AnyoPlayerWarning;
|
|
1275
|
+
inputerror: AnyoPlayerError;
|
|
1276
|
+
pointerlockchange: AnyoPlayerPointerLockChange;
|
|
1277
|
+
resize: AnyoPlayerResizeEvent;
|
|
1278
|
+
paused: AnyoPlayerPauseEvent;
|
|
1279
|
+
resumed: AnyoPlayerResumeEvent;
|
|
1280
|
+
fullscreenchange: AnyoPlayerFullscreenChange;
|
|
1281
|
+
fullscreenerror: AnyoPlayerError;
|
|
1282
|
+
vrsupportchange: AnyoPlayerVRSupportChange;
|
|
1283
|
+
xrstatechange: AnyoPlayerXRStateChange;
|
|
1284
|
+
xrtrackingchange: AnyoPlayerXRTrackingChange;
|
|
1285
|
+
xrinputchange: AnyoPlayerXRInputChange;
|
|
1286
|
+
vrentered: AnyoPlayerVREnteredEvent;
|
|
1287
|
+
vrexited: AnyoPlayerVRExitedEvent;
|
|
1288
|
+
vrerror: AnyoPlayerError;
|
|
1289
|
+
entered: AnyoPlayerEnteredEvent;
|
|
1290
|
+
exited: AnyoPlayerExitedEvent;
|
|
1291
|
+
interaction: AnyoPlayerInteractionContext;
|
|
1292
|
+
interactionpromptchange: AnyoPlayerInteractionPromptState;
|
|
1293
|
+
interactiontargetchange: AnyoPlayerInteractionTargetChange;
|
|
1294
|
+
interactionactivated: AnyoPlayerInteractionActivatedEvent;
|
|
1295
|
+
interactionerror: AnyoPlayerError;
|
|
1296
|
+
error: AnyoPlayerError;
|
|
1297
|
+
ready: AnyoPlayerReadyEvent;
|
|
1298
|
+
worldreplacing: AnyoPlayerWorldReplacingEvent;
|
|
1299
|
+
worldreplaced: AnyoPlayerWorldReplacedEvent;
|
|
1300
|
+
worldreplaceerror: AnyoPlayerError;
|
|
1301
|
+
sessioncaptured: AnyoPlayerSessionCapturedEvent;
|
|
1302
|
+
sessionsaved: AnyoPlayerSessionSavedEvent;
|
|
1303
|
+
sessionloaded: AnyoPlayerSessionLoadedEvent;
|
|
1304
|
+
sessionrestored: AnyoPlayerSessionRestoredEvent;
|
|
1305
|
+
sessioncleared: AnyoPlayerSessionClearedEvent;
|
|
1306
|
+
sessionerror: AnyoPlayerError;
|
|
1307
|
+
inputbindingschange: AnyoPlayerInputBindingsChangeEvent;
|
|
1308
|
+
inputbindingssaved: AnyoPlayerInputBindingsSavedEvent;
|
|
1309
|
+
inputbindingsloaded: AnyoPlayerInputBindingsLoadedEvent;
|
|
1310
|
+
inputbindingscleared: AnyoPlayerInputBindingsClearedEvent;
|
|
1311
|
+
inputbindingserror: AnyoPlayerError;
|
|
1312
|
+
inputaction: AnyoPlayerInputActionEvent;
|
|
1313
|
+
gamepadchange: AnyoPlayerGamepadChangeEvent;
|
|
1314
|
+
reducedmotionchange: AnyoPlayerReducedMotionChange;
|
|
1315
|
+
inputmodalitychange: AnyoPlayerInputModalityChange;
|
|
1316
|
+
audiochange: AnyoPlayerAudioChangeEvent;
|
|
1317
|
+
audiounlocked: AnyoPlayerAudioUnlockedEvent;
|
|
1318
|
+
audioerror: AnyoPlayerError;
|
|
1319
|
+
screenshotcaptured: AnyoPlayerScreenshotCapturedEvent;
|
|
1320
|
+
screenshoterror: AnyoPlayerError;
|
|
1321
|
+
activationchange: AnyoPlayerActivationChange;
|
|
1322
|
+
intersectionchange: AnyoPlayerIntersectionChange;
|
|
1323
|
+
preloaded: AnyoPlayerPreloadedEvent;
|
|
1324
|
+
posterchange: AnyoPlayerPosterChange;
|
|
1325
|
+
worldnavigationchange: AnyoPlayerWorldNavigationChangeEvent;
|
|
1326
|
+
worldnavigationstart: AnyoPlayerWorldNavigationStartEvent;
|
|
1327
|
+
worldnavigationcomplete: AnyoPlayerWorldNavigationCompleteEvent;
|
|
1328
|
+
worldnavigationcanceled: AnyoPlayerWorldNavigationCanceledEvent;
|
|
1329
|
+
worldnavigationerror: AnyoPlayerWorldNavigationErrorEvent;
|
|
1330
|
+
worldpreloaded: AnyoPlayerWorldPreloadedEvent;
|
|
1331
|
+
themechange: AnyoPlayerThemeChangeEvent;
|
|
1332
|
+
disposed: undefined;
|
|
1333
|
+
}
|
|
1334
|
+
export type AnyoPlayerListener<TKey extends keyof AnyoPlayerEventMap> = (payload: AnyoPlayerEventMap[TKey]) => void;
|
|
1335
|
+
export interface AnyoPlayer {
|
|
1336
|
+
readonly container: HTMLElement;
|
|
1337
|
+
readonly canvas: HTMLCanvasElement;
|
|
1338
|
+
readonly state: AnyoPlayerState;
|
|
1339
|
+
readonly phase: AnyoPlayerLoadingPhase;
|
|
1340
|
+
readonly readyStatus: AnyoPlayerReadyStatus | null;
|
|
1341
|
+
readonly world: World | null;
|
|
1342
|
+
readonly webSurfaceRegistry: WebSurfaceAppRegistry | null;
|
|
1343
|
+
readonly progress: RendererAssetProgress;
|
|
1344
|
+
readonly error: AnyoPlayerError | null;
|
|
1345
|
+
readonly entered: boolean;
|
|
1346
|
+
readonly inputMode: AnyoPlayerInputMode | null;
|
|
1347
|
+
readonly touchEnabled: boolean;
|
|
1348
|
+
readonly pointerLocked: boolean;
|
|
1349
|
+
readonly paused: boolean;
|
|
1350
|
+
readonly pauseReason: AnyoPlayerPauseReason | null;
|
|
1351
|
+
readonly fullscreen: boolean;
|
|
1352
|
+
readonly viewport: AnyoPlayerResizeEvent;
|
|
1353
|
+
readonly interactionPrompt: AnyoPlayerInteractionPromptState;
|
|
1354
|
+
readonly interactionTarget: AnyoPlayerInteractionTargetState;
|
|
1355
|
+
readonly reticle: AnyoPlayerReticleState;
|
|
1356
|
+
readonly vrEnabled: boolean;
|
|
1357
|
+
readonly vrSupportState: AnyoPlayerVRSupportState;
|
|
1358
|
+
readonly vrSupported: boolean | null;
|
|
1359
|
+
readonly xrState: XRSessionState;
|
|
1360
|
+
readonly xrTracking: AnyoPlayerXRTrackingState;
|
|
1361
|
+
readonly xrInputs: readonly XRInputSnapshot[];
|
|
1362
|
+
readonly sessionEnabled: boolean;
|
|
1363
|
+
readonly sessionStorageAvailable: boolean;
|
|
1364
|
+
readonly sessionKey: string | null;
|
|
1365
|
+
readonly inputBindings: AnyoPlayerInputBindingMap;
|
|
1366
|
+
readonly inputBindingsStorageAvailable: boolean;
|
|
1367
|
+
readonly inputBindingsKey: string | null;
|
|
1368
|
+
readonly gamepadEnabled: boolean;
|
|
1369
|
+
readonly gamepads: readonly AnyoPlayerGamepadState[];
|
|
1370
|
+
readonly activeGamepad: number | null;
|
|
1371
|
+
readonly reducedMotion: boolean;
|
|
1372
|
+
readonly reducedMotionPreference: AnyoPlayerReducedMotionPreference;
|
|
1373
|
+
readonly inputModality: AnyoPlayerInputModality;
|
|
1374
|
+
readonly audio: AnyoPlayerAudioState;
|
|
1375
|
+
readonly rendererRecovery: AnyoPlayerRendererRecoveryStatus;
|
|
1376
|
+
readonly performance: AnyoPlayerPerformanceSnapshot;
|
|
1377
|
+
readonly qualityPreference: AnyoPlayerQualityPreferenceSnapshot;
|
|
1378
|
+
readonly deviceProfile: AnyoPlayerDeviceProfile;
|
|
1379
|
+
readonly viewPreference: AnyoPlayerViewPreferenceSnapshot;
|
|
1380
|
+
readonly sourceInfo: AnyoPlayerSourceInfo | null;
|
|
1381
|
+
readonly health: AnyoPlayerRuntimeHealth;
|
|
1382
|
+
readonly caption: AnyoPlayerCaptionState;
|
|
1383
|
+
readonly cameraMode: AnyoPlayerCameraMode;
|
|
1384
|
+
readonly fallRecovery: AnyoPlayerFallRecoveryStatus;
|
|
1385
|
+
readonly diagnostics: readonly AnyoPlayerDiagnosticRecord[];
|
|
1386
|
+
readonly telemetry: readonly AnyoPlayerTelemetryEvent[];
|
|
1387
|
+
readonly activated: boolean;
|
|
1388
|
+
readonly preloaded: boolean;
|
|
1389
|
+
readonly intersection: AnyoPlayerIntersectionState;
|
|
1390
|
+
readonly posterVisible: boolean;
|
|
1391
|
+
readonly worldIds: readonly string[];
|
|
1392
|
+
readonly currentWorldId: string | null;
|
|
1393
|
+
readonly navigation: AnyoPlayerWorldNavigationStatus;
|
|
1394
|
+
readonly theme: Readonly<AnyoPlayerThemeTokens>;
|
|
1395
|
+
preload(source?: AnyoPlayerSource): Promise<WorldDocument>;
|
|
1396
|
+
clearPreload(): void;
|
|
1397
|
+
activate(): Promise<void>;
|
|
1398
|
+
registerWorld(worldId: string, source: AnyoPlayerSource | AnyoPlayerWorldDefinition, options?: AnyoPlayerWorldRegistrationOptions): () => void;
|
|
1399
|
+
unregisterWorld(worldId: string): boolean;
|
|
1400
|
+
preloadWorld(worldId: string): Promise<WorldDocument>;
|
|
1401
|
+
clearWorldPreload(worldId?: string): void;
|
|
1402
|
+
cancelWorldPreload(worldId?: string): boolean;
|
|
1403
|
+
navigateTo(worldId: string, options?: AnyoPlayerNavigateOptions): Promise<void>;
|
|
1404
|
+
cancelNavigation(): boolean;
|
|
1405
|
+
load(source?: AnyoPlayerSource): Promise<void>;
|
|
1406
|
+
replaceWorld(source: AnyoPlayerSource): Promise<void>;
|
|
1407
|
+
retry(): Promise<void>;
|
|
1408
|
+
enter(): void;
|
|
1409
|
+
setCameraMode(mode: AnyoPlayerCameraMode, options?: AnyoPlayerCameraModeOptions): void;
|
|
1410
|
+
frameCamera(options?: AnyoPlayerCameraFrameOptions): void;
|
|
1411
|
+
teleport(options: AnyoPlayerTeleportOptions): void;
|
|
1412
|
+
pause(): void;
|
|
1413
|
+
resume(): void;
|
|
1414
|
+
enterFullscreen(): Promise<void>;
|
|
1415
|
+
exitFullscreen(): Promise<void>;
|
|
1416
|
+
toggleFullscreen(): Promise<void>;
|
|
1417
|
+
checkVRSupport(): Promise<boolean>;
|
|
1418
|
+
enterVR(): Promise<void>;
|
|
1419
|
+
exitVR(): Promise<void>;
|
|
1420
|
+
resizeNow(): AnyoPlayerResizeEvent;
|
|
1421
|
+
resetToSpawn(): void;
|
|
1422
|
+
setQualityPreset(preset: AnyoPlayerQualityPreset): AnyoPlayerPerformanceSnapshot;
|
|
1423
|
+
setTargetFps(targetFps: number): AnyoPlayerPerformanceSnapshot;
|
|
1424
|
+
setDynamicResolution(enabled: boolean): AnyoPlayerPerformanceSnapshot;
|
|
1425
|
+
getPerformanceSnapshot(): AnyoPlayerPerformanceSnapshot;
|
|
1426
|
+
saveQualityPreference(key?: string): Promise<AnyoPlayerQualityPreferenceSnapshot>;
|
|
1427
|
+
loadQualityPreference(key?: string): Promise<AnyoPlayerQualityPreferenceSnapshot | null>;
|
|
1428
|
+
clearQualityPreference(key?: string): Promise<void>;
|
|
1429
|
+
setViewPreference(preference: Partial<Omit<AnyoPlayerViewPreferenceSnapshot, 'format' | 'version'>>): AnyoPlayerViewPreferenceSnapshot;
|
|
1430
|
+
resetViewPreference(): AnyoPlayerViewPreferenceSnapshot;
|
|
1431
|
+
saveViewPreference(key?: string): Promise<AnyoPlayerViewPreferenceSnapshot>;
|
|
1432
|
+
loadViewPreference(key?: string): Promise<AnyoPlayerViewPreferenceSnapshot | null>;
|
|
1433
|
+
clearViewPreference(key?: string): Promise<void>;
|
|
1434
|
+
createRuntimeHealth(): AnyoPlayerRuntimeHealth;
|
|
1435
|
+
createRuntimeReport(): AnyoPlayerRuntimeReport;
|
|
1436
|
+
downloadRuntimeReport(filename?: string): AnyoPlayerRuntimeReport;
|
|
1437
|
+
createDiagnosticBundle(): AnyoPlayerDiagnosticBundle;
|
|
1438
|
+
downloadDiagnosticBundle(filename?: string): AnyoPlayerDiagnosticBundle;
|
|
1439
|
+
captureSession(options?: AnyoPlayerSessionCaptureOptions): AnyoPlayerSessionSnapshot;
|
|
1440
|
+
restoreSession(snapshot: unknown, options?: AnyoPlayerSessionRestoreOptions): Promise<AnyoPlayerSessionSnapshot>;
|
|
1441
|
+
saveSession(key?: string, options?: AnyoPlayerSessionCaptureOptions): Promise<AnyoPlayerSessionSnapshot>;
|
|
1442
|
+
loadSession(key?: string, options?: AnyoPlayerSessionRestoreOptions): Promise<AnyoPlayerSessionSnapshot | null>;
|
|
1443
|
+
clearSession(key?: string): Promise<void>;
|
|
1444
|
+
setInputBindings(bindings: Partial<AnyoPlayerInputBindingMap>, options?: {
|
|
1445
|
+
merge?: boolean;
|
|
1446
|
+
}): AnyoPlayerInputBindingMap;
|
|
1447
|
+
resetInputBindings(): AnyoPlayerInputBindingMap;
|
|
1448
|
+
saveInputBindings(key?: string): Promise<AnyoPlayerInputBindingsSnapshot>;
|
|
1449
|
+
loadInputBindings(key?: string): Promise<AnyoPlayerInputBindingsSnapshot | null>;
|
|
1450
|
+
clearInputBindings(key?: string): Promise<void>;
|
|
1451
|
+
setReducedMotion(preference: AnyoPlayerReducedMotionPreference): boolean;
|
|
1452
|
+
announce(message: string, options?: AnyoPlayerAnnouncementOptions): void;
|
|
1453
|
+
showCaption(text: string, options?: AnyoPlayerCaptionOptions): AnyoPlayerCaptionState;
|
|
1454
|
+
clearCaption(): void;
|
|
1455
|
+
registerCaptionTarget(target: AnyoPlayerCaptionTarget): () => void;
|
|
1456
|
+
registerVfxTarget(target: AnyoPlayerVfxTarget): () => void;
|
|
1457
|
+
registerMapTarget(target: AnyoPlayerMapTarget): () => void;
|
|
1458
|
+
setMapAttribution(text: string | null): void;
|
|
1459
|
+
registerAudioTarget(target: AnyoPlayerAudioTarget): () => void;
|
|
1460
|
+
unlockAudio(): Promise<AnyoPlayerAudioState>;
|
|
1461
|
+
setAudioMuted(muted: boolean): Promise<AnyoPlayerAudioState>;
|
|
1462
|
+
toggleAudioMuted(): Promise<AnyoPlayerAudioState>;
|
|
1463
|
+
captureScreenshot(options?: AnyoPlayerScreenshotOptions): Promise<AnyoPlayerScreenshotResult>;
|
|
1464
|
+
recoverRenderer(): Promise<void>;
|
|
1465
|
+
cancelRendererRecovery(): void;
|
|
1466
|
+
clearDiagnostics(): void;
|
|
1467
|
+
registerAnalyticsSink(sink: AnyoPlayerAnalyticsSink): () => void;
|
|
1468
|
+
trackTelemetry(name: string, details?: Record<string, unknown>, category?: AnyoPlayerTelemetryCategory): AnyoPlayerTelemetryEvent | null;
|
|
1469
|
+
clearTelemetry(): void;
|
|
1470
|
+
setTheme(theme: AnyoPlayerThemeTokens | null): Readonly<AnyoPlayerThemeTokens>;
|
|
1471
|
+
interact(): Promise<boolean>;
|
|
1472
|
+
registerAction(name: string, handler: ActionHandler): () => void;
|
|
1473
|
+
on<TKey extends keyof AnyoPlayerEventMap>(event: TKey, listener: AnyoPlayerListener<TKey>): () => void;
|
|
1474
|
+
disposeAsync(): Promise<void>;
|
|
1475
|
+
}
|
|
1476
|
+
//# sourceMappingURL=types.d.ts.map
|