Update routine effect finding logic in ProjectSchedulePane.tsx

This commit is contained in:
2026-04-14 23:22:10 +02:00
parent a45a4eede6
commit d3f80e6df4

View File

@@ -19,6 +19,10 @@ import {
type ProjectScheduleEffectOptionId,
type ProjectScheduleTargetOption
} from "../sequencer/project-sequencer-control-options";
import {
findHeldSequenceControlEffect,
getProjectScheduleRoutineHeldSteps
} from "../sequencer/project-sequence-steps";
interface ProjectSequencerPaneProps {
targetOptions: ProjectScheduleTargetOption[];
@@ -70,17 +74,21 @@ function getRoutineSummary(routine: ProjectScheduleRoutine): string {
formatProjectScheduleDaySelection(routine.days),
`${formatTimeOfDayHours(routine.startHour)}-${formatTimeOfDayHours(routine.endHour)}`
];
const heldSteps = getProjectScheduleRoutineHeldSteps(routine);
if (routine.target.kind === "actor") {
const presenceEffect = findProjectScheduleRoutineEffect(
routine,
const presenceEffect = findHeldSequenceControlEffect(
heldSteps,
"setActorPresence"
);
const animationEffect = findProjectScheduleRoutineEffect(
routine,
const animationEffect = findHeldSequenceControlEffect(
heldSteps,
"playActorAnimation"
);
const pathEffect = findProjectScheduleRoutineEffect(routine, "followActorPath");
const pathEffect = findHeldSequenceControlEffect(
heldSteps,
"followActorPath"
);
summaryParts.push(presenceEffect?.active === false ? "Hidden" : "Present");
@@ -100,10 +108,11 @@ function getRoutineSummary(routine: ProjectScheduleRoutine): string {
}
function isRoutineEffectInactive(routine: ProjectScheduleRoutine): boolean {
const heldSteps = getProjectScheduleRoutineHeldSteps(routine);
if (routine.target.kind === "actor") {
return (
findProjectScheduleRoutineEffect(routine, "setActorPresence")?.active ===
false
findHeldSequenceControlEffect(heldSteps, "setActorPresence")?.active === false
);
}
@@ -226,15 +235,24 @@ export function ProjectSequencerPane({
const selectedActorPresenceEffect =
selectedRoutine === null || selectedRoutine.target.kind !== "actor"
? null
: findProjectScheduleRoutineEffect(selectedRoutine, "setActorPresence");
: findHeldSequenceControlEffect(
getProjectScheduleRoutineHeldSteps(selectedRoutine),
"setActorPresence"
);
const selectedActorAnimationEffect =
selectedRoutine === null || selectedRoutine.target.kind !== "actor"
? null
: findProjectScheduleRoutineEffect(selectedRoutine, "playActorAnimation");
: findHeldSequenceControlEffect(
getProjectScheduleRoutineHeldSteps(selectedRoutine),
"playActorAnimation"
);
const selectedActorPathEffect =
selectedRoutine === null || selectedRoutine.target.kind !== "actor"
? null
: findProjectScheduleRoutineEffect(selectedRoutine, "followActorPath");
: findHeldSequenceControlEffect(
getProjectScheduleRoutineHeldSteps(selectedRoutine),
"followActorPath"
);
const hourTicks = Array.from({ length: HOURS_PER_DAY }, (_, hour) => hour);
return (