auto-git:
[change] src/controls/control-surface.ts
This commit is contained in:
@@ -1395,6 +1395,11 @@ export function getControlEffectResolutionKey(effect: ControlEffect): string {
|
|||||||
switch (effect.type) {
|
switch (effect.type) {
|
||||||
case "setProjectTimePaused":
|
case "setProjectTimePaused":
|
||||||
return `state:projectTimePaused:${getControlTargetRefKey(effect.target)}`;
|
return `state:projectTimePaused:${getControlTargetRefKey(effect.target)}`;
|
||||||
|
case "activateCameraRigOverride":
|
||||||
|
case "clearCameraRigOverride":
|
||||||
|
return `state:cameraRigOverride:${getControlTargetRefKey(
|
||||||
|
createProjectGlobalControlTargetRef()
|
||||||
|
)}`;
|
||||||
case "setActorPresence":
|
case "setActorPresence":
|
||||||
return `state:actorPresence:${getControlTargetRefKey(effect.target)}`;
|
return `state:actorPresence:${getControlTargetRefKey(effect.target)}`;
|
||||||
case "playActorAnimation":
|
case "playActorAnimation":
|
||||||
@@ -1515,6 +1520,16 @@ export function cloneControlEffect<TEffect extends ControlEffect>(
|
|||||||
target: cloneControlTargetRef(effect.target),
|
target: cloneControlTargetRef(effect.target),
|
||||||
paused: effect.paused
|
paused: effect.paused
|
||||||
} as TEffect;
|
} as TEffect;
|
||||||
|
case "activateCameraRigOverride":
|
||||||
|
return {
|
||||||
|
type: "activateCameraRigOverride",
|
||||||
|
target: cloneControlTargetRef(effect.target)
|
||||||
|
} as TEffect;
|
||||||
|
case "clearCameraRigOverride":
|
||||||
|
return {
|
||||||
|
type: "clearCameraRigOverride",
|
||||||
|
target: cloneControlTargetRef(effect.target)
|
||||||
|
} as TEffect;
|
||||||
case "setActorPresence":
|
case "setActorPresence":
|
||||||
return {
|
return {
|
||||||
type: "setActorPresence",
|
type: "setActorPresence",
|
||||||
@@ -1668,6 +1683,12 @@ export function cloneRuntimeResolvedDiscreteControlState<
|
|||||||
value: state.value,
|
value: state.value,
|
||||||
source: state.source
|
source: state.source
|
||||||
}) as TState;
|
}) as TState;
|
||||||
|
case "cameraRigOverride":
|
||||||
|
return createResolvedCameraRigOverrideState({
|
||||||
|
target: state.target,
|
||||||
|
entityId: state.entityId,
|
||||||
|
source: state.source
|
||||||
|
}) as TState;
|
||||||
case "actorPresence":
|
case "actorPresence":
|
||||||
return createResolvedActorPresenceState({
|
return createResolvedActorPresenceState({
|
||||||
target: state.target,
|
target: state.target,
|
||||||
@@ -1813,6 +1834,9 @@ export function areControlEffectsEqual(
|
|||||||
switch (left.type) {
|
switch (left.type) {
|
||||||
case "setProjectTimePaused":
|
case "setProjectTimePaused":
|
||||||
return left.paused === (right as SetProjectTimePausedControlEffect).paused;
|
return left.paused === (right as SetProjectTimePausedControlEffect).paused;
|
||||||
|
case "activateCameraRigOverride":
|
||||||
|
case "clearCameraRigOverride":
|
||||||
|
return true;
|
||||||
case "setActorPresence":
|
case "setActorPresence":
|
||||||
return left.active === (right as SetActorPresenceControlEffect).active;
|
return left.active === (right as SetActorPresenceControlEffect).active;
|
||||||
case "playActorAnimation":
|
case "playActorAnimation":
|
||||||
@@ -1880,6 +1904,10 @@ export function getControlEffectLabel(effect: ControlEffect): string {
|
|||||||
switch (effect.type) {
|
switch (effect.type) {
|
||||||
case "setProjectTimePaused":
|
case "setProjectTimePaused":
|
||||||
return "Set Project Time Paused";
|
return "Set Project Time Paused";
|
||||||
|
case "activateCameraRigOverride":
|
||||||
|
return "Activate Camera Rig Override";
|
||||||
|
case "clearCameraRigOverride":
|
||||||
|
return "Clear Camera Rig Override";
|
||||||
case "setActorPresence":
|
case "setActorPresence":
|
||||||
return "Set Actor Presence";
|
return "Set Actor Presence";
|
||||||
case "playActorAnimation":
|
case "playActorAnimation":
|
||||||
@@ -1938,6 +1966,8 @@ function formatTargetKindLabel(
|
|||||||
kind: ControlEntityTargetKind | ControlInteractionTargetKind
|
kind: ControlEntityTargetKind | ControlInteractionTargetKind
|
||||||
): string {
|
): string {
|
||||||
switch (kind) {
|
switch (kind) {
|
||||||
|
case "cameraRig":
|
||||||
|
return "Camera Rig";
|
||||||
case "pointLight":
|
case "pointLight":
|
||||||
return "Point Light";
|
return "Point Light";
|
||||||
case "spotLight":
|
case "spotLight":
|
||||||
@@ -1953,6 +1983,10 @@ export function formatControlEffectValue(effect: ControlEffect): string {
|
|||||||
switch (effect.type) {
|
switch (effect.type) {
|
||||||
case "setProjectTimePaused":
|
case "setProjectTimePaused":
|
||||||
return effect.paused ? "Paused" : "Running";
|
return effect.paused ? "Paused" : "Running";
|
||||||
|
case "activateCameraRigOverride":
|
||||||
|
return "Activate";
|
||||||
|
case "clearCameraRigOverride":
|
||||||
|
return "Return to Normal";
|
||||||
case "setActorPresence":
|
case "setActorPresence":
|
||||||
return effect.active ? "Present" : "Hidden";
|
return effect.active ? "Present" : "Hidden";
|
||||||
case "playActorAnimation":
|
case "playActorAnimation":
|
||||||
@@ -1997,6 +2031,7 @@ export function applyControlEffectToResolvedState(
|
|||||||
source: RuntimeResolvedControlSource
|
source: RuntimeResolvedControlSource
|
||||||
): RuntimeResolvedControlState {
|
): RuntimeResolvedControlState {
|
||||||
const nextResolved = cloneRuntimeResolvedControlState(resolved);
|
const nextResolved = cloneRuntimeResolvedControlState(resolved);
|
||||||
|
const globalTarget = createProjectGlobalControlTargetRef();
|
||||||
|
|
||||||
switch (effect.type) {
|
switch (effect.type) {
|
||||||
case "setProjectTimePaused":
|
case "setProjectTimePaused":
|
||||||
@@ -2009,6 +2044,26 @@ export function applyControlEffectToResolvedState(
|
|||||||
})
|
})
|
||||||
);
|
);
|
||||||
return nextResolved;
|
return nextResolved;
|
||||||
|
case "activateCameraRigOverride":
|
||||||
|
upsertResolvedDiscreteState(
|
||||||
|
nextResolved,
|
||||||
|
createResolvedCameraRigOverrideState({
|
||||||
|
target: globalTarget,
|
||||||
|
entityId: effect.target.entityId,
|
||||||
|
source
|
||||||
|
})
|
||||||
|
);
|
||||||
|
return nextResolved;
|
||||||
|
case "clearCameraRigOverride":
|
||||||
|
upsertResolvedDiscreteState(
|
||||||
|
nextResolved,
|
||||||
|
createResolvedCameraRigOverrideState({
|
||||||
|
target: globalTarget,
|
||||||
|
entityId: null,
|
||||||
|
source
|
||||||
|
})
|
||||||
|
);
|
||||||
|
return nextResolved;
|
||||||
case "setActorPresence":
|
case "setActorPresence":
|
||||||
upsertResolvedDiscreteState(
|
upsertResolvedDiscreteState(
|
||||||
nextResolved,
|
nextResolved,
|
||||||
|
|||||||
Reference in New Issue
Block a user