Include sceneEntry and sceneExit in focus calculations

This commit is contained in:
2026-04-11 04:34:38 +02:00
parent 88aebbe639
commit c83ccbb8c1

View File

@@ -308,6 +308,7 @@ function includeEntity(bounds: FocusBoundsAccumulator, entity: EntityInstance) {
includeSphereEntity(bounds, entity.position, Math.max(0.75, entity.distance));
break;
case "playerStart":
case "sceneEntry":
includePlayerStart(bounds, entity.position);
break;
case "soundEmitter":
@@ -320,6 +321,7 @@ function includeEntity(bounds: FocusBoundsAccumulator, entity: EntityInstance) {
includeTeleportTarget(bounds, entity.position);
break;
case "interactable":
case "sceneExit":
includeSphereEntity(bounds, entity.position, Math.max(0.4, entity.radius));
break;
}
@@ -332,6 +334,7 @@ function createEntityFocusTarget(entity: EntityInstance): ViewportFocusTarget {
case "spotLight":
return createSphereEntityFocusTarget(entity.position, Math.max(0.8, entity.distance), 0.9);
case "playerStart":
case "sceneEntry":
return createPlayerStartFocusTarget(entity.position);
case "soundEmitter":
return createSphereEntityFocusTarget(entity.position, entity.maxDistance, 0.75);
@@ -340,6 +343,7 @@ function createEntityFocusTarget(entity: EntityInstance): ViewportFocusTarget {
case "teleportTarget":
return createTeleportTargetFocusTarget(entity.position);
case "interactable":
case "sceneExit":
return createSphereEntityFocusTarget(entity.position, entity.radius, 0.65);
}
}