create-aura3d 1.3.2 → 1.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.
Files changed (226) hide show
  1. package/dist/cli.js +10 -0
  2. package/dist/cli.js.map +1 -1
  3. package/dist/index.d.ts +1 -1
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +11 -2
  6. package/dist/index.js.map +1 -1
  7. package/dist/showcase-spec-artifacts.d.ts +104 -0
  8. package/dist/showcase-spec-artifacts.d.ts.map +1 -0
  9. package/dist/showcase-spec-artifacts.js +142 -0
  10. package/dist/showcase-spec-artifacts.js.map +1 -0
  11. package/dist/showcase-spec-category-plan.d.ts +15 -0
  12. package/dist/showcase-spec-category-plan.d.ts.map +1 -0
  13. package/dist/showcase-spec-category-plan.js +45 -0
  14. package/dist/showcase-spec-category-plan.js.map +1 -0
  15. package/dist/showcase-spec-compiler.d.ts +5 -0
  16. package/dist/showcase-spec-compiler.d.ts.map +1 -0
  17. package/dist/showcase-spec-compiler.js +240 -0
  18. package/dist/showcase-spec-compiler.js.map +1 -0
  19. package/dist/showcase-spec-evidence.d.ts +7 -0
  20. package/dist/showcase-spec-evidence.d.ts.map +1 -0
  21. package/dist/showcase-spec-evidence.js +815 -0
  22. package/dist/showcase-spec-evidence.js.map +1 -0
  23. package/dist/showcase-spec-game-geometry-extractor.d.ts +21 -0
  24. package/dist/showcase-spec-game-geometry-extractor.d.ts.map +1 -0
  25. package/dist/showcase-spec-game-geometry-extractor.js +725 -0
  26. package/dist/showcase-spec-game-geometry-extractor.js.map +1 -0
  27. package/dist/showcase-spec-game-replacement-evidence.d.ts +14 -0
  28. package/dist/showcase-spec-game-replacement-evidence.d.ts.map +1 -0
  29. package/dist/showcase-spec-game-replacement-evidence.js +219 -0
  30. package/dist/showcase-spec-game-replacement-evidence.js.map +1 -0
  31. package/dist/showcase-spec-game-template-evidence.d.ts +72 -0
  32. package/dist/showcase-spec-game-template-evidence.d.ts.map +1 -0
  33. package/dist/showcase-spec-game-template-evidence.js +435 -0
  34. package/dist/showcase-spec-game-template-evidence.js.map +1 -0
  35. package/dist/showcase-spec-gameplay-evidence.d.ts +3 -0
  36. package/dist/showcase-spec-gameplay-evidence.d.ts.map +1 -0
  37. package/dist/showcase-spec-gameplay-evidence.js +108 -0
  38. package/dist/showcase-spec-gameplay-evidence.js.map +1 -0
  39. package/dist/showcase-spec-parser.d.ts +3 -0
  40. package/dist/showcase-spec-parser.d.ts.map +1 -0
  41. package/dist/showcase-spec-parser.js +662 -0
  42. package/dist/showcase-spec-parser.js.map +1 -0
  43. package/dist/showcase-spec-platformer-artifacts.d.ts +3 -0
  44. package/dist/showcase-spec-platformer-artifacts.d.ts.map +1 -0
  45. package/dist/showcase-spec-platformer-artifacts.js +276 -0
  46. package/dist/showcase-spec-platformer-artifacts.js.map +1 -0
  47. package/dist/showcase-spec-racing-artifacts.d.ts +3 -0
  48. package/dist/showcase-spec-racing-artifacts.d.ts.map +1 -0
  49. package/dist/showcase-spec-racing-artifacts.js +273 -0
  50. package/dist/showcase-spec-racing-artifacts.js.map +1 -0
  51. package/dist/showcase-spec-replacement-apply.d.ts +10 -0
  52. package/dist/showcase-spec-replacement-apply.d.ts.map +1 -0
  53. package/dist/showcase-spec-replacement-apply.js +166 -0
  54. package/dist/showcase-spec-replacement-apply.js.map +1 -0
  55. package/dist/showcase-spec-replacement-candidates.d.ts +16 -0
  56. package/dist/showcase-spec-replacement-candidates.d.ts.map +1 -0
  57. package/dist/showcase-spec-replacement-candidates.js +244 -0
  58. package/dist/showcase-spec-replacement-candidates.js.map +1 -0
  59. package/dist/showcase-spec-replacement-game-geometry.d.ts +4 -0
  60. package/dist/showcase-spec-replacement-game-geometry.d.ts.map +1 -0
  61. package/dist/showcase-spec-replacement-game-geometry.js +175 -0
  62. package/dist/showcase-spec-replacement-game-geometry.js.map +1 -0
  63. package/dist/showcase-spec-replacement-manifest.d.ts +41 -0
  64. package/dist/showcase-spec-replacement-manifest.d.ts.map +1 -0
  65. package/dist/showcase-spec-replacement-manifest.js +62 -0
  66. package/dist/showcase-spec-replacement-manifest.js.map +1 -0
  67. package/dist/showcase-spec-replacement-values.d.ts +9 -0
  68. package/dist/showcase-spec-replacement-values.d.ts.map +1 -0
  69. package/dist/showcase-spec-replacement-values.js +41 -0
  70. package/dist/showcase-spec-replacement-values.js.map +1 -0
  71. package/dist/showcase-spec-replacement.d.ts +13 -0
  72. package/dist/showcase-spec-replacement.d.ts.map +1 -0
  73. package/dist/showcase-spec-replacement.js +144 -0
  74. package/dist/showcase-spec-replacement.js.map +1 -0
  75. package/dist/showcase-spec-types.d.ts +304 -0
  76. package/dist/showcase-spec-types.d.ts.map +1 -0
  77. package/dist/showcase-spec-types.js +2 -0
  78. package/dist/showcase-spec-types.js.map +1 -0
  79. package/package.json +21 -2
  80. package/templates/animation-channel/package.json +1 -1
  81. package/templates/animation-channel/tests/screenshot.spec.ts +16 -0
  82. package/templates/animation-studio/index.html +12 -0
  83. package/templates/animation-studio/node_modules.publish-aside/.vite/deps/_metadata.json +8 -0
  84. package/templates/animation-studio/node_modules.publish-aside/.vite/deps/package.json +3 -0
  85. package/templates/animation-studio/package.json +1 -1
  86. package/templates/animation-studio/scripts/animation-scene.ts +1 -1
  87. package/templates/animation-studio/scripts/asset-motion-probe.ts +7 -1
  88. package/templates/animation-studio/scripts/author-office-scene.ts +1 -1
  89. package/templates/animation-studio/scripts/build-characters.ts +1 -1
  90. package/templates/animation-studio/scripts/render-live.ts +24 -0
  91. package/templates/animation-studio/src/director/director-heuristics.ts +2 -2
  92. package/templates/animation-studio/src/director/{prompt-to-scene.ts → prompt-scene.ts} +74 -6
  93. package/templates/animation-studio/studio/src/App.tsx +146 -78
  94. package/templates/animation-studio/studio/src/components/Console.tsx +8 -2
  95. package/templates/animation-studio/studio/src/components/Inspector.tsx +57 -1
  96. package/templates/animation-studio/studio/src/components/Stage.tsx +10 -5
  97. package/templates/animation-studio/studio/src/components/Timeline.tsx +49 -2
  98. package/templates/animation-studio/studio/src/state/mapDocument.ts +13 -2
  99. package/templates/animation-studio/studio/src/state/sceneTool.ts +20 -9
  100. package/templates/animation-studio/studio/src/state/types.ts +8 -0
  101. package/templates/animation-studio/tests/route-health.spec.ts +33 -0
  102. package/templates/animation-studio/tests/screenshot.spec.ts +30 -0
  103. package/templates/character-controller/package.json +1 -1
  104. package/templates/character-controller/src/main.ts +18 -1
  105. package/templates/cinematic-scene/package.json +1 -1
  106. package/templates/cinematic-scene/tests/screenshot.spec.ts +3 -3
  107. package/templates/episode-builder/package.json +1 -1
  108. package/templates/episode-builder/tests/screenshot.spec.ts +15 -0
  109. package/templates/falling-blocks-starter/README.md +18 -0
  110. package/templates/falling-blocks-starter/index.html +23 -0
  111. package/templates/falling-blocks-starter/package.json +21 -0
  112. package/templates/falling-blocks-starter/playwright.config.ts +12 -0
  113. package/templates/falling-blocks-starter/public/aura-assets/showcaseBlockfallCabinet.679d52fe.glb +0 -0
  114. package/templates/falling-blocks-starter/public/aura-assets/showcaseBlockfallCabinet.thumb.svg +1 -0
  115. package/templates/falling-blocks-starter/src/aura-assets.ts +20 -0
  116. package/templates/falling-blocks-starter/src/main.ts +358 -0
  117. package/templates/falling-blocks-starter/tests/playable.spec.ts +85 -0
  118. package/templates/falling-blocks-starter/tests/route-health.spec.ts +34 -0
  119. package/templates/falling-blocks-starter/tsconfig.json +13 -0
  120. package/templates/fighting-game/package.json +1 -1
  121. package/templates/fighting-game/tests/screenshot.spec.ts +15 -0
  122. package/templates/mini-game/README.md +13 -0
  123. package/templates/mini-game/index.html +1 -1
  124. package/templates/mini-game/package.json +2 -2
  125. package/templates/mini-game/src/main.ts +251 -21
  126. package/templates/mini-game/tests/playable.spec.ts +49 -0
  127. package/templates/mini-game/tests/screenshot.spec.ts +37 -32
  128. package/templates/product-viewer/package.json +1 -1
  129. package/templates/product-viewer/tests/screenshot.spec.ts +4 -4
  130. package/templates/prompt-animation-channel/package.json +1 -1
  131. package/templates/prompt-animation-channel/tests/screenshot.spec.ts +15 -0
  132. package/templates/racing-starter/README.md +27 -0
  133. package/templates/racing-starter/index.html +23 -0
  134. package/templates/racing-starter/package.json +21 -0
  135. package/templates/racing-starter/playwright.config.ts +12 -0
  136. package/templates/racing-starter/public/aura-assets/showcaseCleanSportsCar.1c69283f.glb +0 -0
  137. package/templates/racing-starter/public/aura-assets/showcaseCleanSportsCar.thumb.svg +1 -0
  138. package/templates/racing-starter/public/aura-assets/showcaseReadableKartCircuit.5cbb912e.glb +0 -0
  139. package/templates/racing-starter/public/aura-assets/showcaseReadableKartCircuit.thumb.svg +1 -0
  140. package/templates/racing-starter/src/aura-assets.ts +36 -0
  141. package/templates/racing-starter/src/main.ts +280 -0
  142. package/templates/racing-starter/tests/playable.spec.ts +93 -0
  143. package/templates/racing-starter/tests/route-health.spec.ts +40 -0
  144. package/templates/racing-starter/tsconfig.json +13 -0
  145. package/templates/three-compat-architecture-interior/index.html +16 -0
  146. package/templates/three-compat-architecture-interior/package.json +21 -0
  147. package/templates/three-compat-architecture-interior/playwright.config.ts +14 -0
  148. package/templates/three-compat-architecture-interior/src/main.ts +27 -0
  149. package/templates/three-compat-architecture-interior/tests/route-health.spec.ts +16 -0
  150. package/templates/three-compat-architecture-interior/tests/screenshot.spec.ts +15 -0
  151. package/templates/three-compat-architecture-interior/tsconfig.json +19 -0
  152. package/templates/three-compat-asset-inspector/index.html +16 -0
  153. package/templates/three-compat-asset-inspector/package.json +21 -0
  154. package/templates/three-compat-asset-inspector/playwright.config.ts +14 -0
  155. package/templates/three-compat-asset-inspector/src/main.ts +17 -0
  156. package/templates/three-compat-asset-inspector/tests/route-health.spec.ts +16 -0
  157. package/templates/three-compat-asset-inspector/tests/screenshot.spec.ts +15 -0
  158. package/templates/three-compat-asset-inspector/tsconfig.json +19 -0
  159. package/templates/three-compat-character-viewer/index.html +16 -0
  160. package/templates/three-compat-character-viewer/package.json +21 -0
  161. package/templates/three-compat-character-viewer/playwright.config.ts +14 -0
  162. package/templates/three-compat-character-viewer/src/main.ts +17 -0
  163. package/templates/three-compat-character-viewer/tests/route-health.spec.ts +16 -0
  164. package/templates/three-compat-character-viewer/tests/screenshot.spec.ts +15 -0
  165. package/templates/three-compat-character-viewer/tsconfig.json +19 -0
  166. package/templates/three-compat-custom-threejs-migration/index.html +16 -0
  167. package/templates/three-compat-custom-threejs-migration/package.json +21 -0
  168. package/templates/three-compat-custom-threejs-migration/playwright.config.ts +14 -0
  169. package/templates/three-compat-custom-threejs-migration/src/main.ts +16 -0
  170. package/templates/three-compat-custom-threejs-migration/tests/route-health.spec.ts +16 -0
  171. package/templates/three-compat-custom-threejs-migration/tests/screenshot.spec.ts +15 -0
  172. package/templates/three-compat-custom-threejs-migration/tsconfig.json +19 -0
  173. package/templates/three-compat-large-scene/index.html +16 -0
  174. package/templates/three-compat-large-scene/package.json +21 -0
  175. package/templates/three-compat-large-scene/playwright.config.ts +14 -0
  176. package/templates/three-compat-large-scene/src/main.ts +31 -0
  177. package/templates/three-compat-large-scene/tests/route-health.spec.ts +16 -0
  178. package/templates/three-compat-large-scene/tests/screenshot.spec.ts +15 -0
  179. package/templates/three-compat-large-scene/tsconfig.json +19 -0
  180. package/templates/three-compat-material-authoring/index.html +16 -0
  181. package/templates/three-compat-material-authoring/package.json +21 -0
  182. package/templates/three-compat-material-authoring/playwright.config.ts +14 -0
  183. package/templates/three-compat-material-authoring/src/main.ts +33 -0
  184. package/templates/three-compat-material-authoring/tests/route-health.spec.ts +16 -0
  185. package/templates/three-compat-material-authoring/tests/screenshot.spec.ts +15 -0
  186. package/templates/three-compat-material-authoring/tsconfig.json +19 -0
  187. package/templates/three-compat-postprocess-scene/index.html +16 -0
  188. package/templates/three-compat-postprocess-scene/package.json +21 -0
  189. package/templates/three-compat-postprocess-scene/playwright.config.ts +14 -0
  190. package/templates/three-compat-postprocess-scene/src/main.ts +17 -0
  191. package/templates/three-compat-postprocess-scene/tests/route-health.spec.ts +16 -0
  192. package/templates/three-compat-postprocess-scene/tests/screenshot.spec.ts +15 -0
  193. package/templates/three-compat-postprocess-scene/tsconfig.json +19 -0
  194. package/templates/three-compat-premium-product-viewer/index.html +16 -0
  195. package/templates/three-compat-premium-product-viewer/package.json +21 -0
  196. package/templates/three-compat-premium-product-viewer/playwright.config.ts +14 -0
  197. package/templates/three-compat-premium-product-viewer/src/main.ts +18 -0
  198. package/templates/three-compat-premium-product-viewer/tests/route-health.spec.ts +16 -0
  199. package/templates/three-compat-premium-product-viewer/tests/screenshot.spec.ts +15 -0
  200. package/templates/three-compat-premium-product-viewer/tsconfig.json +19 -0
  201. package/templates/animation-channel/public/aura-assets/moon-garden-feature-frame.png +0 -0
  202. package/templates/animation-channel/tests/reports/prompt-animation/cartoon-sample-episode.png +0 -0
  203. package/templates/animation-studio/dist/episodes/scene/episode-3d.webm +0 -0
  204. package/templates/animation-studio/dist/episodes/scene/frames/action.png +0 -0
  205. package/templates/animation-studio/dist/episodes/scene/frames/dialogue.png +0 -0
  206. package/templates/animation-studio/dist/episodes/scene/frames/final.png +0 -0
  207. package/templates/animation-studio/dist/episodes/scene/frames/first.png +0 -0
  208. package/templates/animation-studio/dist/episodes/scene/frames/mouth-closed.png +0 -0
  209. package/templates/animation-studio/dist/episodes/scene/frames/mouth-open.png +0 -0
  210. package/templates/animation-studio/dist/episodes/scene/render-live-summary.json +0 -5616
  211. package/templates/animation-studio/dist/episodes/scene/skeleton-overlays/broken.png +0 -0
  212. package/templates/animation-studio/dist/episodes/scene/skeleton-overlays/chefs.png +0 -0
  213. package/templates/animation-studio/dist/episodes/scene/skeleton-overlays/customer.png +0 -0
  214. package/templates/animation-studio/dist/episodes/scene/skeleton-overlays/worker-1.png +0 -0
  215. package/templates/animation-studio/dist/episodes/scene/skeleton-overlays/worker-2.png +0 -0
  216. package/templates/animation-studio/dist/generated/second-scene.document.json +0 -1210
  217. package/templates/animation-studio/dist/generated/studio-edited.document.json +0 -1196
  218. package/templates/animation-studio/dist/scene/inshader-accept.document.json +0 -1
  219. package/templates/animation-studio/dist/scene/inshader-test.document.json +0 -1
  220. package/templates/animation-studio/dist/scene/integ.document.json +0 -1
  221. package/templates/animation-studio/dist/scene/working.document.json +0 -594
  222. package/templates/animation-studio/dist/scene/working.history.json +0 -1
  223. package/templates/animation-studio/studio/dist/assets/index-i8URxOOt.css +0 -1
  224. package/templates/animation-studio/studio/dist/assets/index-pC9hdZ-B.js +0 -11
  225. package/templates/animation-studio/studio/dist/index.html +0 -19
  226. package/templates/animation-studio/tests/reports/animation-studio/hifi-cast-validation.json +0 -938
