tengri/Source/TengriPlatformer/Domains/Camera/Config/TengriCameraConfig.ts

54 lines
3.7 KiB
TypeScript

// 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;
}