Newer
Older
rpg / apps / game / src / data / audio.ts
/**
 * Ключи аудио: sfx (WAV из tools/audio/gen.mjs + спек-синтез sfxSpecs.ts) и
 * амбиент-лупы областей. Отдельный модуль (без `?url`-импортов Game) — чтобы
 * валидатор мог сверять ключи контента с реестром в node-тестах.
 */
import { SPEC_SFX } from './sfxSpecs';

/** Файловые sfx (WAV). */
export const SFX_KEYS = [
    'sfx/bell_low',
    'sfx/ash_hiss',
    'sfx/ash_die',
    'sfx/spit',
    'sfx/hurt',
    'sfx/step_grass',
    'sfx/step_ash',
    'sfx/step_water',
    'sfx/step_floor',
    'sfx/mote_pickup',
    'sfx/pickup',
    'sfx/chest_open',
    'sfx/note',
    'sfx/deer_startle',
    'sfx/ui_click',
    'sfx/chime'
] as const;

/** Спек-синтезированные sfx (без WAV, компилирует движок). */
export const SPEC_SFX_KEYS: readonly string[] = Object.keys(SPEC_SFX);

/** Амбиент-лупы областей. */
export const AMBIENCE_KEYS = ['ambience/meadows', 'ambience/ponds', 'ambience/zvenets'] as const;

/** Локальные амбиент-слои (вода, гул, дома). */
export const AMBIENCE_LAYER_KEYS = ['ambience/ponds_water', 'ambience/tower_hum', 'ambience/houses'] as const;

/** Все аудио-ключи игры (валидация контента; префетч только файловых). */
export const AUDIO_KEYS: readonly string[] = [
    ...SFX_KEYS,
    ...SPEC_SFX_KEYS,
    ...AMBIENCE_KEYS,
    ...AMBIENCE_LAYER_KEYS
];