// Source/TengriPlatformer/Domains/Camera/Config/TengriCameraConfig.ts import { Rotator } from '/TypeScript/Engine/Rotator.ts'; import { Vector } from '/TypeScript/Engine/Vector.ts'; import type { Float } from '/TypeScript/Engine/Float.ts'; export enum ETengriCameraBehavior { FreeLook = 'Free Look (3D)', SideScroller = 'Side Scroller (2.5D with DeadZone)', } export class TengriCameraConfig { // ════════════════════════════════════════════════════════════════════ // BEHAVIOR // ════════════════════════════════════════════════════════════════════ public readonly BehaviorType: ETengriCameraBehavior = ETengriCameraBehavior.FreeLook; // ════════════════════════════════════════════════════════════════════ // TRANSFORM // ════════════════════════════════════════════════════════════════════ public readonly FixedRotation: Rotator = new Rotator(-15.0, -90.0, 0.0); public readonly TargetArmLength: Float = 1000.0; public readonly SocketOffset: Vector = new Vector(0.0, 0.0, 100.0); // ════════════════════════════════════════════════════════════════════ // SMOOTHING // ════════════════════════════════════════════════════════════════════ public readonly TransitionSpeed: Float = 2.0; // ════════════════════════════════════════════════════════════════════ // LAG // ════════════════════════════════════════════════════════════════════ public readonly bEnableLag: boolean = true; public readonly LagSpeed: Float = 5.0; // ════════════════════════════════════════════════════════════════════ // DEAD ZONE // ════════════════════════════════════════════════════════════════════ public readonly DeadZoneExtent: Vector = new Vector(200.0, 0.0, 150.0); public readonly DeadZoneOffset: Vector = new Vector(0.0, 0.0, 50.0); // ════════════════════════════════════════════════════════════════════ // DEBUG // ════════════════════════════════════════════════════════════════════ public readonly bDrawDebugBox: boolean = false; }