85 lines
3.6 KiB
TypeScript
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;
|
|
}
|