diff --git a/src/scheduler/project-schedule-control-options.ts b/src/scheduler/project-schedule-control-options.ts index 3766c35b..52b9f721 100644 --- a/src/scheduler/project-schedule-control-options.ts +++ b/src/scheduler/project-schedule-control-options.ts @@ -255,6 +255,11 @@ const PROJECT_SCHEDULE_EFFECT_OPTIONS: Record< } }; +const INTERACTION_UNSUPPORTED_PROJECT_SCHEDULE_EFFECT_OPTION_IDS = new Set([ + "actor.playAnimation", + "actor.followPath" +]); + function compareProjectScheduleTargetOptions( left: ProjectScheduleTargetOption, right: ProjectScheduleTargetOption @@ -585,6 +590,24 @@ export function listProjectScheduleEffectOptions( } } +export function listProjectInteractionControlEffectOptions( + targetOption: ProjectScheduleTargetOption +): ProjectScheduleEffectOption[] { + return listProjectScheduleEffectOptions(targetOption).filter( + (option) => + !INTERACTION_UNSUPPORTED_PROJECT_SCHEDULE_EFFECT_OPTION_IDS.has(option.id) + ); +} + +export function listProjectInteractionControlTargetOptions( + targetOptions: ProjectScheduleTargetOption[] +): ProjectScheduleTargetOption[] { + return targetOptions.filter( + (targetOption) => + listProjectInteractionControlEffectOptions(targetOption).length > 0 + ); +} + export function getProjectSequenceControlStepClassForEffectOptionId( effectOptionId: ProjectScheduleEffectOptionId ): "held" | "impulse" {