lpc-forge 1.0.1 → 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 (97) hide show
  1. package/dist/assets/manager.js +85 -6
  2. package/dist/assets/manager.js.map +1 -1
  3. package/dist/audio/index.d.ts +4 -0
  4. package/dist/audio/index.js +4 -0
  5. package/dist/audio/index.js.map +1 -0
  6. package/dist/audio/music-catalog.d.ts +11 -0
  7. package/dist/audio/music-catalog.js +96 -0
  8. package/dist/audio/music-catalog.js.map +1 -0
  9. package/dist/audio/sfx-generator.d.ts +11 -0
  10. package/dist/audio/sfx-generator.js +77 -0
  11. package/dist/audio/sfx-generator.js.map +1 -0
  12. package/dist/audio/sfx-presets.d.ts +2 -0
  13. package/dist/audio/sfx-presets.js +286 -0
  14. package/dist/audio/sfx-presets.js.map +1 -0
  15. package/dist/audio/types.d.ts +39 -0
  16. package/dist/audio/types.js +2 -0
  17. package/dist/audio/types.js.map +1 -0
  18. package/dist/character/composer.d.ts +4 -1
  19. package/dist/character/composer.js +41 -7
  20. package/dist/character/composer.js.map +1 -1
  21. package/dist/cli.js +92 -24
  22. package/dist/export/godot.js +78 -19
  23. package/dist/export/godot.js.map +1 -1
  24. package/dist/license.js +1 -1
  25. package/dist/lighting/index.d.ts +16 -0
  26. package/dist/lighting/index.js +95 -0
  27. package/dist/lighting/index.js.map +1 -0
  28. package/dist/lighting/particles.d.ts +2 -0
  29. package/dist/lighting/particles.js +192 -0
  30. package/dist/lighting/particles.js.map +1 -0
  31. package/dist/lighting/presets.d.ts +2 -0
  32. package/dist/lighting/presets.js +146 -0
  33. package/dist/lighting/presets.js.map +1 -0
  34. package/dist/lighting/types.d.ts +36 -0
  35. package/dist/lighting/types.js +2 -0
  36. package/dist/lighting/types.js.map +1 -0
  37. package/dist/systems/day-night.d.ts +2 -0
  38. package/dist/systems/day-night.js +109 -0
  39. package/dist/systems/day-night.js.map +1 -0
  40. package/dist/systems/dialog.d.ts +2 -0
  41. package/dist/systems/dialog.js +266 -0
  42. package/dist/systems/dialog.js.map +1 -0
  43. package/dist/systems/enemy-ai.d.ts +2 -0
  44. package/dist/systems/enemy-ai.js +204 -0
  45. package/dist/systems/enemy-ai.js.map +1 -0
  46. package/dist/systems/hud-full.d.ts +2 -0
  47. package/dist/systems/hud-full.js +158 -0
  48. package/dist/systems/hud-full.js.map +1 -0
  49. package/dist/systems/index.d.ts +10 -0
  50. package/dist/systems/index.js +59 -0
  51. package/dist/systems/index.js.map +1 -0
  52. package/dist/systems/inventory.d.ts +2 -0
  53. package/dist/systems/inventory.js +324 -0
  54. package/dist/systems/inventory.js.map +1 -0
  55. package/dist/systems/loot.d.ts +2 -0
  56. package/dist/systems/loot.js +109 -0
  57. package/dist/systems/loot.js.map +1 -0
  58. package/dist/systems/menu.d.ts +2 -0
  59. package/dist/systems/menu.js +453 -0
  60. package/dist/systems/menu.js.map +1 -0
  61. package/dist/systems/quest.d.ts +2 -0
  62. package/dist/systems/quest.js +210 -0
  63. package/dist/systems/quest.js.map +1 -0
  64. package/dist/systems/save-load.d.ts +2 -0
  65. package/dist/systems/save-load.js +163 -0
  66. package/dist/systems/save-load.js.map +1 -0
  67. package/dist/systems/scene-transition.d.ts +2 -0
  68. package/dist/systems/scene-transition.js +107 -0
  69. package/dist/systems/scene-transition.js.map +1 -0
  70. package/dist/systems/types.d.ts +20 -0
  71. package/dist/systems/types.js +2 -0
  72. package/dist/systems/types.js.map +1 -0
  73. package/dist/systems/writer.d.ts +11 -0
  74. package/dist/systems/writer.js +31 -0
  75. package/dist/systems/writer.js.map +1 -0
  76. package/dist/ui/generator.d.ts +7 -0
  77. package/dist/ui/generator.js +307 -0
  78. package/dist/ui/generator.js.map +1 -0
  79. package/dist/ui/icons.d.ts +10 -0
  80. package/dist/ui/icons.js +320 -0
  81. package/dist/ui/icons.js.map +1 -0
  82. package/dist/ui/index.d.ts +6 -0
  83. package/dist/ui/index.js +6 -0
  84. package/dist/ui/index.js.map +1 -0
  85. package/dist/ui/portrait.d.ts +12 -0
  86. package/dist/ui/portrait.js +72 -0
  87. package/dist/ui/portrait.js.map +1 -0
  88. package/dist/ui/props.d.ts +9 -0
  89. package/dist/ui/props.js +247 -0
  90. package/dist/ui/props.js.map +1 -0
  91. package/dist/ui/themes.d.ts +2 -0
  92. package/dist/ui/themes.js +69 -0
  93. package/dist/ui/themes.js.map +1 -0
  94. package/dist/ui/types.d.ts +58 -0
  95. package/dist/ui/types.js +2 -0
  96. package/dist/ui/types.js.map +1 -0
  97. package/package.json +5 -1
