lpc-forge 1.0.0 → 1.0.3

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 (98) hide show
  1. package/dist/assets/manager.d.ts +69 -0
  2. package/dist/assets/manager.js +531 -0
  3. package/dist/assets/manager.js.map +1 -0
  4. package/dist/audio/index.d.ts +4 -0
  5. package/dist/audio/index.js +4 -0
  6. package/dist/audio/index.js.map +1 -0
  7. package/dist/audio/music-catalog.d.ts +11 -0
  8. package/dist/audio/music-catalog.js +96 -0
  9. package/dist/audio/music-catalog.js.map +1 -0
  10. package/dist/audio/sfx-generator.d.ts +11 -0
  11. package/dist/audio/sfx-generator.js +77 -0
  12. package/dist/audio/sfx-generator.js.map +1 -0
  13. package/dist/audio/sfx-presets.d.ts +2 -0
  14. package/dist/audio/sfx-presets.js +286 -0
  15. package/dist/audio/sfx-presets.js.map +1 -0
  16. package/dist/audio/types.d.ts +39 -0
  17. package/dist/audio/types.js +2 -0
  18. package/dist/audio/types.js.map +1 -0
  19. package/dist/character/composer.d.ts +4 -1
  20. package/dist/character/composer.js +41 -7
  21. package/dist/character/composer.js.map +1 -1
  22. package/dist/cli.js +152 -31
  23. package/dist/export/godot.js +78 -19
  24. package/dist/export/godot.js.map +1 -1
  25. package/dist/license.js +1 -1
  26. package/dist/lighting/index.d.ts +16 -0
  27. package/dist/lighting/index.js +95 -0
  28. package/dist/lighting/index.js.map +1 -0
  29. package/dist/lighting/particles.d.ts +2 -0
  30. package/dist/lighting/particles.js +192 -0
  31. package/dist/lighting/particles.js.map +1 -0
  32. package/dist/lighting/presets.d.ts +2 -0
  33. package/dist/lighting/presets.js +146 -0
  34. package/dist/lighting/presets.js.map +1 -0
  35. package/dist/lighting/types.d.ts +36 -0
  36. package/dist/lighting/types.js +2 -0
  37. package/dist/lighting/types.js.map +1 -0
  38. package/dist/systems/day-night.d.ts +2 -0
  39. package/dist/systems/day-night.js +109 -0
  40. package/dist/systems/day-night.js.map +1 -0
  41. package/dist/systems/dialog.d.ts +2 -0
  42. package/dist/systems/dialog.js +266 -0
  43. package/dist/systems/dialog.js.map +1 -0
  44. package/dist/systems/enemy-ai.d.ts +2 -0
  45. package/dist/systems/enemy-ai.js +204 -0
  46. package/dist/systems/enemy-ai.js.map +1 -0
  47. package/dist/systems/hud-full.d.ts +2 -0
  48. package/dist/systems/hud-full.js +158 -0
  49. package/dist/systems/hud-full.js.map +1 -0
  50. package/dist/systems/index.d.ts +10 -0
  51. package/dist/systems/index.js +59 -0
  52. package/dist/systems/index.js.map +1 -0
  53. package/dist/systems/inventory.d.ts +2 -0
  54. package/dist/systems/inventory.js +324 -0
  55. package/dist/systems/inventory.js.map +1 -0
  56. package/dist/systems/loot.d.ts +2 -0
  57. package/dist/systems/loot.js +109 -0
  58. package/dist/systems/loot.js.map +1 -0
  59. package/dist/systems/menu.d.ts +2 -0
  60. package/dist/systems/menu.js +453 -0
  61. package/dist/systems/menu.js.map +1 -0
  62. package/dist/systems/quest.d.ts +2 -0
  63. package/dist/systems/quest.js +210 -0
  64. package/dist/systems/quest.js.map +1 -0
  65. package/dist/systems/save-load.d.ts +2 -0
  66. package/dist/systems/save-load.js +163 -0
  67. package/dist/systems/save-load.js.map +1 -0
  68. package/dist/systems/scene-transition.d.ts +2 -0
  69. package/dist/systems/scene-transition.js +107 -0
  70. package/dist/systems/scene-transition.js.map +1 -0
  71. package/dist/systems/types.d.ts +20 -0
  72. package/dist/systems/types.js +2 -0
  73. package/dist/systems/types.js.map +1 -0
  74. package/dist/systems/writer.d.ts +11 -0
  75. package/dist/systems/writer.js +31 -0
  76. package/dist/systems/writer.js.map +1 -0
  77. package/dist/ui/generator.d.ts +7 -0
  78. package/dist/ui/generator.js +307 -0
  79. package/dist/ui/generator.js.map +1 -0
  80. package/dist/ui/icons.d.ts +10 -0
  81. package/dist/ui/icons.js +320 -0
  82. package/dist/ui/icons.js.map +1 -0
  83. package/dist/ui/index.d.ts +6 -0
  84. package/dist/ui/index.js +6 -0
  85. package/dist/ui/index.js.map +1 -0
  86. package/dist/ui/portrait.d.ts +12 -0
  87. package/dist/ui/portrait.js +72 -0
  88. package/dist/ui/portrait.js.map +1 -0
  89. package/dist/ui/props.d.ts +9 -0
  90. package/dist/ui/props.js +247 -0
  91. package/dist/ui/props.js.map +1 -0
  92. package/dist/ui/themes.d.ts +2 -0
  93. package/dist/ui/themes.js +69 -0
  94. package/dist/ui/themes.js.map +1 -0
  95. package/dist/ui/types.d.ts +58 -0
  96. package/dist/ui/types.js +2 -0
  97. package/dist/ui/types.js.map +1 -0
  98. package/package.json +7 -2
