// Source/TengriPlatformer/Character/TengriCharacter.ts import { Pawn } from '/TypeScript/Engine/Pawn.ts'; import type { TengriCameraConfig } from '/Source/TengriPlatformer/Domains/Camera/Config/TengriCameraConfig.ts'; import { CapsuleComponent } from '/TypeScript/Engine/CapsuleComponent.ts'; import { SkeletalMesh } from '/TypeScript/Engine/SkeletalMesh.ts'; import { ArrowComponent } from '/TypeScript/Engine/ArrowComponent.ts'; import { TengriMovementComponent } from '/Source/TengriPlatformer/Domains/Movement/TengriMovementComponent.ts'; import { SpringArmComponent } from '/TypeScript/Engine/SpringArmComponent.ts'; import { CameraComponent } from '/TypeScript/Engine/CameraComponent.ts'; import { TengriCameraComponent } from '/Source/TengriPlatformer/Domains/Camera/TengriCameraComponent.ts'; import { InputAction } from '/TypeScript/Engine/InputAction.ts'; import { InputMappingContext } from '/TypeScript/Engine/InputMappingContext.ts'; export class TengriCharacter extends Pawn { constructor(AimingCameraConfig: TengriCameraConfig) { super(); this.CapsuleComponent = new CapsuleComponent(); this.Mesh = new SkeletalMesh(); this.ArrowComponent = new ArrowComponent(); this.MovementComponent = new TengriMovementComponent(); this.SpringArmComponent = new SpringArmComponent(); this.CameraComponent = new CameraComponent(); this.CameraManager = new TengriCameraComponent(); this.AimingCameraConfig = AimingCameraConfig; this.InteractAction = new InputAction(); this.ThrowAction = new InputAction(); this.AimAction = new InputAction(); this.ItemHeldMappingContext = new InputMappingContext(); } // ======================================================================== // COMPONENTS // ======================================================================== public CapsuleComponent: CapsuleComponent; public Mesh: SkeletalMesh; public ArrowComponent: ArrowComponent; public MovementComponent: TengriMovementComponent; public SpringArmComponent: SpringArmComponent; public CameraComponent: CameraComponent; public CameraManager: TengriCameraComponent; // ======================================================================== // CAMERA CONFIGS // ======================================================================== public AimingCameraConfig: TengriCameraConfig; // ======================================================================== // INPUT CONFIG // ======================================================================== public InteractAction: InputAction; public ThrowAction: InputAction; public AimAction: InputAction; public ItemHeldMappingContext: InputMappingContext; // ======================================================================== // INTERACTION API // ======================================================================== public Interact(): void {} public OnItemHeldInput(): void {} // ======================================================================== // INTERACTION STATE // ======================================================================== public bIsAiming: boolean = false; }