tengri/Source/TengriPlatformer/Domains/Movement/Config/TengriMovementConfig.ts

85 lines
3.6 KiB
TypeScript

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