add ignored presets for butterchurn

This commit is contained in:
jeffvli
2025-12-25 13:49:14 -08:00
parent f78a572a3c
commit 800074dced
4 changed files with 18 additions and 1 deletions
+1
View File
@@ -1104,6 +1104,7 @@
"cyclePresets": "Cycle Presets",
"cycleTime": "Cycle Time (seconds)",
"includeAllPresets": "Include All Presets",
"ignoredPresets": "Ignored Presets",
"selectedPresets": "Selected Presets",
"randomizeNextPreset": "Randomize Next Preset",
"blendTime": "Blend Time",
@@ -2022,6 +2022,13 @@ const ButterChurnCycleSettings = () => {
onChange={(values) => updateProperty('selectedPresets', values)}
value={visualizer.butterchurn.selectedPresets}
/>
<MultiSelect
data={presetOptions}
disabled={!visualizer.butterchurn.cyclePresets}
label={t('visualizer.ignoredPresets')}
onChange={(values) => updateProperty('ignoredPresets', values)}
value={visualizer.butterchurn.ignoredPresets}
/>
<Group grow>
<VisualizerSlider
@@ -179,12 +179,19 @@ const VisualizerInner = () => {
const allPresetNames = Object.keys(presets);
// Get the list of presets to cycle through
const presetList = butterchurnSettings.includeAllPresets
let presetList = butterchurnSettings.includeAllPresets
? allPresetNames
: butterchurnSettings.selectedPresets.length > 0
? butterchurnSettings.selectedPresets.filter((name) => presets[name])
: allPresetNames;
// Filter out ignored presets
if (butterchurnSettings.ignoredPresets && butterchurnSettings.ignoredPresets.length > 0) {
presetList = presetList.filter(
(name) => !butterchurnSettings.ignoredPresets.includes(name),
);
}
if (presetList.length === 0) return;
// Reset cycle timer when settings change
+2
View File
@@ -320,6 +320,7 @@ const ButterchurnSettingsSchema = z.object({
currentPreset: z.string().optional(),
cyclePresets: z.boolean(),
cycleTime: z.number().min(1).max(300),
ignoredPresets: z.array(z.string()),
includeAllPresets: z.boolean(),
maxFPS: z.number().min(0),
randomizeNextPreset: z.boolean(),
@@ -1480,6 +1481,7 @@ const initialState: SettingsState = {
currentPreset: undefined,
cyclePresets: true,
cycleTime: 30,
ignoredPresets: [],
includeAllPresets: true,
maxFPS: 0,
randomizeNextPreset: true,