// Source/TengriPlatformer/Movement/Core/TengriMovementConfig.ts import type { Float } from '/TypeScript/Engine/Float.ts'; import type { Integer } from '/TypeScript/Engine/Integer.ts'; import { PrimaryDataAsset } from '/TypeScript/Engine/PrimaryDataAsset.ts'; export class TengriMovementConfig extends PrimaryDataAsset { // ======================================================================== // PHYSICS // ======================================================================== public readonly MaxSpeed: Float = 800.0; public readonly Acceleration: Float = 2048.0; public readonly Friction: Float = 8.0; public readonly RotationSpeed: Float = 360.0; public readonly MinSpeedForRotation: Float = 10.0; // ======================================================================== // JUMP CONFIGURATION // ======================================================================== public readonly MaxJumpHeight: Float = 200.0; public readonly MinJumpHeight: Float = 40.0; public readonly TimeToJumpApex: Float = 0.5; // ======================================================================== // JUMP FEEL (TIMINGS) // ======================================================================== public readonly CoyoteTime: Float = 0.15; public readonly JumpBufferTime: Float = 0.15; // ======================================================================== // AIR PHYSICS // ======================================================================== public readonly AirControl: Float = 0.5; public readonly AirFriction: Float = 0.0; // ======================================================================== // AIR PHYSICS // ======================================================================== public readonly FallingGravityScale: Float = 1.5; public readonly TerminalVelocity: Float = 2000; public readonly HeavyLandVelocityThreshold: Float = -1000; // ======================================================================== // SURFACE ANGLES // ======================================================================== public readonly WalkableAngleDeg: Float = 50.0; public readonly SteepSlopeAngleDeg: Float = 85.0; public readonly WallAngleDeg: Float = 95.0; // ======================================================================== // COLLISION // ======================================================================== public readonly CapsuleRadius: Float = 34.0; public readonly CapsuleHalfHeight: Float = 88.0; public readonly MaxSlideIterations: Integer = 3; public readonly MaxStepHeight: Float = 45.0; // ======================================================================== // GROUND SNAPPING // ======================================================================== public readonly GroundSnapDistance: Float = 20.0; public readonly GroundSnapOffset: Float = 0.15; // ======================================================================== // SLOPE PHYSICS // ======================================================================== public readonly SteepSlopeSlideFactor: Float = 0.0; // ======================================================================== // FIXED TIMESTEP // ======================================================================== public readonly PhysicsTickRate: Float = 120.0; public readonly MaxAccumulatedTime: Float = 0.1; public readonly bEnableInterpolation: boolean = true; }