@@ -0,0 +1,286 @@
1
+ // Helper: jsfxr params are [waveType, attackTime, sustainTime, sustainPunch,
2
+ // decayTime, startFreq, minFreq, slide, deltaSlide, vibratoDepth,
3
+ // vibratoSpeed, changeAmount, changeSpeed, squareDuty, dutySweep,
4
+ // repeatSpeed, phaserOffset, phaserSweep, lpFilterCutoff,
5
+ // lpFilterCutoffSweep, lpFilterResonance, hpFilterCutoff,
6
+ // hpFilterCutoffSweep, volume]
7
+ export const SFX_PRESETS = {
8
+ // === COMBAT (10) ===
9
+ sword_hit: {
10
+ name: 'Sword Hit',
11
+ category: 'combat',
12
+ description: 'Metal sword striking an enemy',
13
+ params: [1, 0, 0.1, 0.3, 0.15, 0.5, 0.2, -0.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0.5],
14
+ },
15
+ sword_swing: {
16
+ name: 'Sword Swing',
17
+ category: 'combat',
18
+ description: 'Sword swinging through air (miss)',
19
+ params: [3, 0, 0.05, 0, 0.2, 0.6, 0.1, -0.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.8, -0.3, 0, 0.1, 0, 0.4],
20
+ },
21
+ bow_release: {
22
+ name: 'Bow Release',
23
+ category: 'combat',
24
+ description: 'Arrow fired from bow',
25
+ params: [3, 0, 0.05, 0.2, 0.1, 0.8, 0.3, -0.6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0.4],
26
+ },
27
+ arrow_hit: {
28
+ name: 'Arrow Hit',
29
+ category: 'combat',
30
+ description: 'Arrow striking target',
31
+ params: [3, 0, 0.05, 0.4, 0.1, 0.4, 0.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.8, 0, 0, 0, 0, 0.5],
32
+ },
33
+ shield_block: {
34
+ name: 'Shield Block',
35
+ category: 'combat',
36
+ description: 'Attack blocked by shield',
37
+ params: [3, 0, 0.1, 0.5, 0.2, 0.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.3, -0.1, 1, 0, 0, 0, 0, 0.6],
38
+ },
39
+ player_hurt: {
40
+ name: 'Player Hurt',
41
+ category: 'combat',
42
+ description: 'Player taking damage',
43
+ params: [3, 0, 0.1, 0, 0.3, 0.3, 0.1, -0.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0.5],
44
+ },
45
+ enemy_hurt: {
46
+ name: 'Enemy Hurt',
47
+ category: 'combat',
48
+ description: 'Enemy taking damage',
49
+ params: [3, 0, 0.08, 0, 0.25, 0.4, 0.15, -0.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0.5],
50
+ },
51
+ enemy_death: {
52
+ name: 'Enemy Death',
53
+ category: 'combat',
54
+ description: 'Enemy defeated/dying',
55
+ params: [3, 0, 0.2, 0, 0.5, 0.3, 0, -0.1, -0.01, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -0.2, 0, 0, 0, 0.5],
56
+ },
57
+ critical_hit: {
58
+ name: 'Critical Hit',
59
+ category: 'combat',
60
+ description: 'Critical/heavy damage strike',
61
+ params: [1, 0, 0.15, 0.5, 0.3, 0.4, 0, -0.15, 0, 0.1, 0.2, 0, 0, 0, 0, 0, 0.2, -0.1, 1, 0, 0, 0, 0, 0.7],
62
+ },
63
+ explosion: {
64
+ name: 'Explosion',
65
+ category: 'combat',
66
+ description: 'Bomb or magic explosion',
67
+ params: [3, 0, 0.2, 0.3, 0.6, 0.2, 0, -0.05, 0, 0, 0, 0, 0, 0, 0, 0, 0.3, -0.05, 1, 0, 0, 0, 0, 0.7],
68
+ },
69
+ // === UI (7) ===
70
+ menu_select: {
71
+ name: 'Menu Select',
72
+ category: 'ui',
73
+ description: 'Menu item selected/confirmed',
74
+ params: [0, 0, 0.05, 0, 0.1, 0.5, 0, 0.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0.3],
75
+ },
76
+ menu_hover: {
77
+ name: 'Menu Hover',
78
+ category: 'ui',
79
+ description: 'Cursor moving over menu item',
80
+ params: [0, 0, 0.03, 0, 0.05, 0.7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0.2],
81
+ },
82
+ menu_back: {
83
+ name: 'Menu Back',
84
+ category: 'ui',
85
+ description: 'Going back in menu',
86
+ params: [0, 0, 0.05, 0, 0.1, 0.5, 0, -0.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0.3],
87
+ },
88
+ menu_error: {
89
+ name: 'Menu Error',
90
+ category: 'ui',
91
+ description: 'Invalid action / error buzz',
92
+ params: [0, 0, 0.2, 0, 0.1, 0.2, 0.19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0.4],
93
+ },
94
+ dialog_blip: {
95
+ name: 'Dialog Blip',
96
+ category: 'ui',
97
+ description: 'Text appearing character by character',
98
+ params: [0, 0, 0.01, 0, 0.02, 0.6, 0, 0, 0, 0, 0, 0, 0, 0.5, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0.15],
99
+ },
100
+ dialog_advance: {
101
+ name: 'Dialog Advance',
102
+ category: 'ui',
103
+ description: 'Moving to next dialog box',
104
+ params: [0, 0, 0.04, 0, 0.08, 0.55, 0, 0.15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0.25],
105
+ },
106
+ notification: {
107
+ name: 'Notification',
108
+ category: 'ui',
109
+ description: 'Quest update or notification ping',
110
+ params: [0, 0, 0.08, 0, 0.15, 0.6, 0, 0.1, 0, 0, 0, 0.3, 0.5, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0.35],
111
+ },
112
+ // === MOVEMENT (5) ===
113
+ footstep_stone: {
114
+ name: 'Footstep Stone',
115
+ category: 'movement',
116
+ description: 'Walking on stone/tile',
117
+ params: [3, 0, 0.01, 0, 0.04, 0.15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5, 0, 0, 0.3, 0, 0.25],
118
+ },
119
+ footstep_grass: {
120
+ name: 'Footstep Grass',
121
+ category: 'movement',
122
+ description: 'Walking on grass/dirt',
123
+ params: [3, 0, 0.02, 0, 0.05, 0.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.3, 0, 0, 0.4, 0, 0.2],
124
+ },
125
+ footstep_wood: {
126
+ name: 'Footstep Wood',
127
+ category: 'movement',
128
+ description: 'Walking on wooden floor',
129
+ params: [3, 0, 0.015, 0.1, 0.04, 0.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.1, 0, 0.6, 0, 0, 0.2, 0, 0.25],
130
+ },
131
+ door_open: {
132
+ name: 'Door Open',
133
+ category: 'movement',
134
+ description: 'Opening a door',
135
+ params: [3, 0.05, 0.2, 0, 0.3, 0.2, 0.1, 0.1, 0, 0, 0, 0, 0, 0, 0, 0, 0.2, 0.1, 0.8, 0, 0, 0, 0, 0.4],
136
+ },
137
+ door_close: {
138
+ name: 'Door Close',
139
+ category: 'movement',
140
+ description: 'Closing a door',
141
+ params: [3, 0, 0.15, 0.2, 0.2, 0.2, 0, -0.05, 0, 0, 0, 0, 0, 0, 0, 0, 0.15, -0.05, 0.9, 0, 0, 0, 0, 0.45],
142
+ },
143
+ // === ITEMS (8) ===
144
+ coin_pickup: {
145
+ name: 'Coin Pickup',
146
+ category: 'items',
147
+ description: 'Collecting a coin/gold',
148
+ params: [0, 0, 0.04, 0, 0.08, 0.7, 0, 0.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0.3],
149
+ },
150
+ item_pickup: {
151
+ name: 'Item Pickup',
152
+ category: 'items',
153
+ description: 'Picking up a general item',
154
+ params: [0, 0, 0.05, 0, 0.1, 0.5, 0, 0.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0.35],
155
+ },
156
+ potion_drink: {
157
+ name: 'Potion Drink',
158
+ category: 'items',
159
+ description: 'Drinking a potion',
160
+ params: [3, 0.1, 0.15, 0, 0.3, 0.4, 0.2, -0.1, 0, 0.05, 0.1, 0, 0, 0, 0, 0, 0, 0, 0.7, 0, 0, 0, 0, 0.4],
161
+ },
162
+ chest_open: {
163
+ name: 'Chest Open',
164
+ category: 'items',
165
+ description: 'Opening a treasure chest',
166
+ params: [0, 0.05, 0.1, 0.3, 0.3, 0.4, 0, 0.15, 0.01, 0, 0, 0.2, 0.3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0.45],
167
+ },
168
+ key_pickup: {
169
+ name: 'Key Pickup',
170
+ category: 'items',
171
+ description: 'Picking up a key',
172
+ params: [0, 0, 0.06, 0.2, 0.12, 0.65, 0, 0.25, 0, 0, 0, 0.15, 0.3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0.35],
173
+ },
174
+ equip_armor: {
175
+ name: 'Equip Armor',
176
+ category: 'items',
177
+ description: 'Equipping armor/gear',
178
+ params: [3, 0.02, 0.1, 0.2, 0.15, 0.3, 0.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2, 0, 0.8, 0, 0, 0, 0, 0.4],
179
+ },
180
+ equip_weapon: {
181
+ name: 'Equip Weapon',
182
+ category: 'items',
183
+ description: 'Equipping a weapon',
184
+ params: [1, 0.02, 0.08, 0.3, 0.1, 0.4, 0.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0.45],
185
+ },
186
+ inventory_move: {
187
+ name: 'Inventory Move',
188
+ category: 'items',
189
+ description: 'Moving an item in inventory',
190
+ params: [3, 0, 0.02, 0, 0.05, 0.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.6, 0, 0, 0.2, 0, 0.2],
191
+ },
192
+ // === ENVIRONMENT (5) ===
193
+ torch_ignite: {
194
+ name: 'Torch Ignite',
195
+ category: 'environment',
196
+ description: 'Lighting a torch',
197
+ params: [3, 0.05, 0.15, 0.1, 0.4, 0.3, 0, 0.05, 0, 0.1, 0.3, 0, 0, 0, 0, 0, 0, 0, 0.6, 0.1, 0, 0, 0, 0.4],
198
+ },
199
+ water_splash: {
200
+ name: 'Water Splash',
201
+ category: 'environment',
202
+ description: 'Stepping in water or fountain',
203
+ params: [3, 0, 0.1, 0, 0.4, 0.15, 0, 0, 0, 0.1, 0.5, 0, 0, 0, 0, 0, 0, 0, 0.4, 0, 0, 0, 0, 0.35],
204
+ },
205
+ lever_pull: {
206
+ name: 'Lever Pull',
207
+ category: 'environment',
208
+ description: 'Pulling a lever/switch',
209
+ params: [0, 0.02, 0.08, 0.3, 0.1, 0.5, 0.3, -0.3, 0, 0, 0, 0, 0, 0.5, 0, 0, 0.1, 0, 1, 0, 0, 0, 0, 0.4],
210
+ },
211
+ stone_slide: {
212
+ name: 'Stone Slide',
213
+ category: 'environment',
214
+ description: 'Stone block sliding (puzzle)',
215
+ params: [3, 0.1, 0.3, 0, 0.2, 0.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.3, 0.1, 0.5, 0, 0, 0.1, 0, 0.5],
216
+ },
217
+ wind_gust: {
218
+ name: 'Wind Gust',
219
+ category: 'environment',
220
+ description: 'Wind blowing effect',
221
+ params: [3, 0.2, 0.5, 0, 0.5, 0.05, 0, 0.02, 0, 0.05, 0.1, 0, 0, 0, 0, 0, 0, 0, 0.3, 0.05, 0, 0, 0, 0.3],
222
+ },
223
+ // === MAGIC (5) ===
224
+ spell_cast: {
225
+ name: 'Spell Cast',
226
+ category: 'magic',
227
+ description: 'Casting a spell',
228
+ params: [0, 0.05, 0.1, 0.2, 0.3, 0.5, 0.2, 0.2, 0.01, 0.1, 0.3, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0.5],
229
+ },
230
+ heal: {
231
+ name: 'Heal',
232
+ category: 'magic',
233
+ description: 'Healing spell effect',
234
+ params: [0, 0.1, 0.15, 0, 0.3, 0.6, 0.4, 0.1, 0.005, 0.05, 0.2, 0.1, 0.3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0.4],
235
+ },
236
+ fire_spell: {
237
+ name: 'Fire Spell',
238
+ category: 'magic',
239
+ description: 'Fire magic attack',
240
+ params: [3, 0, 0.15, 0.3, 0.4, 0.3, 0, -0.05, 0, 0.1, 0.4, 0, 0, 0, 0, 0, 0.1, -0.05, 0.6, 0, 0, 0, 0, 0.6],
241
+ },
242
+ ice_spell: {
243
+ name: 'Ice Spell',
244
+ category: 'magic',
245
+ description: 'Ice/frost magic',
246
+ params: [0, 0, 0.1, 0.4, 0.3, 0.8, 0.4, -0.2, 0, 0, 0, 0, 0, 0.3, 0, 0, 0.2, 0, 0.5, 0, 0, 0.2, 0, 0.5],
247
+ },
248
+ teleport: {
249
+ name: 'Teleport',
250
+ category: 'magic',
251
+ description: 'Teleportation/warp effect',
252
+ params: [0, 0, 0.08, 0.2, 0.25, 0.7, 0.1, -0.4, -0.02, 0.1, 0.3, 0, 0, 0, 0, 0, 0, 0, 0.8, 0, 0, 0, 0, 0.5],
253
+ },
254
+ // === FEEDBACK (5) ===
255
+ level_up: {
256
+ name: 'Level Up',
257
+ category: 'feedback',
258
+ description: 'Player leveling up fanfare',
259
+ params: [0, 0, 0.08, 0.3, 0.3, 0.5, 0, 0.15, 0.01, 0, 0, 0.2, 0.3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0.5],
260
+ },
261
+ quest_complete: {
262
+ name: 'Quest Complete',
263
+ category: 'feedback',
264
+ description: 'Quest objective completed',
265
+ params: [0, 0, 0.1, 0.2, 0.25, 0.5, 0, 0.15, 0.01, 0, 0, 0.15, 0.25, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0.45],
266
+ },
267
+ save_game: {
268
+ name: 'Save Game',
269
+ category: 'feedback',
270
+ description: 'Game saved confirmation',
271
+ params: [0, 0.05, 0.1, 0, 0.2, 0.6, 0.4, 0.05, 0, 0, 0, 0.1, 0.2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0.3],
272
+ },
273
+ game_over: {
274
+ name: 'Game Over',
275
+ category: 'feedback',
276
+ description: 'Player death / game over',
277
+ params: [0, 0, 0.2, 0, 0.6, 0.3, 0.1, -0.1, -0.005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0.5],
278
+ },
279
+ victory: {
280
+ name: 'Victory',
281
+ category: 'feedback',
282
+ description: 'Battle won / victory jingle',
283
+ params: [0, 0, 0.1, 0.3, 0.4, 0.6, 0.3, 0.1, 0.005, 0, 0, 0.15, 0.2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0.5],
284
+ },
285
+ };
286
+ //# sourceMappingURL=sfx-presets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sfx-presets.js","sourceRoot":"","sources":["../../src/audio/sfx-presets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /** SFX preset categories for RPG games */
2
+ export type SfxCategory = 'combat' | 'ui' | 'movement' | 'items' | 'environment' | 'magic' | 'feedback';
3
+ export interface SfxPreset {
4
+ /** Display name */
5
+ name: string;
6
+ /** Category for organization */
7
+ category: SfxCategory;
8
+ /** Description of the sound */
9
+ description: string;
10
+ /** jsfxr parameter array — 24 numbers */
11
+ params: number[];
12
+ }
13
+ export interface MusicTrack {
14
+ /** Display name */
15
+ name: string;
16
+ /** Usage context (e.g., "town", "dungeon", "battle") */
17
+ context: string;
18
+ /** Filename in assets/music/ */
19
+ filename: string;
20
+ /** Artist credit */
21
+ artist: string;
22
+ /** License */
23
+ license: string;
24
+ /** OGA/source URL */
25
+ sourceUrl: string;
26
+ /** Whether it loops seamlessly */
27
+ loops: boolean;
28
+ /** Duration in seconds (approximate) */
29
+ durationSeconds: number;
30
+ }
31
+ export interface SfxGenerationResult {
32
+ name: string;
33
+ category: SfxCategory;
34
+ path: string;
35
+ }
36
+ export interface AudioBundle {
37
+ sfx: SfxGenerationResult[];
38
+ music: MusicTrack[];
39
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/audio/types.ts"],"names":[],"mappings":""}
@@ -1,3 +1,6 @@
1
1
  import { type CharacterSpec } from './types.js';
2
+ export interface ComposeOptions {
3
+ verbose?: boolean;
4
+ }
2
5
  /** Compose a complete character spritesheet from a CharacterSpec */
3
- export declare function composeCharacter(spec: CharacterSpec, repoRoot: string): Promise<Buffer>;
6
+ export declare function composeCharacter(spec: CharacterSpec, repoRoot: string, options?: ComposeOptions): Promise<Buffer>;
@@ -2,19 +2,45 @@ import sharp from 'sharp';
2
2
  import { existsSync } from 'node:fs';
3
3
  import { join } from 'node:path';
4
4
  import { ANIMATIONS, FRAME_SIZE, SHEET_WIDTH, SHEET_HEIGHT, ANIMATION_FOLDER_MAP, } from './types.js';
5
- import { loadDefinitions, findDefinition } from './definitions.js';
5
+ import { loadDefinitions, findDefinition, listLayers } from './definitions.js';
6
6
  /** Compose a complete character spritesheet from a CharacterSpec */
7
- export async function composeCharacter(spec, repoRoot) {
7
+ export async function composeCharacter(spec, repoRoot, options) {
8
+ const verbose = options?.verbose ?? false;
8
9
  const registry = await loadDefinitions(repoRoot);
9
10
  const spritesDir = join(repoRoot, 'spritesheets');
10
- // Resolve all layers to concrete sprite paths
11
- const resolvedLayers = [];
11
+ // Pre-validate all layers before compositing (Q2)
12
+ const issues = [];
13
+ const allLayers = listLayers(registry);
12
14
  for (const layer of spec.layers) {
13
15
  const def = findDefinition(registry, layer.category, layer.subcategory);
14
16
  if (!def) {
15
- console.warn(`Warning: No definition found for ${layer.category}/${layer.subcategory}, skipping`);
17
+ // Build helpful message with available options
18
+ const categoryLayers = allLayers[layer.category];
19
+ if (categoryLayers && categoryLayers.length > 0) {
20
+ const available = categoryLayers.map(l => l.name.split('/').pop()).join(', ');
21
+ issues.push(`Unknown ${layer.category}: "${layer.subcategory}". Available: ${available}`);
22
+ }
23
+ else {
24
+ issues.push(`Unknown ${layer.category}: "${layer.subcategory}" (no definitions found for category "${layer.category}")`);
25
+ }
16
26
  continue;
17
27
  }
28
+ // Validate variant exists for definitions that track variants
29
+ if (def.variants.length > 0 && !def.variants.includes(layer.variant)) {
30
+ issues.push(`Unknown variant "${layer.variant}" for ${def.name}. Available: ${def.variants.join(', ')}`);
31
+ }
32
+ }
33
+ if (issues.length > 0) {
34
+ throw new Error('Cannot compose character. Issues found:\n' +
35
+ issues.map(i => ` - ${i}`).join('\n'));
36
+ }
37
+ // Resolve all layers to concrete sprite paths
38
+ const resolvedLayers = [];
39
+ for (const layer of spec.layers) {
40
+ const def = findDefinition(registry, layer.category, layer.subcategory);
41
+ if (verbose) {
42
+ console.log(` Loading: ${def.name} (variant: ${layer.variant})`);
43
+ }
18
44
  for (const entry of def.layers) {
19
45
  // Skip custom animation layers for now (oversize attacks, etc.)
20
46
  if (entry.customAnimation)
@@ -24,7 +50,9 @@ export async function composeCharacter(spec, repoRoot) {
24
50
  // Try to find a fallback body type
25
51
  const fallback = findFallbackBodyType(entry.paths, spec.bodyType);
26
52
  if (!fallback) {
27
- console.warn(`Warning: ${def.name} layer has no path for body type "${spec.bodyType}", skipping`);
53
+ if (verbose) {
54
+ console.log(` Skipping: ${def.name} layer has no path for body type "${spec.bodyType}"`);
55
+ }
28
56
  continue;
29
57
  }
30
58
  resolvedLayers.push({
@@ -46,6 +74,12 @@ export async function composeCharacter(spec, repoRoot) {
46
74
  }
47
75
  // Sort by zPos ascending (back to front)
48
76
  resolvedLayers.sort((a, b) => a.zPos - b.zPos);
77
+ if (verbose) {
78
+ console.log(` Compositing ${resolvedLayers.length} layers (z-sorted):`);
79
+ for (const l of resolvedLayers) {
80
+ console.log(` z=${l.zPos}: ${l.basePath} [${l.variant}]`);
81
+ }
82
+ }
49
83
  // Build universal sheets for each resolved layer
50
84
  const layerBuffers = [];
51
85
  for (const layer of resolvedLayers) {
@@ -55,7 +89,7 @@ export async function composeCharacter(spec, repoRoot) {
55
89
  }
56
90
  }
57
91
  if (layerBuffers.length === 0) {
58
- throw new Error('No valid layers could be loaded. Check your CharacterSpec.');
92
+ throw new Error('No valid layers could be loaded. Check that assets are installed (run: lpc-forge setup).');
59
93
  }
60
94
  // Composite all layers together
61
95
  const composites = layerBuffers.map((input) => ({
@@ -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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"}