@bitmagic/cli 0.1.61 → 0.1.62-dev.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/README.md +27 -3
- package/assets/unity-import/README.md +13 -0
- package/assets/unity-import/blender_build.py +462 -0
- package/assets/unity-import/build_parts.py +263 -0
- package/assets/unity-import/convert_assets.py +193 -0
- package/assets/unity-import/fbx_ascii.py +156 -0
- package/assets/unity-import/fbx_axis.py +174 -0
- package/assets/unity-import/fbx_bounds.py +202 -0
- package/assets/unity-import/import_config.py +86 -0
- package/assets/unity-import/level_patches.example.json +23 -0
- package/assets/unity-import/mesh_walls.py +78 -0
- package/assets/unity-import/render_topdown.py +33 -0
- package/assets/unity-import/unity-import.example.json +27 -0
- package/assets/unity-import/unity_assets.py +114 -0
- package/assets/unity-import/unity_colliders2d.py +127 -0
- package/assets/unity-import/unity_extract.py +774 -0
- package/assets/unity-import/unity_markers.py +249 -0
- package/assets/unity-import/unity_renderers.py +279 -0
- package/assets/unity-import/write_arena_data.py +198 -0
- package/dist/cli.d.ts +12 -0
- package/dist/commands/import.d.ts +4 -0
- package/dist/commands/import.js +5 -0
- package/dist/commands/import.js.map +1 -1
- package/dist/commands/init.d.ts +4 -0
- package/dist/commands/init.js +20 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/upgrade.d.ts +4 -0
- package/dist/commands/upgrade.js +31 -5
- package/dist/commands/upgrade.js.map +1 -1
- package/dist/editor/server.js +3 -3
- package/dist/editor/shell-page.js +16 -1
- package/dist/editor/shell-page.js.map +1 -1
- package/dist/project/context.d.ts +9 -0
- package/dist/project/context.js +4 -1
- package/dist/project/context.js.map +1 -1
- package/dist/scaffold/agent-targets.d.ts +126 -0
- package/dist/scaffold/agent-targets.js +180 -0
- package/dist/scaffold/agent-targets.js.map +1 -0
- package/dist/scaffold/agents-md.d.ts +4 -1
- package/dist/scaffold/agents-md.js +6 -2
- package/dist/scaffold/agents-md.js.map +1 -1
- package/dist/scaffold/project-files.d.ts +40 -5
- package/dist/scaffold/project-files.js +67 -25
- package/dist/scaffold/project-files.js.map +1 -1
- package/dist/scaffold/project.d.ts +42 -15
- package/dist/scaffold/project.js +100 -38
- package/dist/scaffold/project.js.map +1 -1
- package/dist/scaffold/reference-guidance.d.ts +1 -1
- package/dist/scaffold/reference-guidance.js +2 -1
- package/dist/scaffold/reference-guidance.js.map +1 -1
- package/dist/scaffold/skill-files.d.ts +32 -9
- package/dist/scaffold/skill-files.js +71 -15
- package/dist/scaffold/skill-files.js.map +1 -1
- package/dist/scaffold/unity-skill-files.d.ts +30 -0
- package/dist/scaffold/unity-skill-files.js +474 -0
- package/dist/scaffold/unity-skill-files.js.map +1 -0
- package/dist/scaffold/upgrade-project.d.ts +31 -11
- package/dist/scaffold/upgrade-project.js +35 -23
- package/dist/scaffold/upgrade-project.js.map +1 -1
- package/package.json +4 -4
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* same as there — these strings land inside template literals ultimately emitted into scaffolded
|
|
9
9
|
* markdown, so backticks are escaped exactly as project-files.ts escapes them.
|
|
10
10
|
*/
|
|
11
|
+
import { PRIMARY_SKILLS_DIR } from './agent-targets.js';
|
|
11
12
|
/** The `## Reference image` section of the scaffolded AGENTS.md, placed before the cover section. */
|
|
12
13
|
export const AGENTS_MD_REFERENCE_SECTION = `## Reference image — offer it when the idea has a strong setting
|
|
13
14
|
|
|
@@ -27,7 +28,7 @@ style reference for \`generate skybox|background|block-type|image\`, \`bitmagic
|
|
|
27
28
|
call as \`--reference-image <file>\` instead. Accepting prints a durable URL: paste it into
|
|
28
29
|
\`GAME-DESIGN.md\`'s world/look section, since \`.bitmagic/\` is not committed and
|
|
29
30
|
\`bitmagic reference accept <url>\` is how a fresh clone gets it back. Details are in
|
|
30
|
-
|
|
31
|
+
\`${PRIMARY_SKILLS_DIR}/generating-assets/SKILL.md\`; skip the offer when the idea has no visual identity
|
|
31
32
|
yet.
|
|
32
33
|
|
|
33
34
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reference-guidance.js","sourceRoot":"","sources":["../../src/scaffold/reference-guidance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,qGAAqG;AACrG,MAAM,CAAC,MAAM,2BAA2B,GAAG
|
|
1
|
+
{"version":3,"file":"reference-guidance.js","sourceRoot":"","sources":["../../src/scaffold/reference-guidance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,qGAAqG;AACrG,MAAM,CAAC,MAAM,2BAA2B,GAAG;;;;;;;;;;;;;;;;;;IAkBvC,kBAAkB;;;CAGrB,CAAC;AAEF,2EAA2E;AAC3E,MAAM,CAAC,MAAM,8BAA8B,GAAG;;;;;;CAM7C,CAAC;AAEF,gGAAgG;AAChG,MAAM,CAAC,MAAM,8BAA8B,GAAG;;CAE7C,CAAC;AAEF,4EAA4E;AAC5E,MAAM,CAAC,MAAM,gCAAgC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8B/C,CAAC;AAEF,4EAA4E;AAC5E,MAAM,CAAC,MAAM,0BAA0B,GACrC,6HAA6H,CAAC"}
|
|
@@ -6,15 +6,38 @@
|
|
|
6
6
|
* those were 116 lines of loud facts riding in every request's context).
|
|
7
7
|
*
|
|
8
8
|
* Same contract as the renderers there: each is a pure function returning the file's contents,
|
|
9
|
-
* registered in `
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
9
|
+
* registered in `SHIPPED_SKILLS` (project.ts) so `bitmagic init` writes it and `bitmagic upgrade`
|
|
10
|
+
* refreshes it — the only path by which an existing project learns about a new capability.
|
|
11
|
+
* `project-files.test.ts` enforces the frontmatter (name == directory) and that AGENTS.md names
|
|
12
|
+
* every shipped skill. The same template-literal rule applies: the markdown is full of backticks,
|
|
13
|
+
* so every one inside is escaped as \` and the test checks the rendered output.
|
|
14
14
|
*/
|
|
15
|
-
|
|
15
|
+
import type { SkillRenderContext } from './project-files.js';
|
|
16
16
|
/**
|
|
17
|
-
* `.
|
|
17
|
+
* `.kiro/steering/bitmagic.md` — Kiro's startup instructions, and the only per-agent extra file
|
|
18
|
+
* this scaffold writes besides Claude Code's.
|
|
19
|
+
*
|
|
20
|
+
* Kiro is the one supported agent that does not read the root `AGENTS.md` on its own: its
|
|
21
|
+
* convention is `.kiro/steering/*.md`, markdown loaded into context by an `inclusion` mode declared
|
|
22
|
+
* in YAML front matter that must start at byte zero (`inclusion: always` loads it into every
|
|
23
|
+
* interaction, and a file with no front matter at all is treated as always). That much is
|
|
24
|
+
* documented; what Kiro does with a root `AGENTS.md` is not, which is exactly why this file is a
|
|
25
|
+
* POINTER and not a second copy of the guidance. A copy would be another thing to keep current, and
|
|
26
|
+
* `agent-targets.ts` explains why nothing here may depend on an unverified integration point:
|
|
27
|
+
* worst case, Kiro ignores this file and its creator is no worse off than before it existed.
|
|
28
|
+
*
|
|
29
|
+
* The two commands are repeated rather than left to AGENTS.md because they are what a cold start
|
|
30
|
+
* gets wrong — an agent that has not yet opened AGENTS.md still needs `bitmagic dev` running and
|
|
31
|
+
* still needs to reload when it stops.
|
|
32
|
+
*/
|
|
33
|
+
export declare function renderKiroSteering(): string;
|
|
34
|
+
/**
|
|
35
|
+
* The one shipped skill whose text is directory-specific, and so the one that reads its render
|
|
36
|
+
* context: it names the directory it is sitting in, and the sibling copies it is not.
|
|
37
|
+
*/
|
|
38
|
+
export declare function renderSkillsReadme({ skillsDir, skillDirs }: SkillRenderContext): string;
|
|
39
|
+
/**
|
|
40
|
+
* `<skills dir>/making-a-trailer/SKILL.md` — the whole trailer flow, and the craft that makes a
|
|
18
41
|
* cut watchable.
|
|
19
42
|
*
|
|
20
43
|
* Two kinds of knowledge live here on purpose. The FLOW (record → make → look → publish) is plain
|
|
@@ -25,7 +48,7 @@ export declare function renderSkillsReadme(): string;
|
|
|
25
48
|
*/
|
|
26
49
|
export declare function renderTrailerSkill(): string;
|
|
27
50
|
/**
|
|
28
|
-
*
|
|
51
|
+
* `<skills dir>/publishing-a-game/SKILL.md` — the whole ship-it path, and every way it refuses.
|
|
29
52
|
*
|
|
30
53
|
* This is the largest block that came out of AGENTS.md, and it is the clearest case for the split:
|
|
31
54
|
* an agent about to publish KNOWS it is publishing, and an agent staring at a non-zero exit code
|
|
@@ -37,7 +60,7 @@ export declare function renderTrailerSkill(): string;
|
|
|
37
60
|
*/
|
|
38
61
|
export declare function renderPublishingSkill(): string;
|
|
39
62
|
/**
|
|
40
|
-
*
|
|
63
|
+
* `<skills dir>/working-with-the-creator/SKILL.md` — the dev view as a two-way channel.
|
|
41
64
|
*
|
|
42
65
|
* The creator is not only watching: they drag gizmos into `world.json`, they paste frames from
|
|
43
66
|
* their running game, and one editor action (`hq.requested`) is a job handed to the agent. Reading
|
|
@@ -6,23 +6,78 @@
|
|
|
6
6
|
* those were 116 lines of loud facts riding in every request's context).
|
|
7
7
|
*
|
|
8
8
|
* Same contract as the renderers there: each is a pure function returning the file's contents,
|
|
9
|
-
* registered in `
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
9
|
+
* registered in `SHIPPED_SKILLS` (project.ts) so `bitmagic init` writes it and `bitmagic upgrade`
|
|
10
|
+
* refreshes it — the only path by which an existing project learns about a new capability.
|
|
11
|
+
* `project-files.test.ts` enforces the frontmatter (name == directory) and that AGENTS.md names
|
|
12
|
+
* every shipped skill. The same template-literal rule applies: the markdown is full of backticks,
|
|
13
|
+
* so every one inside is escaped as \` and the test checks the rendered output.
|
|
14
14
|
*/
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
import { describeSkillsDir } from './agent-targets.js';
|
|
16
|
+
/**
|
|
17
|
+
* `.kiro/steering/bitmagic.md` — Kiro's startup instructions, and the only per-agent extra file
|
|
18
|
+
* this scaffold writes besides Claude Code's.
|
|
19
|
+
*
|
|
20
|
+
* Kiro is the one supported agent that does not read the root `AGENTS.md` on its own: its
|
|
21
|
+
* convention is `.kiro/steering/*.md`, markdown loaded into context by an `inclusion` mode declared
|
|
22
|
+
* in YAML front matter that must start at byte zero (`inclusion: always` loads it into every
|
|
23
|
+
* interaction, and a file with no front matter at all is treated as always). That much is
|
|
24
|
+
* documented; what Kiro does with a root `AGENTS.md` is not, which is exactly why this file is a
|
|
25
|
+
* POINTER and not a second copy of the guidance. A copy would be another thing to keep current, and
|
|
26
|
+
* `agent-targets.ts` explains why nothing here may depend on an unverified integration point:
|
|
27
|
+
* worst case, Kiro ignores this file and its creator is no worse off than before it existed.
|
|
28
|
+
*
|
|
29
|
+
* The two commands are repeated rather than left to AGENTS.md because they are what a cold start
|
|
30
|
+
* gets wrong — an agent that has not yet opened AGENTS.md still needs `bitmagic dev` running and
|
|
31
|
+
* still needs to reload when it stops.
|
|
32
|
+
*/
|
|
33
|
+
export function renderKiroSteering() {
|
|
34
|
+
return `---
|
|
35
|
+
inclusion: always
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
# Bitmagic
|
|
17
39
|
|
|
18
|
-
|
|
19
|
-
project root for the guidance an agent should read before editing this game.
|
|
40
|
+
This is a Bitmagic game project.
|
|
20
41
|
|
|
42
|
+
**Read \`AGENTS.md\` at the project root before editing anything here.** It describes this engine
|
|
43
|
+
and this version of the GDK, \`bitmagic upgrade\` keeps it current, and it outranks anything you
|
|
44
|
+
remember about Bitmagic. Your own copy of the skills it names is in \`.kiro/skills/\`.
|
|
45
|
+
|
|
46
|
+
Two things it will tell you that are worth having before you have read it:
|
|
47
|
+
|
|
48
|
+
- **Start \`bitmagic dev\` in the background and leave it running**, before you build anything. It
|
|
49
|
+
serves the game and the editor so the person you are building for can watch and steer.
|
|
50
|
+
- **Run \`bitmagic reload\` when you finish a turn**, so their browser shows the finished work
|
|
51
|
+
rather than a frame from the middle of it. It exits 0 and does nothing when no dev server is up.
|
|
52
|
+
`;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* The one shipped skill whose text is directory-specific, and so the one that reads its render
|
|
56
|
+
* context: it names the directory it is sitting in, and the sibling copies it is not.
|
|
57
|
+
*/
|
|
58
|
+
export function renderSkillsReadme({ skillsDir, skillDirs }) {
|
|
59
|
+
// Built outside the literal because nesting a template literal inside `${}` of a file that
|
|
60
|
+
// escapes every backtick is the one place that escaping reliably goes wrong.
|
|
61
|
+
const siblings = skillDirs.filter((dir) => dir !== skillsDir).map((dir) => '`' + dir + '/`');
|
|
62
|
+
// A bullet list rather than a sentence: the directory names are substituted, so any sentence
|
|
63
|
+
// long enough to hold two of them wraps at a width this file cannot know.
|
|
64
|
+
const alsoWritten = siblings.length === 0
|
|
65
|
+
? ''
|
|
66
|
+
: '\nAgents do not agree on where project skills live, so the shipped set below is written into' +
|
|
67
|
+
"\nevery directory this project's agents read — this one, and:\n\n" +
|
|
68
|
+
siblings.map((dir) => `- ${dir}`).join('\n') +
|
|
69
|
+
'\n\nThey hold the same guidance, and `bitmagic upgrade` refreshes every copy.\n';
|
|
70
|
+
return `# Agent skills for this Bitmagic game
|
|
71
|
+
|
|
72
|
+
This directory is \`${skillsDir}/\` — ${describeSkillsDir(skillsDir)}.
|
|
73
|
+
|
|
74
|
+
See \`AGENTS.md\` at the project root for the guidance an agent should read before editing this game.
|
|
75
|
+
${alsoWritten}
|
|
21
76
|
## Which of these are yours
|
|
22
77
|
|
|
23
78
|
\`planning-a-game/\`, \`finding-engine-apis/\`, \`generating-assets/\`, \`checking-usage/\`,
|
|
24
79
|
\`judging-quality/\`, \`theming-the-hud/\`, \`making-a-trailer/\`, \`publishing-a-game/\`,
|
|
25
|
-
\`working-with-the-creator/\` — and
|
|
80
|
+
\`working-with-the-creator/\`, \`converting-unity-levels/\` — and
|
|
26
81
|
this README — are shipped by the Bitmagic CLI and **re-rendered by \`bitmagic upgrade\`**. They
|
|
27
82
|
describe what the CLI and the engine can do, so they have to stay current with both; edits to them
|
|
28
83
|
are lost on the next upgrade.
|
|
@@ -38,14 +93,15 @@ are lost on the next upgrade.
|
|
|
38
93
|
| \`making-a-trailer/\` | asked for a trailer, a highlight reel, a gameplay video, or to record gameplay — \`bitmagic trailer\` from recording to a CDN link, and how to tune the cut from prompts |
|
|
39
94
|
| \`publishing-a-game/\` | shipping the game to bitmagic.ai — the verify gate, public vs private, thumbnails, category tags, and every way \`bitmagic publish\` can refuse |
|
|
40
95
|
| \`working-with-the-creator/\` | they are editing alongside you — gizmo drags into \`world.json\`, a pasted frame from their game, \`.bitmagic/edit/events.jsonl\`, their phone |
|
|
96
|
+
| \`converting-unity-levels/\` | a creator wants a Unity scene or game ported, replicated or "brought over" — reusing its prefabs, FBX models and colliders — or a converted level has pieces rotated, mis-scaled, walls that do not collide, an empty corner |
|
|
41
97
|
|
|
42
98
|
Every other directory here is yours. \`upgrade\` never opens a skill it does not ship, and never
|
|
43
|
-
deletes anything under
|
|
44
|
-
\`AGENTS.md\` — both are left alone.
|
|
99
|
+
deletes anything under a skills directory. Put project-specific guidance in a skill of your own, or
|
|
100
|
+
in \`AGENTS.md\` — both are left alone.
|
|
45
101
|
`;
|
|
46
102
|
}
|
|
47
103
|
/**
|
|
48
|
-
*
|
|
104
|
+
* `<skills dir>/making-a-trailer/SKILL.md` — the whole trailer flow, and the craft that makes a
|
|
49
105
|
* cut watchable.
|
|
50
106
|
*
|
|
51
107
|
* Two kinds of knowledge live here on purpose. The FLOW (record → make → look → publish) is plain
|
|
@@ -208,7 +264,7 @@ from the changed region, compare with the previous \`-rN\`, deliver the URL.
|
|
|
208
264
|
`;
|
|
209
265
|
}
|
|
210
266
|
/**
|
|
211
|
-
*
|
|
267
|
+
* `<skills dir>/publishing-a-game/SKILL.md` — the whole ship-it path, and every way it refuses.
|
|
212
268
|
*
|
|
213
269
|
* This is the largest block that came out of AGENTS.md, and it is the clearest case for the split:
|
|
214
270
|
* an agent about to publish KNOWS it is publishing, and an agent staring at a non-zero exit code
|
|
@@ -332,7 +388,7 @@ blocked at the moment you ship.
|
|
|
332
388
|
`;
|
|
333
389
|
}
|
|
334
390
|
/**
|
|
335
|
-
*
|
|
391
|
+
* `<skills dir>/working-with-the-creator/SKILL.md` — the dev view as a two-way channel.
|
|
336
392
|
*
|
|
337
393
|
* The creator is not only watching: they drag gizmos into `world.json`, they paste frames from
|
|
338
394
|
* their running game, and one editor action (`hq.requested`) is a job handed to the agent. Reading
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-files.js","sourceRoot":"","sources":["../../src/scaffold/skill-files.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,UAAU,kBAAkB;IAChC,OAAO
|
|
1
|
+
{"version":3,"file":"skill-files.js","sourceRoot":"","sources":["../../src/scaffold/skill-files.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGvD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO;;;;;;;;;;;;;;;;;;CAkBR,CAAC;AACF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,EAAE,SAAS,EAAE,SAAS,EAAsB;IAC7E,2FAA2F;IAC3F,6EAA6E;IAC7E,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;IAC7F,6FAA6F;IAC7F,0EAA0E;IAC1E,MAAM,WAAW,GACf,QAAQ,CAAC,MAAM,KAAK,CAAC;QACnB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,8FAA8F;YAC9F,mEAAmE;YACnE,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAC5C,iFAAiF,CAAC;IAExF,OAAO;;sBAEa,SAAS,SAAS,iBAAiB,CAAC,SAAS,CAAC;;;EAGlE,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BZ,CAAC;AACF,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsJR,CAAC;AACF,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8GR,CAAC;AACF,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,+BAA+B;IAC7C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkER,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `converting-unity-levels` skill: a Unity scene + prefabs + FBX + colliders into one GLB and
|
|
3
|
+
* collider data for a Bitmagic game. Distilled from a 2D arena-shooter port, where every rule in
|
|
4
|
+
* it was paid for with a level that looked plausible and was wrong.
|
|
5
|
+
*
|
|
6
|
+
* Same contract as `skill-files.ts`: pure functions returning file contents, registered in
|
|
7
|
+
* `SHIPPED_SKILLS` (project.ts), so every skills directory the project holds receives a copy. The
|
|
8
|
+
* skill is prose plus four references; the Python and Blender scripts it drives ship in the
|
|
9
|
+
* package's `assets/unity-import/` (see `files` in package.json) rather than being rendered into
|
|
10
|
+
* every project, since most games never port a Unity level and the scripts are large. Nothing
|
|
11
|
+
* game-specific is in those scripts: each project describes itself in `tools/unity-import.json`,
|
|
12
|
+
* which the skill's step 0 walks through.
|
|
13
|
+
*
|
|
14
|
+
* Scope, stated in the skill itself: the visual pipeline is general; collider extraction is
|
|
15
|
+
* general; the emitted level data is shaped for 2D-on-a-plane games, and a 3D game builds its
|
|
16
|
+
* physics from the raw collider JSON instead.
|
|
17
|
+
*
|
|
18
|
+
* Generated from the markdown in the origin project's `.claude/skills/converting-unity-levels/`;
|
|
19
|
+
* backticks and `${` are escaped for the template literal, and `project-files.test.ts` checks the
|
|
20
|
+
* rendered frontmatter.
|
|
21
|
+
*/
|
|
22
|
+
export declare function renderUnityLevelsSkill(): string;
|
|
23
|
+
/** `<skills dir>/converting-unity-levels/references/unity-scene-traps.md` */
|
|
24
|
+
export declare function renderUnityLevelsTrapsReference(): string;
|
|
25
|
+
/** `<skills dir>/converting-unity-levels/references/fbx-conversion.md` */
|
|
26
|
+
export declare function renderUnityLevelsFbxReference(): string;
|
|
27
|
+
/** `<skills dir>/converting-unity-levels/references/physics-and-shadows.md` */
|
|
28
|
+
export declare function renderUnityLevelsPhysicsReference(): string;
|
|
29
|
+
/** `<skills dir>/converting-unity-levels/references/verification.md` */
|
|
30
|
+
export declare function renderUnityLevelsVerificationReference(): string;
|