From 0791a1357a3c7b2a838eaec75e3288a1a9359e9c Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Wed, 15 Apr 2026 07:23:35 +0200 Subject: [PATCH] Refactor project schedule control options and add new function --- .../project-schedule-control-options.ts | 32 +++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/src/scheduler/project-schedule-control-options.ts b/src/scheduler/project-schedule-control-options.ts index fe0f1b3a..47c57545 100644 --- a/src/scheduler/project-schedule-control-options.ts +++ b/src/scheduler/project-schedule-control-options.ts @@ -494,8 +494,6 @@ export function listProjectScheduleEffectOptions( switch (targetOption.target.kind) { case "actor": return [ - PROJECT_SCHEDULE_EFFECT_OPTIONS["actor.present"], - PROJECT_SCHEDULE_EFFECT_OPTIONS["actor.hidden"], ...((targetOption.defaults.actorAnimationClipNames?.length ?? 0) > 0 ? [PROJECT_SCHEDULE_EFFECT_OPTIONS["actor.playAnimation"]] : []), @@ -551,6 +549,36 @@ export function listProjectScheduleEffectOptions( } } +export function getProjectSequenceControlStepClassForEffectOptionId( + effectOptionId: ProjectScheduleEffectOptionId +): "held" | "impulse" { + switch (effectOptionId) { + case "model.playAnimation": + case "model.stopAnimation": + case "sound.play": + case "sound.stop": + return "impulse"; + case "actor.present": + case "actor.hidden": + case "actor.playAnimation": + case "actor.followPath": + case "model.visible": + case "model.hidden": + case "sound.volume": + case "interaction.enabled": + case "interaction.disabled": + case "light.enabled": + case "light.disabled": + case "light.intensity": + case "light.color": + case "scene.ambientIntensity": + case "scene.ambientColor": + case "scene.sunIntensity": + case "scene.sunColor": + return "held"; + } +} + export function getProjectScheduleEffectOptionId( effect: ControlEffect ): ProjectScheduleEffectOptionId {