tengri/Source/TengriPlatformer/Domains/Character/TengriCharacter.ts

74 lines
3.2 KiB
TypeScript

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