@@ -1 +1 @@
1
- {"version":3,"file":"composer.js","sourceRoot":"","sources":["../../src/character/composer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"composer.js","sourceRoot":"","sources":["../../src/character/composer.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -2,35 +2,54 @@
2
2
  import { Command } from 'commander';
3
3
  import { resolve, join } from 'node:path';
4
4
  import { mkdir, writeFile } from 'node:fs/promises';
5
+ import { readFileSync } from 'node:fs';
5
6
  import { fileURLToPath } from 'node:url';
7
+ import { resolveAssetRoot, ensureAssets } from './assets/manager.js';
6
8
  const __dirname = fileURLToPath(new URL('.', import.meta.url));
7
- const REPO_ROOT = resolve(__dirname, '..');
9
+ const PACKAGE_ROOT = resolve(__dirname, '..');
10
+ const REPO_ROOT = resolveAssetRoot(PACKAGE_ROOT);
11
+ const pkg = JSON.parse(readFileSync(join(PACKAGE_ROOT, 'package.json'), 'utf-8'));
8
12
  const program = new Command();
9
13
  program
10
14
  .name('lpc-forge')
11
15
  .description('Complete 2D game asset pipeline — character compositor, map generator, Godot 4 exporter')
12
- .version('0.1.0');
16
+ .version(pkg.version);
13
17
  // === CHARACTER COMMAND ===
18
+ // Hair shorthand aliases: user-friendly name → actual subcategory in sheet_definitions
19
+ const HAIR_ALIASES = {
20
+ mohawk: 'hair_shorthawk',
21
+ mohawk_long: 'hair_longhawk',
22
+ shorthawk: 'hair_shorthawk',
23
+ longhawk: 'hair_longhawk',
24
+ };
25
+ // Skin aliases for common names
26
+ const SKIN_ALIASES = {
27
+ dark: 'brown',
28
+ peach: 'light',
29
+ tan: 'bronze',
30
+ };
14
31
  program
15
32
  .command('character')
16
- .description('Generate a character spritesheet')
17
- .option('-p, --preset <name>', 'Use a preset (warrior, mage, rogue, ranger, villager)')
33
+ .description('Generate a character spritesheet\n\n Available presets: warrior, mage, rogue, ranger, villager, paladin, necromancer,\n knight, barbarian, monk, thief, healer, archer, merchant, guard, skeleton, peasant\n\n Layer syntax: --hair <style>:<color> e.g. "plain:brown", "ponytail:blonde"\n --armor <type>:<variant> e.g. "plate:steel", "leather:brown"\n --weapon <type>:<variant> e.g. "sword_longsword:longsword"')
34
+ .option('-p, --preset <name>', 'Use a preset (warrior, mage, rogue, ranger, villager, ...)')
18
35
  .option('-b, --body <type>', 'Body type (male, female, muscular, teen, child, pregnant)', 'male')
19
- .option('--skin <variant>', 'Skin color variant', 'light')
20
- .option('--hair <style:color>', 'Hair style and color (e.g., "plain:brown")')
21
- .option('--armor <type:variant>', 'Armor type and variant')
22
- .option('--weapon <type:variant>', 'Weapon type and variant')
36
+ .option('--skin <variant>', 'Skin color variant (light, amber, olive, taupe, bronze, brown, black, ...)', 'light')
37
+ .option('--hair <style:color>', 'Hair style and color (e.g., "plain:brown", "ponytail:blonde")')
38
+ .option('--armor <type:variant>', 'Armor type and variant (e.g., "plate:steel")')
39
+ .option('--weapon <type:variant>', 'Weapon type and variant (e.g., "sword_longsword:longsword")')
23
40
  .option('-o, --output <path>', 'Output path', './output/character')
24
41
  .option('--slice', 'Also slice into individual frames', false)
25
42
  .option('--godot', 'Export as Godot 4 resources', false)
26
43
  .option('--list-layers', 'List all available layers and variants')
44
+ .option('--verbose', 'Show detailed compositing information', false)
27
45
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
28
46
  .action(async (opts) => {
29
47
  const chalk = (await import('chalk')).default;
30
48
  const ora = (await import('ora')).default;
31
49
  if (opts.listLayers) {
50
+ const assetRoot = await ensureAssets(PACKAGE_ROOT);
32
51
  const { loadDefinitions, listLayers } = await import('./character/definitions.js');
33
- const registry = await loadDefinitions(REPO_ROOT);
52
+ const registry = await loadDefinitions(assetRoot);
34
53
  const layers = listLayers(registry);
35
54
  for (const [category, items] of Object.entries(layers)) {
36
55
  console.log(chalk.bold.cyan(`\n${category}`));
@@ -40,6 +59,7 @@ program
40
59
  }
41
60
  return;
42
61
  }
62
+ const assetRoot = await ensureAssets(PACKAGE_ROOT);
43
63
  const spinner = ora('Composing character...').start();
44
64
  try {
45
65
  const { composeCharacter } = await import('./character/composer.js');
@@ -48,20 +68,23 @@ program
48
68
  if (opts.preset) {
49
69
  const preset = PRESETS[opts.preset];
50
70
  if (!preset) {
51
- spinner.fail(`Unknown preset: ${opts.preset}. Available: ${Object.keys(PRESETS).join(', ')}`);
71
+ spinner.fail(`Unknown preset: "${opts.preset}". Available: ${Object.keys(PRESETS).join(', ')}`);
52
72
  process.exit(1);
53
73
  }
54
74
  spec = preset.spec;
55
75
  spinner.text = `Composing ${preset.name}...`;
56
76
  }
57
77
  else {
78
+ // Resolve skin alias
79
+ const skinVariant = SKIN_ALIASES[opts.skin] ?? opts.skin;
58
80
  // Build spec from CLI options
59
81
  const layers = [
60
- { category: 'body', subcategory: 'body', variant: opts.skin },
82
+ { category: 'body', subcategory: 'body', variant: skinVariant },
61
83
  ];
62
84
  if (opts.hair) {
63
85
  const [style, color] = opts.hair.split(':');
64
- layers.push({ category: 'hair', subcategory: `hair_${style}`, variant: color || 'brown' });
86
+ const resolvedStyle = HAIR_ALIASES[style] ?? `hair_${style}`;
87
+ layers.push({ category: 'hair', subcategory: resolvedStyle, variant: color || 'brown' });
65
88
  }
66
89
  if (opts.armor) {
67
90
  const [type, variant] = opts.armor.split(':');
@@ -76,11 +99,16 @@ program
76
99
  layers,
77
100
  };
78
101
  }
79
- const buffer = await composeCharacter(spec, REPO_ROOT);
102
+ const buffer = await composeCharacter(spec, assetRoot, { verbose: opts.verbose });
80
103
  const outputDir = resolve(opts.output);
81
104
  await mkdir(outputDir, { recursive: true });
82
105
  await writeFile(join(outputDir, 'spritesheet.png'), buffer);
83
106
  spinner.succeed(`Character spritesheet saved to ${outputDir}/spritesheet.png`);
107
+ if (opts.verbose) {
108
+ const { statSync } = await import('node:fs');
109
+ const size = statSync(join(outputDir, 'spritesheet.png')).size;
110
+ console.log(chalk.gray(` Output size: ${(size / 1024).toFixed(1)} KB`));
111
+ }
84
112
  if (opts.slice) {
85
113
  const sliceSpinner = ora('Slicing into frames...').start();
86
114
  const { sliceCharacter } = await import('./character/slicer.js');
@@ -111,8 +139,21 @@ program
111
139
  const chalk = (await import('chalk')).default;
112
140
  const ora = (await import('ora')).default;
113
141
  const { runBatch } = await import('./character/batch.js');
142
+ const assetRoot = await ensureAssets(PACKAGE_ROOT);
114
143
  const spinner = ora('Running batch generation...').start();
115
- const results = await runBatch(resolve(configPath), REPO_ROOT, resolve(opts.output));
144
+ try {
145
+ const raw = await (await import('node:fs/promises')).readFile(resolve(configPath), 'utf-8');
146
+ const config = JSON.parse(raw);
147
+ if (!config.characters || config.characters.length === 0) {
148
+ spinner.warn('Batch config has no characters to generate.');
149
+ return;
150
+ }
151
+ }
152
+ catch (err) {
153
+ spinner.fail(`Failed to read batch config: ${err instanceof Error ? err.message : String(err)}`);
154
+ process.exit(1);
155
+ }
156
+ const results = await runBatch(resolve(configPath), assetRoot, resolve(opts.output));
116
157
  const succeeded = results.filter(r => r.success).length;
117
158
  const failed = results.filter(r => !r.success).length;
118
159
  spinner.succeed(`Batch complete: ${succeeded} succeeded, ${failed} failed`);
@@ -128,57 +169,79 @@ program
128
169
  // === LIST COMMAND ===
129
170
  program
130
171
  .command('list')
131
- .description('List available assets')
132
- .option('-c, --category <name>', 'Filter by category')
172
+ .description('List available assets, categories, or presets')
173
+ .option('-c, --category <name>', 'Show detailed layers for a category (e.g., body, hair, torso)')
174
+ .option('--presets', 'Show available character presets with descriptions')
133
175
  .option('--body-type <type>', 'Filter by body type')
134
176
  .option('--json', 'Output as JSON')
135
177
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
136
178
  .action(async (opts) => {
179
+ const chalk = (await import('chalk')).default;
180
+ // --presets: show all presets
181
+ if (opts.presets) {
182
+ const { PRESETS } = await import('./character/presets.js');
183
+ console.log(chalk.bold.cyan('\nAvailable Character Presets:\n'));
184
+ for (const [key, preset] of Object.entries(PRESETS)) {
185
+ console.log(` ${chalk.green(key.padEnd(14))} ${preset.description} (${preset.spec.bodyType})`);
186
+ }
187
+ console.log(chalk.gray(`\n Usage: lpc-forge character --preset <name>`));
188
+ return;
189
+ }
190
+ const assetRoot = await ensureAssets(PACKAGE_ROOT);
137
191
  const { loadDefinitions, listLayers } = await import('./character/definitions.js');
138
- const registry = await loadDefinitions(REPO_ROOT);
192
+ const registry = await loadDefinitions(assetRoot);
139
193
  const layers = listLayers(registry);
140
194
  if (opts.category) {
195
+ // Detailed view for a specific category
141
196
  const filtered = {};
142
197
  for (const [key, val] of Object.entries(layers)) {
143
198
  if (key.includes(opts.category)) {
144
199
  filtered[key] = val;
145
200
  }
146
201
  }
202
+ if (Object.keys(filtered).length === 0) {
203
+ console.log(chalk.yellow(`No layers found for category "${opts.category}".`));
204
+ console.log(chalk.gray(`Available categories: ${Object.keys(layers).join(', ')}`));
205
+ return;
206
+ }
147
207
  if (opts.json) {
148
208
  console.log(JSON.stringify(filtered, null, 2));
149
209
  }
150
210
  else {
151
211
  for (const [cat, items] of Object.entries(filtered)) {
152
- console.log(`\n${cat}:`);
212
+ console.log(chalk.bold.cyan(`\n${cat}`) + chalk.gray(` (${items.length} layers)`));
153
213
  for (const item of items) {
154
- console.log(` ${item.name}: ${item.variants.join(', ')}`);
214
+ console.log(` ${chalk.green(item.name)}: ${item.variants.slice(0, 8).join(', ')}${item.variants.length > 8 ? `, ... (${item.variants.length} total)` : ''}`);
155
215
  }
156
216
  }
157
217
  }
158
218
  }
159
219
  else {
220
+ // Default: summary view with category counts
160
221
  if (opts.json) {
161
222
  console.log(JSON.stringify(layers, null, 2));
162
223
  }
163
224
  else {
225
+ console.log(chalk.bold.cyan('\nAsset Categories:\n'));
226
+ let total = 0;
164
227
  for (const [cat, items] of Object.entries(layers)) {
165
- console.log(`\n${cat}:`);
166
- for (const item of items) {
167
- console.log(` ${item.name}: ${item.variants.join(', ')}`);
168
- }
228
+ total += items.length;
229
+ console.log(` ${chalk.green(cat.padEnd(14))} ${items.length} layers`);
169
230
  }
231
+ console.log(chalk.bold(`\n Total: ${total} layers`));
232
+ console.log(chalk.gray('\n Use --category <name> for details, --presets for character presets'));
170
233
  }
171
234
  }
172
235
  });
173
236
  // === MAP COMMAND ===
174
237
  program
175
238
  .command('map')
176
- .description('Generate a procedural map')
239
+ .description('Generate a procedural map\n\n Types: dungeon (BSP), cave (Cellular Automata), overworld (Diamond-Square),\n wfc (Wave Function Collapse), town (Building placement), multifloor')
177
240
  .argument('<type>', 'Map type (dungeon, cave, overworld, wfc, town, multifloor)')
178
- .option('-W, --width <n>', 'Map width in tiles', '50')
179
- .option('-H, --height <n>', 'Map height in tiles', '50')
241
+ .option('-W, --width <n>', 'Map width in tiles (min: 10)', '50')
242
+ .option('-H, --height <n>', 'Map height in tiles (min: 10)', '50')
180
243
  .option('-s, --seed <seed>', 'Random seed')
181
- .option('--rooms <n>', 'Number of rooms (dungeon only)', '12')
244
+ .option('--rooms <n>', 'Number of rooms (dungeon only, min: 1)', '12')
182
245
  .option('--room-min <n>', 'Minimum room size', '5')
183
246
  .option('--room-max <n>', 'Maximum room size', '15')
184
247
  .option('--buildings <n>', 'Number of buildings (town only)', '6')
@@ -186,6 +249,7 @@ program
186
249
  .option('-o, --output <path>', 'Output path', './output/map')
187
250
  .option('--render', 'Render visual PNG preview', true)
188
251
  .option('--godot', 'Export as Godot 4 TileMap', false)
252
+ .option('--verbose', 'Show generation details', false)
189
253
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
190
254
  .action(async (type, opts) => {
191
255
  const chalk = (await import('chalk')).default;
@@ -195,15 +259,25 @@ program
195
259
  const width = parseInt(opts.width);
196
260
  const height = parseInt(opts.height);
197
261
  const seed = opts.seed || `map-${Date.now()}`;
262
+ // Validate minimum dimensions
263
+ if (width < 10 || height < 10) {
264
+ spinner.fail(`Map dimensions too small (${width}×${height}). Minimum: 10×10`);
265
+ process.exit(1);
266
+ }
198
267
  let map;
199
268
  switch (type) {
200
269
  case 'dungeon': {
270
+ const maxRooms = parseInt(opts.rooms);
271
+ if (maxRooms < 1) {
272
+ spinner.fail(`--rooms must be at least 1 (got ${maxRooms})`);
273
+ process.exit(1);
274
+ }
201
275
  const { generateDungeon } = await import('./map/dungeon.js');
202
276
  map = generateDungeon({
203
277
  width,
204
278
  height,
205
279
  seed,
206
- maxRooms: parseInt(opts.rooms),
280
+ maxRooms,
207
281
  roomMinSize: parseInt(opts.roomMin),
208
282
  roomMaxSize: parseInt(opts.roomMax),
209
283
  });
@@ -335,7 +409,8 @@ program
335
409
  charSpinner.fail(`Unknown preset: ${opts.character}`);
336
410
  process.exit(1);
337
411
  }
338
- const charBuffer = await composeCharacter(preset.spec, REPO_ROOT);
412
+ const assetRoot = await ensureAssets(PACKAGE_ROOT);
413
+ const charBuffer = await composeCharacter(preset.spec, assetRoot);
339
414
  await exportCharacterToGodot(charBuffer, outputDir, opts.character);
340
415
  charSpinner.succeed(`${preset.name} character generated`);
341
416
  // 3. Generate map
@@ -420,7 +495,7 @@ program
420
495
  let enemyCount = 0;
421
496
  for (const enemyPreset of enemyPresets) {
422
497
  if (PRESETS[enemyPreset]) {
423
- const enemyBuffer = await composeCharacter(PRESETS[enemyPreset].spec, REPO_ROOT);
498
+ const enemyBuffer = await composeCharacter(PRESETS[enemyPreset].spec, assetRoot);
424
499
  await exportCharacterToGodot(enemyBuffer, outputDir, enemyPreset, { isPlayer: false });
425
500
  enemyCount++;
426
501
  }
@@ -432,7 +507,7 @@ program
432
507
  let npcCount = 0;
433
508
  for (const npcPreset of npcPresets) {
434
509
  if (PRESETS[npcPreset] && npcPreset !== 'guard') {
435
- const npcBuffer = await composeCharacter(PRESETS[npcPreset].spec, REPO_ROOT);
510
+ const npcBuffer = await composeCharacter(PRESETS[npcPreset].spec, assetRoot);
436
511
  await exportCharacterToGodot(npcBuffer, outputDir, `npc_${npcPreset}`, { isPlayer: false });
437
512
  npcCount++;
438
513
  }
@@ -934,5 +1009,51 @@ program
934
1009
  process.exit(1);
935
1010
  }
936
1011
  });
1012
+ // === SETUP COMMAND ===
1013
+ program
1014
+ .command('setup')
1015
+ .description('Download and install LPC sprite assets (~1.3 GB)')
1016
+ .option('--minimal', 'Download only required assets (body + definitions, ~200 MB)')
1017
+ .option('--check', 'Check if assets are installed and up to date')
1018
+ .option('--clean', 'Remove cached assets')
1019
+ .option('--path <dir>', 'Custom asset directory (also set via LPC_FORGE_ASSETS env var)')
1020
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1021
+ .action(async (opts) => {
1022
+ const chalk = (await import('chalk')).default;
1023
+ const { isAssetsInstalled, getAssetDir, cleanAssets, downloadWithProgress, } = await import('./assets/manager.js');
1024
+ if (opts.check) {
1025
+ const status = await isAssetsInstalled();
1026
+ if (status.installed) {
1027
+ console.log(chalk.green('✅ Assets installed'));
1028
+ console.log(chalk.gray(` Version: ${status.version}`));
1029
+ console.log(chalk.gray(` Location: ${status.path}`));
1030
+ if (status.chunks) {
1031
+ console.log(chalk.gray(` Chunks: ${status.chunks.join(', ')}`));
1032
+ }
1033
+ }
1034
+ else {
1035
+ console.log(chalk.yellow('⚠️ Assets not installed'));
1036
+ console.log(chalk.gray(` Expected at: ${status.path}`));
1037
+ if (status.version) {
1038
+ console.log(chalk.gray(` Found version: ${status.version} (may need update)`));
1039
+ }
1040
+ console.log(chalk.gray('\n Run: lpc-forge setup'));
1041
+ }
1042
+ return;
1043
+ }
1044
+ if (opts.clean) {
1045
+ const dir = opts.path || getAssetDir();
1046
+ const ora = (await import('ora')).default;
1047
+ const spinner = ora('Removing cached assets...').start();
1048
+ await cleanAssets(dir);
1049
+ spinner.succeed(`Assets removed from ${dir}`);
1050
+ return;
1051
+ }
1052
+ // Download
1053
+ await downloadWithProgress({
1054
+ minimal: opts.minimal,
1055
+ path: opts.path,
1056
+ });
1057
+ });
937
1058
  program.parse();
938
1059
  //# sourceMappingURL=cli.js.map
@@ -158,41 +158,98 @@ function generateTilesetTres(tileSize) {
158
158
  lines.push(`tile_size = Vector2i(${tileSize}, ${tileSize})`);
159
159
  return lines.join('\n');
160
160
  }
161
+ /** Merge adjacent wall tiles into larger rectangles using row-based greedy merging */
162
+ function mergeWallTiles(map, tileSize) {
163
+ const rects = [];
164
+ const visited = Array.from({ length: map.height }, () => new Array(map.width).fill(false));
165
+ for (let y = 0; y < map.height; y++) {
166
+ for (let x = 0; x < map.width; x++) {
167
+ const t = map.tiles[y][x];
168
+ // TileType.WALL = 2, TileType.TREE = 7
169
+ if ((t !== 2 && t !== 7) || visited[y][x])
170
+ continue;
171
+ // Extend horizontally as far as possible
172
+ let endX = x;
173
+ while (endX + 1 < map.width && !visited[y][endX + 1] &&
174
+ (map.tiles[y][endX + 1] === 2 || map.tiles[y][endX + 1] === 7)) {
175
+ endX++;
176
+ }
177
+ // Try to extend downward
178
+ let endY = y;
179
+ outer: while (endY + 1 < map.height) {
180
+ for (let cx = x; cx <= endX; cx++) {
181
+ if (visited[endY + 1][cx] ||
182
+ (map.tiles[endY + 1][cx] !== 2 && map.tiles[endY + 1][cx] !== 7)) {
183
+ break outer;
184
+ }
185
+ }
186
+ endY++;
187
+ }
188
+ // Mark all covered tiles as visited
189
+ for (let vy = y; vy <= endY; vy++) {
190
+ for (let vx = x; vx <= endX; vx++) {
191
+ visited[vy][vx] = true;
192
+ }
193
+ }
194
+ const tilesW = endX - x + 1;
195
+ const tilesH = endY - y + 1;
196
+ rects.push({
197
+ cx: x * tileSize + (tilesW * tileSize) / 2,
198
+ cy: y * tileSize + (tilesH * tileSize) / 2,
199
+ w: tilesW * tileSize,
200
+ h: tilesH * tileSize,
201
+ });
202
+ }
203
+ }
204
+ return rects;
205
+ }
161
206
  function generateMapTscn(map, mapName, tileSize) {
162
207
  const lines = [];
163
- // Count sub resources needed: 1 for tileset ref + 1 collision shape per wall group
164
- lines.push(`[gd_scene load_steps=2 format=3]`);
208
+ // Merge adjacent wall tiles into larger rectangles (row-based greedy merge)
209
+ const wallRects = mergeWallTiles(map, tileSize);
210
+ // Collect non-default wall shapes that need sub_resources
211
+ const customShapes = wallRects.filter(r => r.w !== tileSize || r.h !== tileSize);
212
+ // load_steps = 1 (ext tileset) + 1 (default wall shape) + custom shapes
213
+ const loadSteps = 2 + customShapes.length;
214
+ lines.push(`[gd_scene load_steps=${loadSteps} format=3]`);
165
215
  lines.push('');
166
216
  lines.push(`[ext_resource type="TileSet" path="res://${mapName}_tileset.tres" id="1"]`);
167
217
  lines.push('');
168
- // Collision shape for walls
218
+ // Default collision shape for single-tile walls
169
219
  lines.push(`[sub_resource type="RectangleShape2D" id="1"]`);
170
220
  lines.push(`size = Vector2(${tileSize}, ${tileSize})`);
171
221
  lines.push('');
222
+ // Custom collision shapes for merged walls
223
+ for (let i = 0; i < wallRects.length; i++) {
224
+ const rect = wallRects[i];
225
+ if (rect.w !== tileSize || rect.h !== tileSize) {
226
+ lines.push(`[sub_resource type="RectangleShape2D" id="wall_${i}"]`);
227
+ lines.push(`size = Vector2(${rect.w}, ${rect.h})`);
228
+ lines.push('');
229
+ }
230
+ }
172
231
  lines.push(`[node name="${capitalize(mapName)}" type="Node2D"]`);
173
232
  lines.push('');
174
233
  // Ground TileMapLayer
175
234
  lines.push(`[node name="Ground" type="TileMapLayer" parent="."]`);
176
235
  lines.push(`tile_set = ExtResource("1")`);
177
236
  lines.push('');
178
- // Wall collision StaticBody2D with individual CollisionShape2Ds
237
+ // Wall collision StaticBody2D with merged collision rectangles
179
238
  lines.push(`[node name="Walls" type="StaticBody2D" parent="."]`);
180
239
  lines.push(`collision_layer = 1`);
181
240
  lines.push(`collision_mask = 0`);
182
241
  lines.push('');
183
- let wallIdx = 0;
184
- for (let y = 0; y < map.height; y++) {
185
- for (let x = 0; x < map.width; x++) {
186
- const t = map.tiles[y][x];
187
- // TileType.WALL = 2, TileType.TREE = 7
188
- if (t === 2 || t === 7) {
189
- lines.push(`[node name="Wall${wallIdx}" type="CollisionShape2D" parent="Walls"]`);
190
- lines.push(`position = Vector2(${x * tileSize + tileSize / 2}, ${y * tileSize + tileSize / 2})`);
191
- lines.push(`shape = SubResource("1")`);
192
- lines.push('');
193
- wallIdx++;
194
- }
242
+ for (let i = 0; i < wallRects.length; i++) {
243
+ const rect = wallRects[i];
244
+ lines.push(`[node name="Wall${i}" type="CollisionShape2D" parent="Walls"]`);
245
+ lines.push(`position = Vector2(${rect.cx}, ${rect.cy})`);
246
+ if (rect.w === tileSize && rect.h === tileSize) {
247
+ lines.push(`shape = SubResource("1")`);
248
+ }
249
+ else {
250
+ lines.push(`shape = SubResource("wall_${i}")`);
195
251
  }
252
+ lines.push('');
196
253
  }
197
254
  // Spawn and exit markers
198
255
  if (map.spawnPoint) {
@@ -338,8 +395,10 @@ var health: int = MAX_HEALTH
338
395
  func _ready() -> void:
339
396
  \tattack_timer.timeout.connect(_on_attack_finished)
340
397
  \thurt_timer.timeout.connect(_on_hurt_finished)
341
- \thealth_changed.emit(health, MAX_HEALTH)
342
-
398
+ \thealth_changed.emit(health, MAX_HEALTH) # Move to spawn point if available in scene
399
+ var spawn := get_parent().find_child("SpawnPoint", true, false)
400
+ if spawn is Marker2D:
401
+ global_position = spawn.global_position
343
402
  func _physics_process(_delta: float) -> void:
344
403
  \tmatch state:
345
404
  \t\tState.IDLE:
@@ -419,7 +478,7 @@ func _on_hurt_finished() -> void:
419
478
  \t_change_state(State.IDLE)
420
479
 
421
480
  func _get_input() -> Vector2:
422
- \treturn Input.get_vector("ui_left", "ui_right", "ui_up", "ui_down")
481
+ \treturn Input.get_vector("move_left", "move_right", "move_up", "move_down")
423
482
 
424
483
  func _set_direction(input_dir: Vector2) -> void:
425
484
  \tif abs(input_dir.x) > abs(input_dir.y):
@@ -1 +1 @@
1
- {"version":3,"file":"godot.js","sourceRoot":"","sources":["../../src/export/godot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"godot.js","sourceRoot":"","sources":["../../src/export/godot.ts"],"names":[],"mappings":"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"}
package/dist/license.js CHANGED
@@ -101,7 +101,7 @@ export async function requireLicense(commandName) {
101
101
  console.log('');
102
102
  console.log(chalk.yellow(`⚠ The "${commandName}" command requires LPC Forge Premium.`));
103
103
  console.log('');
104
- console.log(chalk.white(' Purchase for $10: ') + chalk.cyan.underline('https://launchday.gumroad.com/l/lpc-forge-premium'));
104
+ console.log(chalk.white(' Purchase at: ') + chalk.cyan.underline('https://blueth.online/plugins/lpc-forge'));
105
105
  console.log(chalk.white(' Then activate: ') + chalk.green('lpc-forge activate <your-license-key>'));
106
106
  console.log('');
107
107
  console.log(chalk.gray(' Free commands: character, batch, list, map, init (without --full)'));
@@ -0,0 +1,16 @@
1
+ import type { LightingPreset, ParticlePreset } from './types.js';
2
+ export type { LightingPreset, ParticlePreset } from './types.js';
3
+ /** List all lighting preset names */
4
+ export declare function listLightingPresets(): string[];
5
+ /** List all particle preset names */
6
+ export declare function listParticlePresets(): string[];
7
+ /** Get a lighting preset by name */
8
+ export declare function getLightingPreset(name: string): LightingPreset | null;
9
+ /** Get a particle preset by name */
10
+ export declare function getParticlePreset(name: string): ParticlePreset | null;
11
+ /** Generate a CanvasModulate + Light2D .tscn from a lighting preset */
12
+ export declare function generateLightingScene(preset: LightingPreset): string;
13
+ /** Write all lighting presets to an output directory */
14
+ export declare function writeAllLightingPresets(outputDir: string): Promise<string[]>;
15
+ /** Write all particle presets to an output directory */
16
+ export declare function writeAllParticlePresets(outputDir: string): Promise<string[]>;