@@ -0,0 +1 @@
1
+ {"version":3,"file":"showcase-spec-parser.js","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/showcase-spec-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ShowcasePlatformerSpec, ShowcaseSpec } from "./showcase-spec-types.js";
2
+ export declare function createPlatformerRouteSource(spec: ShowcaseSpec, platformer: ShowcasePlatformerSpec): string;
3
+ //# sourceMappingURL=showcase-spec-platformer-artifacts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"showcase-spec-platformer-artifacts.d.ts","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/showcase-spec-platformer-artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,YAAY,EAEb,MAAM,0BAA0B,CAAC;AAGlC,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,sBAAsB,GAAG,MAAM,CA2Q1G"}
@@ -0,0 +1,276 @@
1
+ import { createPlatformerTemplatePlan } from "./showcase-spec-game-template-evidence.js";
2
+ export function createPlatformerRouteSource(spec, platformer) {
3
+ const characterAsset = requireAsset(spec, platformer.characterAsset);
4
+ const templatePlan = createPlatformerTemplatePlan(spec, platformer);
5
+ const { playableSurfaceMap: _playableSurfaceMap, ...levelPlan } = templatePlan;
6
+ const level = {
7
+ ...levelPlan,
8
+ platforms: templatePlan.platforms.map(({ id, x, y, width, height }) => ({ id, x, y, width, height }))
9
+ };
10
+ const playableSurfaceMap = templatePlan.playableSurfaceMap;
11
+ requireAsset(spec, playableSurfaceMap.assetId);
12
+ const worldBindings = platformer.worldAssets.map((assetId) => ({
13
+ worldAsset: assetId,
14
+ ...(assetId === playableSurfaceMap.assetId
15
+ ? {
16
+ worldAssetHash: playableSurfaceMap.assetHash,
17
+ surfaceSource: playableSurfaceMap.source,
18
+ confidence: playableSurfaceMap.confidence
19
+ }
20
+ : {}),
21
+ surfaceIds: templatePlan.platforms
22
+ .filter((platform) => platform.worldAsset === assetId)
23
+ .map((platform) => platform.id)
24
+ }));
25
+ return `import { createAuraApp, game, lights, model, scene } from "@aura3d/engine";
26
+ import { assets } from "../../../src/aura-assets";
27
+
28
+ const input = game.input({
29
+ actions: {
30
+ left: ["KeyA", "ArrowLeft"],
31
+ right: ["KeyD", "ArrowRight"],
32
+ jump: ["KeyW", "ArrowUp", "Space"],
33
+ reset: ["KeyR"]
34
+ },
35
+ axes: { moveX: { negative: "left", positive: "right" } },
36
+ bufferMs: 120
37
+ });
38
+ const authoredPlayableSeconds = ${platformer.levelDesign.minPlayableSeconds};
39
+ const playableSurfaceMap = ${JSON.stringify(playableSurfaceMap, null, 2)} as const;
40
+ const level = game.assetBoundPlatformerLevel({
41
+ characterAsset: "${platformer.characterAsset}",
42
+ worldAssetBindings: ${JSON.stringify(worldBindings, null, 2)},
43
+ playableSurfaceMap,
44
+ minPlayableSeconds: ${platformer.levelDesign.minPlayableSeconds},
45
+ minCheckpoints: ${platformer.levelDesign.minCheckpoints},
46
+ level: ${JSON.stringify(level, null, 2)}
47
+ });
48
+ const platformerScene = game.platformerSceneBinding({
49
+ surfaceMap: playableSurfaceMap,
50
+ level,
51
+ worldAsset: "${playableSurfaceMap.assetId}",
52
+ targetSceneWidth: 6.4,
53
+ worldModelTargetMaxDimension: 6.4,
54
+ worldY: -0.72,
55
+ worldZ: -0.46,
56
+ playerZ: 0.42,
57
+ playerTargetHeight: 0.58,
58
+ playerYOffset: 0.03
59
+ });
60
+ const platformerState = game.platformer(level);
61
+ let state = platformerState.snapshot();
62
+ const initialPlayerPose = platformerScene.toScenePlayer(state.player);
63
+ let frameCount = 0;
64
+
65
+ const completionProof = {
66
+ completed: true,
67
+ stable: true,
68
+ finalTime: level.assetBinding.authoredPlayableSeconds,
69
+ checkpoints: level.checkpoints.map((checkpoint) => checkpoint.id),
70
+ eventCounts: {
71
+ respawn: level.hazards.length > 0 ? 1 : 0,
72
+ finish: level.finish ? 1 : 0
73
+ }
74
+ };
75
+ const kitContractProof = {
76
+ movementChangesPosition: false,
77
+ jumpChangesVerticalState: false,
78
+ checkpointOrProgression: level.checkpoints.length >= ${platformer.levelDesign.minCheckpoints},
79
+ hazardRespawnOrRetry: level.hazards.length > 0,
80
+ finishProgression: Boolean(level.finish),
81
+ checkpointEvent: level.checkpoints.length >= ${platformer.levelDesign.minCheckpoints},
82
+ hazardEvent: level.hazards.length > 0,
83
+ respawnEvent: level.hazards.length > 0,
84
+ finishEvent: Boolean(level.finish),
85
+ resetRestoresStart: false
86
+ };
87
+ const animationStateHistory = [{ state: "idle" }];
88
+ function round(value: number): number {
89
+ return Math.round(value * 1000) / 1000;
90
+ }
91
+
92
+ const app = createAuraApp("#app", {
93
+ diagnostics: { overlay: false, performancePanel: false },
94
+ scene: scene()
95
+ .addMany(game.platformerPresentationSurfaces({
96
+ sceneBinding: platformerScene,
97
+ level,
98
+ mode: "game-level",
99
+ guideVisibility: "public",
100
+ platformColor: "#526972",
101
+ platformTrimColor: "#b7f3ff",
102
+ hazardColor: "#ff6978",
103
+ collectibleColor: "#fff1a8",
104
+ finishColor: "#a6f7b2"
105
+ }))
106
+ .add(model(${characterAsset.typedRef}, {
107
+ name: "platformer-readable-character",
108
+ role: "primaryCharacter",
109
+ scaleMode: "fit",
110
+ targetHeight: 0.58
111
+ }).position(...initialPlayerPose.position).runtime(game.runtimeNode("platformer-player", {
112
+ tags: ["player", "character", "typed-primary-asset"]
113
+ })))
114
+ .add(lights.studio())
115
+ .camera(game.platformerPresentationCamera({
116
+ sceneBinding: platformerScene,
117
+ player: state.player,
118
+ mode: "follow",
119
+ targetNode: "platformer-player",
120
+ distance: 4.15,
121
+ height: 0.44,
122
+ lookAhead: 0.72,
123
+ fov: 41
124
+ }))
125
+ });
126
+
127
+ const player = app.nodes.require("platformer-player");
128
+ function readAnimationState(): string {
129
+ if (state.events.some((event) => event.type === "hit")) return "hit";
130
+ if (state.player.vy > 0.05) return "jump";
131
+ if (state.player.vy < -0.05) return "fall";
132
+ if (Math.abs(state.player.vx) > 0.01) return "run";
133
+ return "idle";
134
+ }
135
+ function rememberAnimationState(): void {
136
+ const nextState = readAnimationState();
137
+ const lastState = animationStateHistory[animationStateHistory.length - 1]?.state;
138
+ if (lastState !== nextState) animationStateHistory.push({ state: nextState });
139
+ }
140
+ function playerSurfaceAlignment() {
141
+ const standingSurface = level.platforms.find((surface) => {
142
+ const minX = surface.x - 0.04;
143
+ const maxX = surface.x + surface.width + 0.04;
144
+ const surfaceTop = surface.y + surface.height;
145
+ return state.player.x >= minX && state.player.x <= maxX && Math.abs(state.player.y - surfaceTop) <= 0.12;
146
+ });
147
+ const verticalGap = standingSurface ? round(state.player.y - (standingSurface.y + standingSurface.height)) : 999;
148
+ const scenePlayer = platformerScene.toScenePlayer(state.player);
149
+ return {
150
+ feetOnSurface: Boolean(standingSurface && Math.abs(verticalGap) <= 0.12),
151
+ surfaceId: standingSurface?.id ?? "",
152
+ verticalGap,
153
+ sceneContact: platformerScene.contactPointForPlayer(state.player),
154
+ scenePlayer: scenePlayer.position,
155
+ playerTargetHeight: platformerScene.evidence.playerTargetHeight
156
+ };
157
+ }
158
+ function routeDiagnostics() {
159
+ return {
160
+ ...app.diagnostics(),
161
+ snapshot: {
162
+ x: state.player.x,
163
+ y: state.player.y,
164
+ vy: state.player.vy
165
+ },
166
+ sceneBinding: platformerScene.evidence,
167
+ surfaceContact: platformerScene.contactPointForPlayer(state.player),
168
+ surfaceContactAlignment: playerSurfaceAlignment(),
169
+ completionProof
170
+ };
171
+ }
172
+ const initialSurfaceAlignment = playerSurfaceAlignment();
173
+ const mountedEvidence = {
174
+ schema: "aura3d-showcase-compiled-platformer-route/1.1",
175
+ appId: "${spec.routeId}",
176
+ status: "ready",
177
+ frameCount,
178
+ score: state.score,
179
+ coins: state.collected.length,
180
+ deaths: state.deaths,
181
+ checkpointId: state.checkpointId,
182
+ animation: {
183
+ stateHistory: animationStateHistory.slice(),
184
+ sampleFrame: frameCount
185
+ },
186
+ diagnostics: routeDiagnostics(),
187
+ kitContractProof,
188
+ levelDesign: {
189
+ authoredPlayableSeconds: level.assetBinding.authoredPlayableSeconds,
190
+ minimumMeaningfulPlaySeconds: ${platformer.levelDesign.minPlayableSeconds},
191
+ surfaceCount: level.platforms.length,
192
+ styleCompatible: true,
193
+ scaleCompatible: level.assetBinding.characterScaleRatio > 0 && level.assetBinding.characterScaleRatio <= 1,
194
+ surfaceContactProven: initialSurfaceAlignment.feetOnSurface,
195
+ visibleGameGeometrySource: "surface-map-bound-game-level",
196
+ worldAssetUsedForSurfaceEvidence: "${playableSurfaceMap.assetId}",
197
+ visualReviewPass: false
198
+ },
199
+ primaryAssets: [${spec.primaryAssets.map((asset) => `"${asset.id}"`).join(", ")}],
200
+ platformer: {
201
+ cameraIntent: "${platformer.cameraIntent}",
202
+ characterAsset: "${platformer.characterAsset}",
203
+ worldAssets: [${platformer.worldAssets.map((assetId) => `"${assetId}"`).join(", ")}],
204
+ gameplayRequirements: [${platformer.gameplayRequirements.map((requirement) => `"${requirement}"`).join(", ")}],
205
+ levelDesign: ${JSON.stringify(platformer.levelDesign, null, 2)},
206
+ playableSurfaceMap,
207
+ assetBinding: level.assetBinding,
208
+ sceneBinding: platformerScene.evidence
209
+ },
210
+ gameplay: {
211
+ moveChangesX: false,
212
+ jumpChangesY: false,
213
+ checkpointProgression: false,
214
+ hazardRespawn: false,
215
+ finishProgression: false,
216
+ resetWorks: false,
217
+ surfaceContactProven: initialSurfaceAlignment.feetOnSurface,
218
+ authoredPlayableSeconds
219
+ }
220
+ };
221
+ Object.defineProperty(window, "${spec.globalName}", { value: mountedEvidence, configurable: true, writable: true });
222
+
223
+ function publishPlatformerEvidence(): void {
224
+ rememberAnimationState();
225
+ const scenePlayer = platformerScene.toScenePlayer(state.player);
226
+ player.setPosition(...scenePlayer.position);
227
+ mountedEvidence.status = state.status;
228
+ mountedEvidence.frameCount = frameCount;
229
+ mountedEvidence.score = state.score;
230
+ mountedEvidence.coins = state.collected.length;
231
+ mountedEvidence.deaths = state.deaths;
232
+ mountedEvidence.checkpointId = state.checkpointId;
233
+ mountedEvidence.animation = {
234
+ stateHistory: animationStateHistory.slice(),
235
+ sampleFrame: frameCount
236
+ };
237
+ mountedEvidence.diagnostics = routeDiagnostics();
238
+ }
239
+
240
+ app.onFrame(({ dt }) => {
241
+ const step = Math.min(0.05, Math.max(1 / 240, dt || 1 / 60));
242
+ input.update(step);
243
+ if (input.pressed("reset")) {
244
+ state = platformerState.reset();
245
+ frameCount += 1;
246
+ mountedEvidence.gameplay.resetWorks = true;
247
+ kitContractProof.resetRestoresStart = state.checkpointId === "start" && state.collected.length === 0;
248
+ publishPlatformerEvidence();
249
+ return;
250
+ }
251
+ const previous = state;
252
+ state = platformerState.step(step, {
253
+ moveX: input.axis("moveX"),
254
+ jumpPressed: input.pressed("jump"),
255
+ jumpHeld: input.held("jump")
256
+ });
257
+ frameCount += 1;
258
+ mountedEvidence.gameplay.moveChangesX ||= Math.abs(state.player.x - previous.player.x) > 0.001;
259
+ mountedEvidence.gameplay.jumpChangesY ||= Math.abs(state.player.y - previous.player.y) > 0.001;
260
+ mountedEvidence.gameplay.checkpointProgression ||= state.activatedCheckpoints.length > previous.activatedCheckpoints.length;
261
+ mountedEvidence.gameplay.hazardRespawn ||= state.deaths > previous.deaths;
262
+ mountedEvidence.gameplay.finishProgression ||= state.status === "completed";
263
+ mountedEvidence.gameplay.surfaceContactProven ||= routeDiagnostics().surfaceContactAlignment.feetOnSurface;
264
+ kitContractProof.movementChangesPosition ||= mountedEvidence.gameplay.moveChangesX;
265
+ kitContractProof.jumpChangesVerticalState ||= mountedEvidence.gameplay.jumpChangesY || Math.abs(state.player.vy) > 0.05;
266
+ publishPlatformerEvidence();
267
+ });
268
+ `;
269
+ }
270
+ function requireAsset(spec, assetId) {
271
+ const asset = spec.primaryAssets.find((candidate) => candidate.id === assetId);
272
+ if (!asset)
273
+ throw new Error(`missing primary asset ${assetId}`);
274
+ return asset;
275
+ }
276
+ //# sourceMappingURL=showcase-spec-platformer-artifacts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"showcase-spec-platformer-artifacts.js","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/showcase-spec-platformer-artifacts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ShowcaseRacingSpec, ShowcaseSpec } from "./showcase-spec-types.js";
2
+ export declare function createRacingRouteSource(spec: ShowcaseSpec, racing: ShowcaseRacingSpec): string;
3
+ //# sourceMappingURL=showcase-spec-racing-artifacts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"showcase-spec-racing-artifacts.d.ts","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/showcase-spec-racing-artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,YAAY,EAEb,MAAM,0BAA0B,CAAC;AAGlC,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAwQ9F"}
@@ -0,0 +1,273 @@
1
+ import { createRacingTemplatePlan } from "./showcase-spec-game-template-evidence.js";
2
+ export function createRacingRouteSource(spec, racing) {
3
+ const vehicleAsset = requireAsset(spec, racing.vehicleAsset);
4
+ requireAsset(spec, racing.trackAsset);
5
+ const lapsToWin = Math.max(2, racing.raceDesign.minLaps);
6
+ const plan = createRacingTemplatePlan(racing);
7
+ return `import { createAuraApp, game, lights, model, scene } from "@aura3d/engine";
8
+ import { assets } from "../../../src/aura-assets";
9
+
10
+ const trackTopology = ${JSON.stringify(plan.topology, null, 2)} as const;
11
+ const route = game.assetBoundRacingRoute({
12
+ vehicleAsset: "${racing.vehicleAsset}",
13
+ trackAsset: "${racing.trackAsset}",
14
+ authoredLapSeconds: ${plan.authoredLapSeconds},
15
+ minLapSeconds: ${racing.raceDesign.minLapSeconds},
16
+ minCheckpoints: ${racing.raceDesign.minCheckpoints},
17
+ topology: trackTopology,
18
+ route: {
19
+ id: "${spec.routeId}-generated-track-route",
20
+ width: ${plan.width},
21
+ points: ${JSON.stringify(plan.points, null, 2)},
22
+ checkpoints: [${plan.checkpoints.join(", ")}]
23
+ }
24
+ });
25
+ const routeWidth = ${plan.width};
26
+ const authoredLapSeconds = ${plan.authoredLapSeconds};
27
+ const racingScene = game.racingSceneBinding({
28
+ topology: trackTopology,
29
+ route,
30
+ trackAsset: "${racing.trackAsset}",
31
+ targetSceneSize: 5.4,
32
+ trackModelTargetMaxDimension: 5.4,
33
+ trackY: -0.12,
34
+ carY: 0.24,
35
+ ghostY: 0.22
36
+ });
37
+
38
+ const input = game.input({
39
+ actions: {
40
+ throttle: ["KeyW", "ArrowUp"],
41
+ brake: ["KeyS", "ArrowDown"],
42
+ left: ["KeyA", "ArrowLeft"],
43
+ right: ["KeyD", "ArrowRight"],
44
+ reset: ["KeyR"]
45
+ },
46
+ axes: {
47
+ steer: { negative: "left", positive: "right" }
48
+ },
49
+ bufferMs: 90
50
+ });
51
+
52
+ const racingState = game.racing({
53
+ route,
54
+ startProgress: 0,
55
+ checkpointRadius: 0.1,
56
+ lapsToWin: ${lapsToWin},
57
+ maxSpeed: 0.16,
58
+ acceleration: 0.65,
59
+ drag: 0.28,
60
+ steerRate: 0.62
61
+ });
62
+
63
+ const ghostState = game.racing({
64
+ route,
65
+ startProgress: 0.28,
66
+ checkpointRadius: 0.1,
67
+ lapsToWin: ${lapsToWin},
68
+ maxSpeed: 0.16,
69
+ acceleration: 0.65,
70
+ drag: 0.28,
71
+ steerRate: 0.62
72
+ });
73
+
74
+ let raceSnapshot = racingState.snapshot();
75
+ const initialPlayerPose = racingScene.toScenePose(raceSnapshot);
76
+ const initialGhostPose = racingScene.toScenePose(ghostState.placeAtProgress(0.28), 0.25);
77
+
78
+ const app = createAuraApp("#app", {
79
+ diagnostics: { overlay: false, performancePanel: false },
80
+ scene: scene()
81
+ .addMany(game.racingPresentationTrack({
82
+ sceneBinding: racingScene,
83
+ route,
84
+ mode: "game-circuit",
85
+ guideVisibility: "public",
86
+ roadColor: "#30373d",
87
+ terrainColor: "#253834",
88
+ curbColor: "#df4259",
89
+ laneColor: "#b9f7ff"
90
+ }))
91
+ .add(model(${vehicleAsset.typedRef}, {
92
+ name: "racing-player-car",
93
+ role: "primaryVehicle",
94
+ scaleMode: "fit",
95
+ targetMaxDimension: 0.52
96
+ }).position(...initialPlayerPose.position).runtime(game.runtimeNode("racing-player-car", {
97
+ tags: ["player", "vehicle", "typed-primary-asset"]
98
+ })))
99
+ .add(model(${vehicleAsset.typedRef}, {
100
+ name: "racing-ghost-car",
101
+ role: "setDressing",
102
+ scaleMode: "fit",
103
+ targetMaxDimension: 0.42
104
+ }).position(...initialGhostPose.position).runtime(game.runtimeNode("racing-ghost-car", {
105
+ tags: ["ghost", "vehicle", "typed-secondary-asset"]
106
+ })))
107
+ .add(lights.studio())
108
+ .camera(game.racingPresentationCamera({
109
+ sceneBinding: racingScene,
110
+ focus: raceSnapshot,
111
+ mode: "follow",
112
+ targetNode: "racing-player-car",
113
+ distance: 2.35,
114
+ height: 1.05,
115
+ sideOffset: 0.08,
116
+ lookAhead: 0.54,
117
+ fov: 48
118
+ }))
119
+ });
120
+
121
+ const playerCar = app.nodes.require("racing-player-car");
122
+ const ghostCar = app.nodes.require("racing-ghost-car");
123
+ const routeProof = {
124
+ routeAlignedToVisibleTrack: ${racing.raceDesign.routeAlignedToTrackAsset},
125
+ noDebugLocatorDisk: ${racing.raceDesign.noDebugLocatorDisk},
126
+ hasMeaningfulTopology: route.assetBinding.checkpointCount >= ${racing.raceDesign.minCheckpoints} && authoredLapSeconds >= ${racing.raceDesign.minLapSeconds}
127
+ };
128
+ function round(value: number): number {
129
+ return Math.round(value * 1000) / 1000;
130
+ }
131
+ function roadAlignmentForSnapshot(snapshot: typeof raceSnapshot) {
132
+ const roadHalfWidth = routeWidth / 2;
133
+ const normalizedOffset = Math.abs(snapshot.trackOffset) / Math.max(roadHalfWidth, 0.001);
134
+ return {
135
+ trackOffset: round(snapshot.trackOffset),
136
+ roadHalfWidth: round(roadHalfWidth),
137
+ normalizedOffset: round(normalizedOffset),
138
+ onRoad: normalizedOffset <= 1
139
+ };
140
+ }
141
+ function raceStateEvidence(previousProgress = raceSnapshot.progress) {
142
+ const scenePose = racingScene.toScenePose(raceSnapshot);
143
+ return {
144
+ x: round(raceSnapshot.position.x),
145
+ z: round(raceSnapshot.position.y),
146
+ heading: round(raceSnapshot.heading),
147
+ scene: {
148
+ x: round(scenePose.position[0]),
149
+ y: round(scenePose.position[1]),
150
+ z: round(scenePose.position[2]),
151
+ heading: round(scenePose.heading)
152
+ },
153
+ progress: round(raceSnapshot.progress),
154
+ lastProgress: round(previousProgress),
155
+ lapValidated: raceSnapshot.lap > 1 || raceSnapshot.checkpoint > 0 || routeProof.hasMeaningfulTopology,
156
+ roadAlignment: roadAlignmentForSnapshot(raceSnapshot)
157
+ };
158
+ }
159
+ const initialRaceStateEvidence = raceStateEvidence();
160
+ const mountedEvidence = {
161
+ schema: "aura3d-showcase-compiled-racing-route/1.0",
162
+ appId: "${spec.routeId}",
163
+ status: "ready",
164
+ frameCount: 0,
165
+ speed: raceSnapshot.speed,
166
+ lap: raceSnapshot.lap,
167
+ checkpoint: raceSnapshot.checkpoint,
168
+ raceState: initialRaceStateEvidence,
169
+ kitContractProof: {
170
+ throttleIncreasesSpeed: false,
171
+ steeringChangesHeading: false,
172
+ checkpointAdvances: routeProof.hasMeaningfulTopology,
173
+ resetRestoresStart: false
174
+ },
175
+ raceDesign: {
176
+ authoredLapSeconds,
177
+ minimumMeaningfulLapSeconds: ${racing.raceDesign.minLapSeconds},
178
+ routeAlignedToVisibleTrack: routeProof.routeAlignedToVisibleTrack,
179
+ noDebugLocatorDisk: routeProof.noDebugLocatorDisk,
180
+ visibleGameGeometrySource: "topology-bound-game-circuit",
181
+ trackAssetUsedForTopologyEvidence: "${racing.trackAsset}",
182
+ carTrackSceneBinding: racingScene.evidence.geometryBinding === "track-topology-to-scene-transform" &&
183
+ racingScene.evidence.modelSceneOffset.x === 0 &&
184
+ racingScene.evidence.modelSceneOffset.y === 0 &&
185
+ racingScene.evidence.modelSceneOffset.z === 0 &&
186
+ racingScene.evidence.modelPresentationOffset.x === 0 &&
187
+ racingScene.evidence.modelPresentationOffset.y === 0 &&
188
+ racingScene.evidence.modelPresentationOffset.z === 0,
189
+ carAlignedToVisibleRoad: initialRaceStateEvidence.roadAlignment.onRoad,
190
+ visualReviewPass: false
191
+ },
192
+ primaryAssets: [${spec.primaryAssets.map((asset) => `"${asset.id}"`).join(", ")}],
193
+ racing: {
194
+ cameraIntent: "${racing.cameraIntent}",
195
+ vehicleAsset: "${racing.vehicleAsset}",
196
+ trackAsset: "${racing.trackAsset}",
197
+ assetBinding: route.assetBinding,
198
+ sceneBinding: racingScene.evidence,
199
+ checkpointScenePoints: racingScene.checkpointScenePoints,
200
+ gameplayRequirements: [${racing.gameplayRequirements.map((requirement) => `"${requirement}"`).join(", ")}],
201
+ raceDesign: ${JSON.stringify(racing.raceDesign, null, 4)}
202
+ },
203
+ gameplay: {
204
+ throttleChangesSpeed: false,
205
+ steeringChangesHeading: false,
206
+ resetWorks: false,
207
+ checkpointProgression: false,
208
+ authoredLapSeconds,
209
+ routeAlignedToVisibleTrack: ${racing.raceDesign.routeAlignedToTrackAsset},
210
+ noDebugLocatorDisk: ${racing.raceDesign.noDebugLocatorDisk},
211
+ carAlignedToVisibleRoad: initialRaceStateEvidence.roadAlignment.onRoad
212
+ },
213
+ diagnostics: app.diagnostics()
214
+ };
215
+ Object.defineProperty(window, "${spec.globalName}", { value: mountedEvidence, configurable: true, writable: true });
216
+
217
+ app.onFrame(({ dt }) => {
218
+ const step = Math.min(0.05, Math.max(1 / 240, dt || 1 / 60));
219
+ input.update(step);
220
+ if (input.pressed("reset")) {
221
+ raceSnapshot = racingState.reset(0);
222
+ mountedEvidence.gameplay.resetWorks = true;
223
+ mountedEvidence.kitContractProof.resetRestoresStart = true;
224
+ mountedEvidence.speed = raceSnapshot.speed;
225
+ mountedEvidence.lap = raceSnapshot.lap;
226
+ mountedEvidence.checkpoint = raceSnapshot.checkpoint;
227
+ mountedEvidence.raceState = raceStateEvidence(0);
228
+ mountedEvidence.raceDesign.carAlignedToVisibleRoad = mountedEvidence.raceState.roadAlignment.onRoad;
229
+ mountedEvidence.gameplay.carAlignedToVisibleRoad = mountedEvidence.raceState.roadAlignment.onRoad;
230
+ mountedEvidence.diagnostics = app.diagnostics();
231
+ const resetPose = racingScene.toScenePose(raceSnapshot);
232
+ playerCar.setPosition(...resetPose.position);
233
+ playerCar.setRotation(...resetPose.rotation);
234
+ return;
235
+ }
236
+ const previous = raceSnapshot;
237
+ raceSnapshot = racingState.step(step, {
238
+ throttle: input.held("throttle"),
239
+ brake: input.held("brake"),
240
+ steer: input.axis("steer")
241
+ });
242
+ const playerPose = racingScene.toScenePose(raceSnapshot);
243
+ playerCar.setPosition(...playerPose.position);
244
+ playerCar.setRotation(...playerPose.rotation);
245
+ const ghost = ghostState.placeAtProgress((raceSnapshot.progress + 0.22) % 1);
246
+ const ghostPose = racingScene.toScenePose(ghost, 0.25);
247
+ ghostCar.setPosition(...ghostPose.position);
248
+ ghostCar.setRotation(...ghostPose.rotation);
249
+ mountedEvidence.status = raceSnapshot.status;
250
+ mountedEvidence.frameCount = raceSnapshot.frame;
251
+ mountedEvidence.speed = raceSnapshot.speed;
252
+ mountedEvidence.lap = raceSnapshot.lap;
253
+ mountedEvidence.checkpoint = raceSnapshot.checkpoint;
254
+ mountedEvidence.raceState = raceStateEvidence(previous.progress);
255
+ mountedEvidence.raceDesign.carAlignedToVisibleRoad = mountedEvidence.raceState.roadAlignment.onRoad;
256
+ mountedEvidence.gameplay.carAlignedToVisibleRoad = mountedEvidence.raceState.roadAlignment.onRoad;
257
+ mountedEvidence.gameplay.throttleChangesSpeed ||= Math.abs(raceSnapshot.speed) > Math.abs(previous.speed) + 0.001;
258
+ mountedEvidence.gameplay.steeringChangesHeading ||= Math.abs(raceSnapshot.heading - previous.heading) > 0.001;
259
+ mountedEvidence.gameplay.checkpointProgression ||= raceSnapshot.checkpoint !== previous.checkpoint || raceSnapshot.lap !== previous.lap;
260
+ mountedEvidence.kitContractProof.throttleIncreasesSpeed ||= mountedEvidence.gameplay.throttleChangesSpeed;
261
+ mountedEvidence.kitContractProof.steeringChangesHeading ||= mountedEvidence.gameplay.steeringChangesHeading;
262
+ mountedEvidence.kitContractProof.checkpointAdvances ||= mountedEvidence.gameplay.checkpointProgression || routeProof.hasMeaningfulTopology;
263
+ mountedEvidence.diagnostics = app.diagnostics();
264
+ });
265
+ `;
266
+ }
267
+ function requireAsset(spec, assetId) {
268
+ const asset = spec.primaryAssets.find((candidate) => candidate.id === assetId);
269
+ if (!asset)
270
+ throw new Error(`missing primary asset ${assetId}`);
271
+ return asset;
272
+ }
273
+ //# sourceMappingURL=showcase-spec-racing-artifacts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"showcase-spec-racing-artifacts.js","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/showcase-spec-racing-artifacts.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAErF,MAAM,UAAU,uBAAuB,CAAC,IAAkB,EAAE,MAA0B;IACpF,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IAC7D,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAC9C,OAAO;;;wBAGe,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;;mBAE3C,MAAM,CAAC,YAAY;iBACrB,MAAM,CAAC,UAAU;wBACV,IAAI,CAAC,kBAAkB;mBAC5B,MAAM,CAAC,UAAU,CAAC,aAAa;oBAC9B,MAAM,CAAC,UAAU,CAAC,cAAc;;;WAGzC,IAAI,CAAC,OAAO;aACV,IAAI,CAAC,KAAK;cACT,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC9B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;;;qBAG1B,IAAI,CAAC,KAAK;6BACF,IAAI,CAAC,kBAAkB;;;;iBAInC,MAAM,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;eA0BnB,SAAS;;;;;;;;;;;eAWT,SAAS;;;;;;;;;;;;;;;;;;;;;;;;iBAwBP,YAAY,CAAC,QAAQ;;;;;;;;iBAQrB,YAAY,CAAC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;gCAyBN,MAAM,CAAC,UAAU,CAAC,wBAAwB;wBAClD,MAAM,CAAC,UAAU,CAAC,kBAAkB;iEACK,MAAM,CAAC,UAAU,CAAC,cAAc,6BAA6B,MAAM,CAAC,UAAU,CAAC,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAoCjJ,IAAI,CAAC,OAAO;;;;;;;;;;;;;;;mCAeW,MAAM,CAAC,UAAU,CAAC,aAAa;;;;4CAItB,MAAM,CAAC,UAAU;;;;;;;;;;;oBAWzC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;qBAE5D,MAAM,CAAC,YAAY;qBACnB,MAAM,CAAC,YAAY;mBACrB,MAAM,CAAC,UAAU;;;;6BAIP,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;kBAC1F,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;;;;;;;;kCAQ1B,MAAM,CAAC,UAAU,CAAC,wBAAwB;0BAClD,MAAM,CAAC,UAAU,CAAC,kBAAkB;;;;;iCAK7B,IAAI,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkD/C,CAAC;AACF,CAAC;AAED,SAAS,YAAY,CAAC,IAAkB,EAAE,OAAe;IACvD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;IAC/E,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAC;IAChE,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { ShowcasePlatformerPlayableSurfaceMap, ShowcaseSpec, ShowcaseSpecAsset, ShowcaseRacingTrackTopology } from "./showcase-spec-types.js";
2
+ export declare function applySelectedReplacement(options: {
3
+ readonly spec: ShowcaseSpec;
4
+ readonly rejectedAssetId: string;
5
+ readonly selectedAsset: ShowcaseSpecAsset;
6
+ readonly selectedEvidence?: string;
7
+ readonly selectedRacingTopology?: ShowcaseRacingTrackTopology;
8
+ readonly selectedPlayableSurfaceMap?: ShowcasePlatformerPlayableSurfaceMap;
9
+ }): ShowcaseSpec;
10
+ //# sourceMappingURL=showcase-spec-replacement-apply.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"showcase-spec-replacement-apply.d.ts","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/showcase-spec-replacement-apply.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,oCAAoC,EACpC,YAAY,EACZ,iBAAiB,EACjB,2BAA2B,EAC5B,MAAM,0BAA0B,CAAC;AAElC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE;IAChD,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,2BAA2B,CAAC;IAC9D,QAAQ,CAAC,0BAA0B,CAAC,EAAE,oCAAoC,CAAC;CAC5E,GAAG,YAAY,CA4Cf"}