@ai-game-assets/phaser 0.3.0 → 0.4.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/dist/debug-client.d.ts +13 -0
- package/dist/debug-client.d.ts.map +1 -1
- package/dist/debug-client.js +14 -0
- package/dist/debug-client.js.map +1 -1
- package/dist/derive-dialog.d.ts +50 -0
- package/dist/derive-dialog.d.ts.map +1 -0
- package/dist/derive-dialog.js +412 -0
- package/dist/derive-dialog.js.map +1 -0
- package/dist/designer-support.d.ts +4 -0
- package/dist/designer-support.d.ts.map +1 -1
- package/dist/designer-support.js +74 -2
- package/dist/designer-support.js.map +1 -1
- package/dist/designer.d.ts +1 -0
- package/dist/designer.d.ts.map +1 -1
- package/dist/designer.js +218 -4
- package/dist/designer.js.map +1 -1
- package/dist/loader.d.ts +1 -0
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +20 -9
- package/dist/loader.js.map +1 -1
- package/dist/runtime.d.ts +4 -0
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +23 -5
- package/dist/runtime.js.map +1 -1
- package/package.json +2 -2
package/dist/designer.js
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
|
+
import { resolveTargetAssetId } from "@ai-game-assets/core";
|
|
1
2
|
import { AiAssetDebugClient } from "./debug-client.js";
|
|
2
3
|
import { ensureMissingAiAssetFirstDrafts } from "./first-drafts.js";
|
|
4
|
+
import { createLocalDerivedOption, openDeriveDialog, referenceImageForCandidate } from "./derive-dialog.js";
|
|
3
5
|
import { assetWithGeneratedGeometry, audioGenerationOverridesFromInputs, bindKeyboardCapture, canEditGenerationFormat, createDesignerElements, effectiveGenerationFormat, ensureDesignerStyles, errorMessage, generationOverridesFromInputs, hasStyleGuide, imageSourceToDataUrl, isAbortError, isAudioAsset, isSvgSource, isVoiceAsset, mimeTypeFromDataUrl, normalizeAssetFormat, normalizeAudioFormat, openAnimationEditor, openAssetVersionsDialog, openAudioEditor, openFrameTouchUpEditor, openStyleGuideEditor, pickUploadFile, previewCurrentAsset, previewImageSource, previewOption, readableAssetName, renderAssetFolderBrowser, renderAudioPlayer, renderOptions, resolvePreviewDisplaySize, setStatus, stopStatusAnimation, styleGuideDraftFromManifest, styleGuideRequest, uploadedOptionFromFile, voiceGenerationOverridesFromInputs } from "./designer-support.js";
|
|
4
6
|
export function installAiAssetDesigner(options) {
|
|
5
7
|
ensureDesignerStyles();
|
|
6
8
|
const client = options.client ?? new AiAssetDebugClient();
|
|
7
9
|
let manifest = options.manifest;
|
|
8
10
|
let selectedAssetId = options.assetIds?.[0] ?? Object.keys(manifest.assets)[0];
|
|
11
|
+
let selectedTargetId = options.targetId;
|
|
9
12
|
let selectedTargetAssetId = selectedAssetId;
|
|
10
13
|
let selectedOption;
|
|
11
14
|
let stopCurrentAnimationPreview;
|
|
@@ -40,21 +43,21 @@ export function installAiAssetDesigner(options) {
|
|
|
40
43
|
elements.animationSelect.innerHTML = "";
|
|
41
44
|
if (asset.kind !== "collection") {
|
|
42
45
|
const baseOption = document.createElement("option");
|
|
43
|
-
baseOption.value = assetId;
|
|
46
|
+
baseOption.value = resolveTargetAssetId(manifest, assetId, selectedTargetId);
|
|
44
47
|
baseOption.textContent = isVoice ? "Base voice" : "Base image";
|
|
45
48
|
elements.animationSelect.append(baseOption);
|
|
46
49
|
}
|
|
47
50
|
for (const [key, linkedAnimation] of linkedAnimations) {
|
|
48
51
|
const option = document.createElement("option");
|
|
49
|
-
option.value = linkedAnimation.assetId;
|
|
52
|
+
option.value = resolveTargetAssetId(manifest, linkedAnimation.assetId, selectedTargetId);
|
|
50
53
|
option.textContent = linkedAnimation.label || readableAssetName(key);
|
|
51
54
|
elements.animationSelect.append(option);
|
|
52
55
|
}
|
|
53
56
|
elements.animationField.hidden = linkedAnimations.length === 0;
|
|
54
57
|
elements.animationField.firstElementChild.textContent = isVoice ? "Line" : "Animation";
|
|
55
58
|
selectedTargetAssetId = asset.kind === "collection" && linkedAnimations[0]
|
|
56
|
-
? linkedAnimations[0][1].assetId
|
|
57
|
-
: assetId;
|
|
59
|
+
? resolveTargetAssetId(manifest, linkedAnimations[0][1].assetId, selectedTargetId)
|
|
60
|
+
: resolveTargetAssetId(manifest, assetId, selectedTargetId);
|
|
58
61
|
elements.animationSelect.value = selectedTargetAssetId;
|
|
59
62
|
};
|
|
60
63
|
const syncTargetAsset = (assetId) => {
|
|
@@ -86,6 +89,7 @@ export function installAiAssetDesigner(options) {
|
|
|
86
89
|
elements.voiceTextField.firstChild.textContent = isVoiceLine ? "Text to say" : "Demo sentence";
|
|
87
90
|
elements.formatField.hidden = isAudio || elements.formatField.hidden;
|
|
88
91
|
elements.dimensionGrid.hidden = isAudio;
|
|
92
|
+
syncTargetVariantLabel(assetId);
|
|
89
93
|
elements.frameCountInput.value = String(asset.frameGrid?.frameCount ??
|
|
90
94
|
(asset.frameGrid ? asset.frameGrid.columns * asset.frameGrid.rows : 1));
|
|
91
95
|
elements.frameCountField.hidden = asset.kind === "image" || !asset.frameGrid;
|
|
@@ -116,6 +120,7 @@ export function installAiAssetDesigner(options) {
|
|
|
116
120
|
setStatus(elements, "", "idle");
|
|
117
121
|
elements.promoteButton.disabled = true;
|
|
118
122
|
elements.versionsButton.disabled = Object.keys(asset.versions).length <= 1;
|
|
123
|
+
elements.deriveButton.hidden = isAudio || deriveCandidatesForAsset(assetId).length === 0;
|
|
119
124
|
selectedOption = undefined;
|
|
120
125
|
editedCurrentOption = undefined;
|
|
121
126
|
previewedVersionName = undefined;
|
|
@@ -125,6 +130,88 @@ export function installAiAssetDesigner(options) {
|
|
|
125
130
|
syncTargetAsset(selectedTargetAssetId);
|
|
126
131
|
renderAssetBrowser();
|
|
127
132
|
};
|
|
133
|
+
const syncTargetVariantLabel = (assetId) => {
|
|
134
|
+
const target = selectedTargetId ? manifest.targets?.[selectedTargetId] : undefined;
|
|
135
|
+
const logicalAssetId = logicalAssetIdForTargetAsset(assetId);
|
|
136
|
+
elements.targetField.hidden = Object.keys(manifest.targets ?? {}).length === 0;
|
|
137
|
+
elements.targetSelect.value = selectedTargetId ?? "";
|
|
138
|
+
if (!target) {
|
|
139
|
+
elements.targetVariantLabel.hidden = true;
|
|
140
|
+
elements.targetVariantLabel.textContent = "";
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
if (logicalAssetId && logicalAssetId !== assetId) {
|
|
144
|
+
elements.targetVariantLabel.hidden = false;
|
|
145
|
+
elements.targetVariantLabel.textContent =
|
|
146
|
+
`${target.label ?? readableAssetName(target.id)} variant: ` +
|
|
147
|
+
`${readableAssetName(logicalAssetId)} -> ${readableAssetName(assetId)}`;
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
elements.targetVariantLabel.hidden = false;
|
|
151
|
+
elements.targetVariantLabel.textContent =
|
|
152
|
+
`${target.label ?? readableAssetName(target.id)} uses default ${readableAssetName(logicalAssetId ?? assetId)}.`;
|
|
153
|
+
};
|
|
154
|
+
const logicalAssetIdForTargetAsset = (targetAssetId) => {
|
|
155
|
+
const target = selectedTargetId ? manifest.targets?.[selectedTargetId] : undefined;
|
|
156
|
+
if (!target)
|
|
157
|
+
return targetAssetId;
|
|
158
|
+
for (const [logicalAssetId, variantAssetId] of Object.entries(target.variants)) {
|
|
159
|
+
if (variantAssetId === targetAssetId)
|
|
160
|
+
return logicalAssetId;
|
|
161
|
+
}
|
|
162
|
+
return targetAssetId;
|
|
163
|
+
};
|
|
164
|
+
const deriveCandidatesForAsset = (targetAssetId) => {
|
|
165
|
+
const logicalAssetId = logicalAssetIdForTargetAsset(targetAssetId) ?? targetAssetId;
|
|
166
|
+
const target = selectedTargetId ? manifest.targets?.[selectedTargetId] : undefined;
|
|
167
|
+
const selectedTargetUsesDefault = Boolean(selectedTargetId &&
|
|
168
|
+
target &&
|
|
169
|
+
targetAssetId === logicalAssetId &&
|
|
170
|
+
!target.variants[logicalAssetId]);
|
|
171
|
+
const candidates = [];
|
|
172
|
+
const addCandidate = (targetId, targetLabel, assetId) => {
|
|
173
|
+
if ((assetId === targetAssetId && !selectedTargetUsesDefault) ||
|
|
174
|
+
candidates.some((candidate) => candidate.assetId === assetId)) {
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
const asset = manifest.assets[assetId];
|
|
178
|
+
const activeVersion = asset?.versions[asset.activeVersion];
|
|
179
|
+
if (!asset || isAudioAsset(asset) || asset.kind === "collection" || !activeVersion?.file) {
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
candidates.push({
|
|
183
|
+
targetId,
|
|
184
|
+
targetLabel,
|
|
185
|
+
assetId,
|
|
186
|
+
asset,
|
|
187
|
+
src: activeVersion.file
|
|
188
|
+
});
|
|
189
|
+
};
|
|
190
|
+
addCandidate(undefined, "Default", logicalAssetId);
|
|
191
|
+
for (const target of Object.values(manifest.targets ?? {})) {
|
|
192
|
+
addCandidate(target.id, target.label ?? readableAssetName(target.id), target.variants[logicalAssetId] ?? logicalAssetId);
|
|
193
|
+
}
|
|
194
|
+
return candidates;
|
|
195
|
+
};
|
|
196
|
+
const ensureTargetVariantForDerive = async (targetAssetId) => {
|
|
197
|
+
if (!selectedTargetId)
|
|
198
|
+
return targetAssetId;
|
|
199
|
+
const logicalAssetId = logicalAssetIdForTargetAsset(targetAssetId) ?? targetAssetId;
|
|
200
|
+
const target = manifest.targets?.[selectedTargetId];
|
|
201
|
+
if (!target || target.variants[logicalAssetId]) {
|
|
202
|
+
return targetAssetId;
|
|
203
|
+
}
|
|
204
|
+
setStatus(elements, `Creating ${target.label ?? readableAssetName(target.id)} variant for ${readableAssetName(logicalAssetId)}...`, "busy");
|
|
205
|
+
const result = await client.ensureTargetVariant({
|
|
206
|
+
targetId: selectedTargetId,
|
|
207
|
+
assetId: logicalAssetId
|
|
208
|
+
});
|
|
209
|
+
manifest = result.manifest;
|
|
210
|
+
options.onManifestUpdated?.(manifest);
|
|
211
|
+
selectedTargetAssetId = result.assetId;
|
|
212
|
+
syncAsset(selectedAssetId);
|
|
213
|
+
return result.assetId;
|
|
214
|
+
};
|
|
128
215
|
const renderAssetBrowser = () => {
|
|
129
216
|
renderAssetFolderBrowser({
|
|
130
217
|
container: elements.assetBrowser,
|
|
@@ -168,6 +255,13 @@ export function installAiAssetDesigner(options) {
|
|
|
168
255
|
selectedAssetId = elements.assetSelect.value;
|
|
169
256
|
syncAsset(selectedAssetId);
|
|
170
257
|
});
|
|
258
|
+
elements.targetSelect.addEventListener("change", () => {
|
|
259
|
+
selectedTargetId = elements.targetSelect.value || undefined;
|
|
260
|
+
syncAsset(selectedAssetId);
|
|
261
|
+
setStatus(elements, selectedTargetId
|
|
262
|
+
? `Editing ${manifest.targets?.[selectedTargetId]?.label ?? readableAssetName(selectedTargetId)} target.`
|
|
263
|
+
: "Editing default target.", "info");
|
|
264
|
+
});
|
|
171
265
|
elements.animationSelect.addEventListener("change", () => {
|
|
172
266
|
selectedTargetAssetId = elements.animationSelect.value;
|
|
173
267
|
syncTargetAsset(selectedTargetAssetId);
|
|
@@ -349,6 +443,126 @@ export function installAiAssetDesigner(options) {
|
|
|
349
443
|
setStatus(elements, `Upload failed. ${errorMessage(error)}`, "error");
|
|
350
444
|
}
|
|
351
445
|
});
|
|
446
|
+
elements.deriveButton.addEventListener("click", async () => {
|
|
447
|
+
const derivationAssetId = await ensureTargetVariantForDerive(selectedTargetAssetId);
|
|
448
|
+
const asset = manifest.assets[derivationAssetId];
|
|
449
|
+
const generationFormat = effectiveGenerationFormat(manifest, formatDrafts, selectedAssetId, derivationAssetId);
|
|
450
|
+
if (isAudioAsset(asset))
|
|
451
|
+
return;
|
|
452
|
+
await openDeriveDialog({
|
|
453
|
+
root: elements.root,
|
|
454
|
+
asset,
|
|
455
|
+
assetId: derivationAssetId,
|
|
456
|
+
candidates: deriveCandidatesForAsset(derivationAssetId),
|
|
457
|
+
prompt: elements.promptInput.value,
|
|
458
|
+
format: generationFormat,
|
|
459
|
+
onConfirm: async (deriveRequest) => {
|
|
460
|
+
elements.options.innerHTML = "";
|
|
461
|
+
elements.promoteButton.disabled = true;
|
|
462
|
+
selectedOption = undefined;
|
|
463
|
+
editedCurrentOption = undefined;
|
|
464
|
+
previewedVersionName = undefined;
|
|
465
|
+
if (deriveRequest.strategy === "scale" ||
|
|
466
|
+
deriveRequest.strategy === "tile" ||
|
|
467
|
+
deriveRequest.strategy === "crop") {
|
|
468
|
+
setStatus(elements, `Deriving from ${readableAssetName(deriveRequest.candidate.assetId)}...`, "busy");
|
|
469
|
+
const option = await createLocalDerivedOption({
|
|
470
|
+
strategy: deriveRequest.strategy,
|
|
471
|
+
source: deriveRequest.candidate,
|
|
472
|
+
targetAsset: asset,
|
|
473
|
+
prompt: elements.promptInput.value,
|
|
474
|
+
dimensions: deriveRequest.dimensions,
|
|
475
|
+
frameCount: deriveRequest.frameCount,
|
|
476
|
+
scaleMode: deriveRequest.scaleMode,
|
|
477
|
+
cropX: deriveRequest.cropX,
|
|
478
|
+
cropY: deriveRequest.cropY,
|
|
479
|
+
mirrorX: deriveRequest.mirrorX,
|
|
480
|
+
mirrorY: deriveRequest.mirrorY
|
|
481
|
+
});
|
|
482
|
+
renderOptions({
|
|
483
|
+
elements,
|
|
484
|
+
generated: [option],
|
|
485
|
+
scene: options.scene,
|
|
486
|
+
manifest,
|
|
487
|
+
assetId: derivationAssetId,
|
|
488
|
+
designerOptions: options,
|
|
489
|
+
onPreview: options.onPreview,
|
|
490
|
+
onSelected(selected) {
|
|
491
|
+
selectedOption = selected;
|
|
492
|
+
previewedVersionName = undefined;
|
|
493
|
+
elements.promoteButton.disabled = false;
|
|
494
|
+
}
|
|
495
|
+
});
|
|
496
|
+
selectedOption = option;
|
|
497
|
+
elements.promoteButton.disabled = false;
|
|
498
|
+
previewOption({
|
|
499
|
+
scene: options.scene,
|
|
500
|
+
manifest,
|
|
501
|
+
assetId: derivationAssetId,
|
|
502
|
+
option,
|
|
503
|
+
onPreview: options.onPreview
|
|
504
|
+
});
|
|
505
|
+
setStatus(elements, "Derived one local option. Promote to save it to code.", "success");
|
|
506
|
+
return;
|
|
507
|
+
}
|
|
508
|
+
const controller = new AbortController();
|
|
509
|
+
const currentGenerationId = generationId + 1;
|
|
510
|
+
const streamedOptions = [];
|
|
511
|
+
const prompt = deriveRequest.strategy === "extend"
|
|
512
|
+
? `${elements.promptInput.value}\n\nExtend the referenced source target into the requested canvas. Preserve the original asset identity and visual style while filling the new area naturally.`
|
|
513
|
+
: elements.promptInput.value;
|
|
514
|
+
generationId = currentGenerationId;
|
|
515
|
+
activeGeneration = { controller, id: currentGenerationId };
|
|
516
|
+
elements.regenerateButton.textContent = "Cancel";
|
|
517
|
+
setStatus(elements, "Generating options...", "busy");
|
|
518
|
+
lockGenerationStatus();
|
|
519
|
+
try {
|
|
520
|
+
const reference = await referenceImageForCandidate(deriveRequest.candidate);
|
|
521
|
+
await client.generateStream({
|
|
522
|
+
assetId: derivationAssetId,
|
|
523
|
+
prompt,
|
|
524
|
+
count: options.optionCount ?? 3,
|
|
525
|
+
references: [reference],
|
|
526
|
+
format: generationFormat,
|
|
527
|
+
dimensions: deriveRequest.dimensions,
|
|
528
|
+
frameCount: deriveRequest.frameCount,
|
|
529
|
+
styleGuide: await styleGuideRequest(styleGuideDraft)
|
|
530
|
+
}, (option) => {
|
|
531
|
+
if (activeGeneration?.id !== currentGenerationId)
|
|
532
|
+
return;
|
|
533
|
+
streamedOptions.push(option);
|
|
534
|
+
renderOptions({
|
|
535
|
+
elements,
|
|
536
|
+
generated: [...streamedOptions].sort((left, right) => left.index - right.index),
|
|
537
|
+
scene: options.scene,
|
|
538
|
+
manifest,
|
|
539
|
+
assetId: derivationAssetId,
|
|
540
|
+
designerOptions: options,
|
|
541
|
+
onPreview: options.onPreview,
|
|
542
|
+
onSelected(selected) {
|
|
543
|
+
selectedOption = selected;
|
|
544
|
+
previewedVersionName = undefined;
|
|
545
|
+
elements.promoteButton.disabled = false;
|
|
546
|
+
}
|
|
547
|
+
});
|
|
548
|
+
}, {
|
|
549
|
+
signal: controller.signal
|
|
550
|
+
});
|
|
551
|
+
finishGeneration(currentGenerationId);
|
|
552
|
+
setStatus(elements, streamedOptions.length > 0 ? "Pick a derived option to preview it." : "Derive finished with no options.", streamedOptions.length > 0 ? "info" : "error");
|
|
553
|
+
}
|
|
554
|
+
catch (error) {
|
|
555
|
+
if (!isAbortError(error)) {
|
|
556
|
+
finishGeneration(currentGenerationId);
|
|
557
|
+
setStatus(elements, `Derive failed. ${errorMessage(error)}`, "error");
|
|
558
|
+
}
|
|
559
|
+
}
|
|
560
|
+
finally {
|
|
561
|
+
finishGeneration(currentGenerationId);
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
});
|
|
565
|
+
});
|
|
352
566
|
elements.promoteButton.addEventListener("click", async () => {
|
|
353
567
|
if (!selectedOption)
|
|
354
568
|
return;
|
package/dist/designer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"designer.js","sourceRoot":"","sources":["../src/designer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"designer.js","sourceRoot":"","sources":["../src/designer.ts"],"names":[],"mappings":"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"}
|
package/dist/loader.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export type LoadAiAssetOptions = {
|
|
|
4
4
|
key?: string;
|
|
5
5
|
baseUrl?: string;
|
|
6
6
|
versionName?: string;
|
|
7
|
+
targetId?: string;
|
|
7
8
|
};
|
|
8
9
|
export declare function loadAiAsset(scene: PhaserSceneLike, manifest: AiAssetManifest, selection: AiAssetSelection | string, options?: LoadAiAssetOptions): ResolvedAiAsset;
|
|
9
10
|
export declare function loadAiAudioAsset(scene: PhaserSceneLike, manifest: AiAssetManifest, selection: AiAssetSelection | string, options?: LoadAiAssetOptions): ResolvedAiAsset | undefined;
|
package/dist/loader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACrB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAgB,WAAW,CACzB,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,gBAAgB,GAAG,MAAM,EACpC,OAAO,GAAE,kBAAuB,GAC/B,eAAe,CA0FjB;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,gBAAgB,GAAG,MAAM,EACpC,OAAO,GAAE,kBAAuB,GAC/B,eAAe,GAAG,SAAS,CAkC7B;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,eAAe,EACzB,OAAO,GAAE,kBAAuB,GAC/B,eAAe,EAAE,CAUnB;AAMD,wBAAgB,YAAY,CAC1B,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,eAAe,EACzB,OAAO,GAAE,kBAAuB,GAC/B,eAAe,EAAE,CASnB"}
|
package/dist/loader.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { resolveAiAsset } from "@ai-game-assets/core";
|
|
1
|
+
import { resolveAiAsset, resolveTargetAssetId } from "@ai-game-assets/core";
|
|
2
2
|
import { aiTextureKey } from "./keys.js";
|
|
3
3
|
import { aiAssetPlaceholderDataUrl } from "./placeholder.js";
|
|
4
4
|
export function loadAiAsset(scene, manifest, selection, options = {}) {
|
|
5
|
-
const
|
|
5
|
+
const selectionWithTarget = withTarget(selection, options.targetId);
|
|
6
|
+
const assetId = resolveTargetAssetId(manifest, selectionWithTarget.assetId, selectionWithTarget.targetId);
|
|
6
7
|
if (manifest.assets[assetId]?.kind === "collection" ||
|
|
7
8
|
manifest.assets[assetId]?.kind === "sound" ||
|
|
8
9
|
manifest.assets[assetId]?.kind === "music" ||
|
|
@@ -46,9 +47,7 @@ export function loadAiAsset(scene, manifest, selection, options = {}) {
|
|
|
46
47
|
}
|
|
47
48
|
};
|
|
48
49
|
}
|
|
49
|
-
const resolved = resolveAiAsset(manifest,
|
|
50
|
-
? { assetId: selection, versionName: options.versionName }
|
|
51
|
-
: { ...selection, versionName: options.versionName ?? selection.versionName });
|
|
50
|
+
const resolved = resolveAiAsset(manifest, { ...selectionWithTarget, versionName: options.versionName ?? selectionWithTarget.versionName });
|
|
52
51
|
const key = options.key ?? aiTextureKey({
|
|
53
52
|
assetId: resolved.asset.id,
|
|
54
53
|
versionName: resolved.versionName === resolved.asset.activeVersion
|
|
@@ -81,7 +80,8 @@ export function loadAiAsset(scene, manifest, selection, options = {}) {
|
|
|
81
80
|
return resolved;
|
|
82
81
|
}
|
|
83
82
|
export function loadAiAudioAsset(scene, manifest, selection, options = {}) {
|
|
84
|
-
const
|
|
83
|
+
const selectionWithTarget = withTarget(selection, options.targetId);
|
|
84
|
+
const assetId = resolveTargetAssetId(manifest, selectionWithTarget.assetId, selectionWithTarget.targetId);
|
|
85
85
|
const asset = manifest.assets[assetId];
|
|
86
86
|
if (!asset || !isAudioLikeAsset(asset.kind)) {
|
|
87
87
|
throw new Error(`AI asset "${assetId}" is not an audio asset.`);
|
|
@@ -92,9 +92,7 @@ export function loadAiAudioAsset(scene, manifest, selection, options = {}) {
|
|
|
92
92
|
if (Object.keys(asset.versions).length === 0) {
|
|
93
93
|
return undefined;
|
|
94
94
|
}
|
|
95
|
-
const resolved = resolveAiAsset(manifest,
|
|
96
|
-
? { assetId: selection, versionName: options.versionName }
|
|
97
|
-
: { ...selection, versionName: options.versionName ?? selection.versionName });
|
|
95
|
+
const resolved = resolveAiAsset(manifest, { ...selectionWithTarget, versionName: options.versionName ?? selectionWithTarget.versionName });
|
|
98
96
|
const key = options.key ?? aiTextureKey({
|
|
99
97
|
assetId: resolved.asset.id,
|
|
100
98
|
versionName: resolved.versionName === resolved.asset.activeVersion
|
|
@@ -105,7 +103,9 @@ export function loadAiAudioAsset(scene, manifest, selection, options = {}) {
|
|
|
105
103
|
return resolved;
|
|
106
104
|
}
|
|
107
105
|
export function loadAiAudioAssets(scene, manifest, options = {}) {
|
|
106
|
+
const targetVariantAssetIds = new Set(Object.values(manifest.targets ?? {}).flatMap((target) => Object.values(target.variants)));
|
|
108
107
|
return Object.values(manifest.assets)
|
|
108
|
+
.filter((asset) => !targetVariantAssetIds.has(asset.id))
|
|
109
109
|
.filter((asset) => asset.kind === "sound" || asset.kind === "music")
|
|
110
110
|
.map((asset) => loadAiAudioAsset(scene, manifest, asset.id, options))
|
|
111
111
|
.filter((asset) => Boolean(asset));
|
|
@@ -114,10 +114,21 @@ function isSvg(url) {
|
|
|
114
114
|
return /\.svg(?:$|[?#])/i.test(url);
|
|
115
115
|
}
|
|
116
116
|
export function loadAiAssets(scene, manifest, options = {}) {
|
|
117
|
+
const targetVariantAssetIds = new Set(Object.values(manifest.targets ?? {}).flatMap((target) => Object.values(target.variants)));
|
|
117
118
|
return Object.values(manifest.assets)
|
|
119
|
+
.filter((asset) => !targetVariantAssetIds.has(asset.id))
|
|
118
120
|
.filter((asset) => asset.kind !== "collection" && !isAudioLikeAsset(asset.kind))
|
|
119
121
|
.map((asset) => loadAiAsset(scene, manifest, asset.id, options));
|
|
120
122
|
}
|
|
123
|
+
function withTarget(selection, targetId) {
|
|
124
|
+
if (typeof selection === "string") {
|
|
125
|
+
return { assetId: selection, targetId };
|
|
126
|
+
}
|
|
127
|
+
return {
|
|
128
|
+
...selection,
|
|
129
|
+
targetId: selection.targetId ?? targetId
|
|
130
|
+
};
|
|
131
|
+
}
|
|
121
132
|
function isAudioLikeAsset(kind) {
|
|
122
133
|
return kind === "sound" || kind === "music" || kind === "voice" || kind === "voice-line";
|
|
123
134
|
}
|
package/dist/loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime.d.ts
CHANGED
|
@@ -2,14 +2,18 @@ import { type AiAssetManifest, type AiAssetSelection } from "@ai-game-assets/cor
|
|
|
2
2
|
import type { PhaserImageLike, PhaserSceneLike } from "./phaser-types.js";
|
|
3
3
|
export type AiAssetRuntimeOptions = {
|
|
4
4
|
baseUrl?: string;
|
|
5
|
+
targetId?: string;
|
|
5
6
|
};
|
|
6
7
|
export declare class AiAssetRuntime {
|
|
7
8
|
readonly scene: PhaserSceneLike;
|
|
8
9
|
readonly manifest: AiAssetManifest;
|
|
9
10
|
readonly baseUrl?: string;
|
|
11
|
+
readonly targetId?: string;
|
|
10
12
|
constructor(scene: PhaserSceneLike, manifest: AiAssetManifest, options?: AiAssetRuntimeOptions);
|
|
11
13
|
key(selection: AiAssetSelection | string): string;
|
|
12
14
|
setTexture(target: PhaserImageLike, selection: AiAssetSelection | string): void;
|
|
13
15
|
url(selection: AiAssetSelection | string): string;
|
|
16
|
+
private withTarget;
|
|
17
|
+
private resolveAssetId;
|
|
14
18
|
}
|
|
15
19
|
//# sourceMappingURL=runtime.d.ts.map
|
package/dist/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACtB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAE1E,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,qBAAa,cAAc;IACzB,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;gBAGzB,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,eAAe,EACzB,OAAO,GAAE,qBAA0B;IAQrC,GAAG,CAAC,SAAS,EAAE,gBAAgB,GAAG,MAAM,GAAG,MAAM;IAkBjD,UAAU,CAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,gBAAgB,GAAG,MAAM,GAAG,IAAI;IAI/E,GAAG,CAAC,SAAS,EAAE,gBAAgB,GAAG,MAAM,GAAG,MAAM;IAiBjD,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,cAAc;CAIvB"}
|
package/dist/runtime.js
CHANGED
|
@@ -1,22 +1,24 @@
|
|
|
1
|
-
import { resolveAiAsset } from "@ai-game-assets/core";
|
|
1
|
+
import { resolveAiAsset, resolveTargetAssetId } from "@ai-game-assets/core";
|
|
2
2
|
import { aiTextureKey } from "./keys.js";
|
|
3
3
|
import { aiAssetPlaceholderDataUrl } from "./placeholder.js";
|
|
4
4
|
export class AiAssetRuntime {
|
|
5
5
|
scene;
|
|
6
6
|
manifest;
|
|
7
7
|
baseUrl;
|
|
8
|
+
targetId;
|
|
8
9
|
constructor(scene, manifest, options = {}) {
|
|
9
10
|
this.scene = scene;
|
|
10
11
|
this.manifest = manifest;
|
|
11
12
|
this.baseUrl = options.baseUrl;
|
|
13
|
+
this.targetId = options.targetId;
|
|
12
14
|
}
|
|
13
15
|
key(selection) {
|
|
14
|
-
const assetId =
|
|
16
|
+
const assetId = this.resolveAssetId(selection);
|
|
15
17
|
const asset = this.manifest.assets[assetId];
|
|
16
18
|
if (asset && Object.keys(asset.versions).length === 0) {
|
|
17
19
|
return aiTextureKey({ assetId });
|
|
18
20
|
}
|
|
19
|
-
const resolved = resolveAiAsset(this.manifest, selection);
|
|
21
|
+
const resolved = resolveAiAsset(this.manifest, this.withTarget(selection));
|
|
20
22
|
return aiTextureKey({
|
|
21
23
|
assetId: resolved.asset.id,
|
|
22
24
|
versionName: resolved.versionName === resolved.asset.activeVersion
|
|
@@ -28,16 +30,32 @@ export class AiAssetRuntime {
|
|
|
28
30
|
target.setTexture(this.key(selection));
|
|
29
31
|
}
|
|
30
32
|
url(selection) {
|
|
31
|
-
const assetId =
|
|
33
|
+
const assetId = this.resolveAssetId(selection);
|
|
32
34
|
const asset = this.manifest.assets[assetId];
|
|
33
35
|
if (asset && Object.keys(asset.versions).length === 0) {
|
|
34
36
|
return aiAssetPlaceholderDataUrl(asset);
|
|
35
37
|
}
|
|
36
|
-
const resolved = resolveAiAsset(this.manifest, selection);
|
|
38
|
+
const resolved = resolveAiAsset(this.manifest, this.withTarget(selection));
|
|
37
39
|
if (!this.baseUrl) {
|
|
38
40
|
return resolved.version.file;
|
|
39
41
|
}
|
|
40
42
|
return `${this.baseUrl.replace(/\/$/, "")}/${resolved.version.file.replace(/^\//, "")}`;
|
|
41
43
|
}
|
|
44
|
+
withTarget(selection) {
|
|
45
|
+
if (typeof selection === "string") {
|
|
46
|
+
return {
|
|
47
|
+
assetId: selection,
|
|
48
|
+
targetId: this.targetId
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
...selection,
|
|
53
|
+
targetId: selection.targetId ?? this.targetId
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
resolveAssetId(selection) {
|
|
57
|
+
const withTarget = this.withTarget(selection);
|
|
58
|
+
return resolveTargetAssetId(this.manifest, withTarget.assetId, withTarget.targetId);
|
|
59
|
+
}
|
|
42
60
|
}
|
|
43
61
|
//# sourceMappingURL=runtime.js.map
|