-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathextractModules.ts
More file actions
24 lines (22 loc) · 866 Bytes
/
Copy pathextractModules.ts
File metadata and controls
24 lines (22 loc) · 866 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import type { GP200Preset } from '@/core/types';
import { getModuleName, getEffectName } from '@/core/effectNames';
/** Extract unique module names from active effects in a preset. */
export function extractModules(preset: GP200Preset): string[] {
const modules = new Set<string>();
for (const slot of preset.effects) {
if (!slot.enabled) continue;
const mod = getModuleName(slot.effectId);
if (mod !== 'Unknown') modules.add(mod);
}
return Array.from(modules);
}
/** Extract unique effect names from active effects in a preset. */
export function extractEffects(preset: GP200Preset): string[] {
const effects = new Set<string>();
for (const slot of preset.effects) {
if (!slot.enabled) continue;
const name = getEffectName(slot.effectId);
if (!name.startsWith('Unknown')) effects.add(name);
}
return Array.from(effects);
}