refactor file structure
parent
fb4a03e717
commit
8dea0b05bd
|
|
@ -13,6 +13,7 @@
|
||||||
!/Config/**
|
!/Config/**
|
||||||
!/Plugins/**
|
!/Plugins/**
|
||||||
!/Documentation/**
|
!/Documentation/**
|
||||||
|
!/TypeScript/**
|
||||||
!/.eslintignore
|
!/.eslintignore
|
||||||
!/.eslintrc.js
|
!/.eslintrc.js
|
||||||
!/.prettierignore
|
!/.prettierignore
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
[/Script/EngineSettings.GameMapsSettings]
|
[/Script/EngineSettings.GameMapsSettings]
|
||||||
GameDefaultMap=/Engine/Maps/Templates/OpenWorld
|
GameDefaultMap=/Engine/Maps/Templates/OpenWorld
|
||||||
GlobalDefaultGameMode=/Game/Blueprints/BP_TengriGameMode.BP_TengriGameMode_C
|
GlobalDefaultGameMode=/Game/_Core/Framework/BP_TengriGameMode.BP_TengriGameMode_C
|
||||||
|
|
||||||
[/Script/Engine.RendererSettings]
|
[/Script/Engine.RendererSettings]
|
||||||
r.AllowStaticLighting=False
|
r.AllowStaticLighting=False
|
||||||
|
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
// Content/BasicShapes/CustomDefaultSkeletalMesh.ts
|
|
||||||
|
|
||||||
import { SkeletalMesh } from '/Content/UE/SkeletalMesh.ts';
|
|
||||||
|
|
||||||
export class CustomDefaultSkeletalMesh extends SkeletalMesh {}
|
|
||||||
BIN
Content/BasicShapes/CustomDefaultSkeletalMesh.uasset (Stored with Git LFS)
BIN
Content/BasicShapes/CustomDefaultSkeletalMesh.uasset (Stored with Git LFS)
Binary file not shown.
|
|
@ -1,234 +0,0 @@
|
||||||
// Content/Blueprints/BP_MainCharacter.ts
|
|
||||||
|
|
||||||
import { AC_DebugHUD } from '/Content/Debug/Components/AC_DebugHUD.ts';
|
|
||||||
import { AC_InputDevice } from '/Content/Input/Components/AC_InputDevice.ts';
|
|
||||||
import { IMC_Default } from '/Content/Input/IMC_Default.ts';
|
|
||||||
import { AC_ToastSystem } from '/Content/Toasts/Components/AC_ToastSystem.ts';
|
|
||||||
import { Cast } from '/Content/UE/Cast.ts';
|
|
||||||
import type { Controller } from '/Content/UE/Controller.ts';
|
|
||||||
import { EnhancedInputLocalPlayerSubsystem } from '/Content/UE/EnhancedInputLocalPlayerSubsystem.ts';
|
|
||||||
import type { Float } from '/Content/UE/Float.ts';
|
|
||||||
import { MathLibrary } from '/Content/UE/MathLibrary.ts';
|
|
||||||
import type { PlayerController } from '/Content/UE/PlayerController.ts';
|
|
||||||
import { SystemLibrary } from '/Content/UE/SystemLibrary.ts';
|
|
||||||
import { Vector } from '/Content/UE/Vector.ts';
|
|
||||||
import { TengriCharacter } from '/Source/TengriPlatformer/Character/TengriCharacter.ts';
|
|
||||||
import { IA_Interact } from '/Content/Input/Actions/IA_Inreract.ts';
|
|
||||||
import { IA_Throw } from '/Content/Input/Actions/IA_Throw.ts';
|
|
||||||
import { IA_Aim } from '/Content/Input/Actions/IA_Aim.ts';
|
|
||||||
import { IMC_ItemHeld } from '/Content/Input/IMC_ItemHeld.ts';
|
|
||||||
import { CreateWidget } from '/Content/UE/CteateWidget.ts';
|
|
||||||
import { WBP_HUD } from '/Content/UI/WBP_HUD.ts';
|
|
||||||
import { CustomDefaultSkeletalMesh } from '/Content/BasicShapes/CustomDefaultSkeletalMesh.ts';
|
|
||||||
import { ETengriCameraBehavior } from '/Source/TengriPlatformer/Camera/Core/TengriCameraConfig.ts';
|
|
||||||
import { DA_CameraAiming } from '/Content/Camera/DA_CameraAiming.ts';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Main Character Blueprint
|
|
||||||
* Core player character with deterministic movement system
|
|
||||||
* Integrates debug HUD and toast notification systems
|
|
||||||
*/
|
|
||||||
export class BP_MainCharacter extends TengriCharacter {
|
|
||||||
// ════════════════════════════════════════════════════════════════════════════════════════
|
|
||||||
// GRAPHS
|
|
||||||
// ════════════════════════════════════════════════════════════════════════════════════════
|
|
||||||
|
|
||||||
// ────────────────────────────────────────────────────────────────────────────────────────
|
|
||||||
// EventGraph
|
|
||||||
// ────────────────────────────────────────────────────────────────────────────────────────
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Handle controller change events - sets up Enhanced Input mapping context
|
|
||||||
*/
|
|
||||||
EventReceiveControllerChanged(NewController: Controller): void {
|
|
||||||
const controller = Cast<PlayerController>(NewController);
|
|
||||||
const system = new EnhancedInputLocalPlayerSubsystem();
|
|
||||||
|
|
||||||
if (controller) {
|
|
||||||
system.AddMappingContext(IMC_Default);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Navigate to previous debug page */
|
|
||||||
EnhancedInputActionPrevDebugMode(): void {
|
|
||||||
if (this.ShowDebugInfo) {
|
|
||||||
this.DebugHUDComponent.PreviousPage();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Navigate to next debug page */
|
|
||||||
EnhancedInputActionINextDebugMode(): void {
|
|
||||||
if (this.ShowDebugInfo) {
|
|
||||||
this.DebugHUDComponent.NextPage();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Toggle debug HUD visibility */
|
|
||||||
EnhancedInputActionToggleHUD(): void {
|
|
||||||
if (this.ShowDebugInfo) {
|
|
||||||
this.DebugHUDComponent.ToggleDebugHUD();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Toggle visual debug rendering */
|
|
||||||
EnhancedInputActionToggleVisualDebug(): void {
|
|
||||||
if (this.ShowDebugInfo) {
|
|
||||||
this.DebugHUDComponent.ToggleVisualDebug();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Process look input for camera rotation
|
|
||||||
* @param actionValueX - Horizontal look input value
|
|
||||||
* @param actionValueY - Vertical look input value
|
|
||||||
*/
|
|
||||||
EnhancedInputActionLookTriggered(
|
|
||||||
actionValueX: Float,
|
|
||||||
actionValueY: Float
|
|
||||||
): void {
|
|
||||||
if (
|
|
||||||
this.CameraManager.CurrentConfig.BehaviorType ===
|
|
||||||
ETengriCameraBehavior.FreeLook
|
|
||||||
) {
|
|
||||||
this.AddControllerYawInput(actionValueX);
|
|
||||||
this.AddControllerPitchInput(actionValueY);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Process movement input for ground-based movement
|
|
||||||
* @param ActionValueX - Horizontal movement input value (-1 to 1)
|
|
||||||
* @param ActionValueY - Vertical movement input value (-1 to 1)
|
|
||||||
*/
|
|
||||||
EnhancedInputActionMoveTriggered(
|
|
||||||
ActionValueX: Float,
|
|
||||||
ActionValueY: Float
|
|
||||||
): void {
|
|
||||||
const CalculateResultMovementInputVector = (
|
|
||||||
rightVector: Vector,
|
|
||||||
forwardVector: Vector,
|
|
||||||
actionValueX: Float,
|
|
||||||
actionValueY: Float
|
|
||||||
): Vector => {
|
|
||||||
const vec1 = new Vector(
|
|
||||||
rightVector.X * actionValueX,
|
|
||||||
rightVector.Y * actionValueX,
|
|
||||||
0
|
|
||||||
);
|
|
||||||
const vec2 = new Vector(
|
|
||||||
forwardVector.X * actionValueY,
|
|
||||||
forwardVector.Y * actionValueY,
|
|
||||||
0
|
|
||||||
);
|
|
||||||
|
|
||||||
return new Vector(vec1.X + vec2.X, vec1.Y + vec2.Y, 0);
|
|
||||||
};
|
|
||||||
|
|
||||||
this.MovementComponent.SetInputVector(
|
|
||||||
CalculateResultMovementInputVector(
|
|
||||||
MathLibrary.GetRightVector(
|
|
||||||
this.GetControlRotation().roll,
|
|
||||||
0,
|
|
||||||
this.GetControlRotation().yaw
|
|
||||||
),
|
|
||||||
MathLibrary.GetForwardVector(0, 0, this.GetControlRotation().yaw),
|
|
||||||
ActionValueX,
|
|
||||||
ActionValueY
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reset movement input when move action is completed
|
|
||||||
*/
|
|
||||||
EnhancedInputActionMoveCompleted(): void {
|
|
||||||
this.MovementComponent.SetInputVector(new Vector(0, 0, 0));
|
|
||||||
}
|
|
||||||
|
|
||||||
EnhancedInputActionJumpTriggered(): void {
|
|
||||||
this.MovementComponent.SetJumpInput(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
EnhancedInputActionJumpCompleted(): void {
|
|
||||||
this.MovementComponent.SetJumpInput(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Initialize all systems when character spawns
|
|
||||||
* Order: Toast → Debug → Movement (movement last as it may generate debug output)
|
|
||||||
*/
|
|
||||||
EventBeginPlay(): void {
|
|
||||||
if (this.ShowDebugInfo) {
|
|
||||||
this.ToastSystemComponent.InitializeToastSystem();
|
|
||||||
}
|
|
||||||
|
|
||||||
this.InputDeviceComponent.InitializeDeviceDetection(
|
|
||||||
this.ToastSystemComponent,
|
|
||||||
this.DebugHUDComponent
|
|
||||||
);
|
|
||||||
|
|
||||||
if (this.ShowDebugInfo) {
|
|
||||||
this.DebugHUDComponent.InitializeDebugHUD(
|
|
||||||
this.ToastSystemComponent,
|
|
||||||
this.InputDeviceComponent
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
CreateWidget(WBP_HUD).AddToViewport();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Update all systems each frame
|
|
||||||
* Called by Unreal Engine game loop
|
|
||||||
*/
|
|
||||||
EventTick(): void {
|
|
||||||
if (this.ShowDebugInfo) {
|
|
||||||
this.DebugHUDComponent.UpdateHUD(SystemLibrary.GetGameTimeInSeconds());
|
|
||||||
this.ToastSystemComponent.UpdateToastSystem();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this.ShowDebugInfo) {
|
|
||||||
this.InputDeviceComponent.UpdateDebugPage();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ════════════════════════════════════════════════════════════════════════════════════════
|
|
||||||
// VARIABLES
|
|
||||||
// ════════════════════════════════════════════════════════════════════════════════════════
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Input device detection component - manages input device state and detection
|
|
||||||
* @category Components
|
|
||||||
*/
|
|
||||||
InputDeviceComponent = new AC_InputDevice();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Toast notification system - displays temporary status messages
|
|
||||||
* @category Components
|
|
||||||
*/
|
|
||||||
ToastSystemComponent = new AC_ToastSystem();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Debug HUD system - displays movement parameters and performance metrics
|
|
||||||
* @category Components
|
|
||||||
*/
|
|
||||||
DebugHUDComponent = new AC_DebugHUD();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Master debug toggle - controls all debug systems (HUD, toasts, visual debug)
|
|
||||||
* @category Debug
|
|
||||||
* @instanceEditable true
|
|
||||||
*/
|
|
||||||
private ShowDebugInfo: boolean = true;
|
|
||||||
|
|
||||||
constructor() {
|
|
||||||
super(new DA_CameraAiming());
|
|
||||||
|
|
||||||
this.InteractAction = IA_Interact;
|
|
||||||
this.ThrowAction = IA_Throw;
|
|
||||||
this.AimAction = IA_Aim;
|
|
||||||
this.ItemHeldMappingContext = IMC_ItemHeld;
|
|
||||||
|
|
||||||
this.Mesh = new CustomDefaultSkeletalMesh();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
BIN
Content/Blueprints/BP_MainCharacter.uasset (Stored with Git LFS)
BIN
Content/Blueprints/BP_MainCharacter.uasset (Stored with Git LFS)
Binary file not shown.
BIN
Content/Blueprints/BP_Rock.uasset (Stored with Git LFS)
BIN
Content/Blueprints/BP_Rock.uasset (Stored with Git LFS)
Binary file not shown.
|
|
@ -1,8 +0,0 @@
|
||||||
// Blueprints/BP_TengriGameMode.ts
|
|
||||||
|
|
||||||
import { BP_MainCharacter } from '/Content/Blueprints/BP_MainCharacter.ts';
|
|
||||||
import { GameModeBase } from '/Content/UE/GameModeBase.ts';
|
|
||||||
|
|
||||||
export class BP_TengriGameMode extends GameModeBase {
|
|
||||||
DefaultPawnClass = BP_MainCharacter;
|
|
||||||
}
|
|
||||||
BIN
Content/Blueprints/BP_TengriGameMode.uasset (Stored with Git LFS)
BIN
Content/Blueprints/BP_TengriGameMode.uasset (Stored with Git LFS)
Binary file not shown.
BIN
Content/Camera/BP_CameraZone.uasset (Stored with Git LFS)
BIN
Content/Camera/BP_CameraZone.uasset (Stored with Git LFS)
Binary file not shown.
BIN
Content/Camera/DA_CameraAiming.uasset (Stored with Git LFS)
BIN
Content/Camera/DA_CameraAiming.uasset (Stored with Git LFS)
Binary file not shown.
BIN
Content/Camera/DA_CameraDefault.uasset (Stored with Git LFS)
BIN
Content/Camera/DA_CameraDefault.uasset (Stored with Git LFS)
Binary file not shown.
BIN
Content/Camera/DA_CameraSideScroller.uasset (Stored with Git LFS)
BIN
Content/Camera/DA_CameraSideScroller.uasset (Stored with Git LFS)
Binary file not shown.
BIN
Content/Debug/Components/AC_DebugHUD.uasset (Stored with Git LFS)
BIN
Content/Debug/Components/AC_DebugHUD.uasset (Stored with Git LFS)
Binary file not shown.
|
|
@ -1,13 +0,0 @@
|
||||||
// Content/Debug/Structs/S_DebugPage.ts
|
|
||||||
|
|
||||||
import type { Float } from '/Content/UE/Float.ts';
|
|
||||||
import type { Text } from '/Content/UE/Text.ts';
|
|
||||||
|
|
||||||
export interface S_DebugPage {
|
|
||||||
PageID: string;
|
|
||||||
Title: Text;
|
|
||||||
Content: Text;
|
|
||||||
RefreshRate: Float;
|
|
||||||
IsVisible: boolean;
|
|
||||||
LastUpdateTime: Float;
|
|
||||||
}
|
|
||||||
BIN
Content/Debug/Structs/S_DebugPage.uasset (Stored with Git LFS)
BIN
Content/Debug/Structs/S_DebugPage.uasset (Stored with Git LFS)
Binary file not shown.
BIN
Content/Debug/UI/WBP_DebugHUD.uasset (Stored with Git LFS)
BIN
Content/Debug/UI/WBP_DebugHUD.uasset (Stored with Git LFS)
Binary file not shown.
|
|
@ -1,8 +1,8 @@
|
||||||
// Content/Camera/BP_CameraZone.ts
|
// Content/Domains/Camera/BP_CameraZone.ts
|
||||||
|
|
||||||
import { Actor } from '/Content/UE/Actor.ts';
|
import { Actor } from '/TypeScript/Engine/Actor.ts';
|
||||||
import type { TengriCharacter } from '/Source/TengriPlatformer/Character/TengriCharacter.ts';
|
import type { TengriCameraConfig } from '/Source/TengriPlatformer/Domains/Camera/Config/TengriCameraConfig.ts';
|
||||||
import type { TengriCameraConfig } from '/Source/TengriPlatformer/Camera/Core/TengriCameraConfig.ts';
|
import type { TengriCharacter } from '/Source/TengriPlatformer/Domains/Character/TengriCharacter.ts';
|
||||||
|
|
||||||
export class BP_CameraZone extends Actor {
|
export class BP_CameraZone extends Actor {
|
||||||
constructor(ZoneConfig: TengriCameraConfig) {
|
constructor(ZoneConfig: TengriCameraConfig) {
|
||||||
Binary file not shown.
|
|
@ -1,9 +1,11 @@
|
||||||
|
// Content/Domains/Camera/Configs/DA_CameraAiming.ts
|
||||||
|
|
||||||
import {
|
import {
|
||||||
ETengriCameraBehavior,
|
ETengriCameraBehavior,
|
||||||
TengriCameraConfig,
|
TengriCameraConfig,
|
||||||
} from '/Source/TengriPlatformer/Camera/Core/TengriCameraConfig.ts';
|
} from '/Source/TengriPlatformer/Domains/Camera/Config/TengriCameraConfig.ts';
|
||||||
import { Vector } from '/Content/UE/Vector.ts';
|
import { Vector } from '/TypeScript/Engine/Vector.ts';
|
||||||
import { Rotator } from '/Content/UE/Rotator.ts';
|
import { Rotator } from '/TypeScript/Engine/Rotator.ts';
|
||||||
|
|
||||||
export class DA_CameraAiming extends TengriCameraConfig {
|
export class DA_CameraAiming extends TengriCameraConfig {
|
||||||
override BehaviorType = ETengriCameraBehavior.FreeLook;
|
override BehaviorType = ETengriCameraBehavior.FreeLook;
|
||||||
Binary file not shown.
|
|
@ -1,9 +1,11 @@
|
||||||
|
// Content/Domains/Camera/Configs/DA_CameraDefault.ts
|
||||||
|
|
||||||
import {
|
import {
|
||||||
ETengriCameraBehavior,
|
ETengriCameraBehavior,
|
||||||
TengriCameraConfig,
|
TengriCameraConfig,
|
||||||
} from '/Source/TengriPlatformer/Camera/Core/TengriCameraConfig.ts';
|
} from '/Source/TengriPlatformer/Domains/Camera/Config/TengriCameraConfig.ts';
|
||||||
import { Vector } from '/Content/UE/Vector.ts';
|
import { Vector } from '/TypeScript/Engine/Vector.ts';
|
||||||
import { Rotator } from '/Content/UE/Rotator.ts';
|
import { Rotator } from '/TypeScript/Engine/Rotator.ts';
|
||||||
|
|
||||||
export class DA_CameraDefault extends TengriCameraConfig {
|
export class DA_CameraDefault extends TengriCameraConfig {
|
||||||
override BehaviorType = ETengriCameraBehavior.FreeLook;
|
override BehaviorType = ETengriCameraBehavior.FreeLook;
|
||||||
Binary file not shown.
|
|
@ -1,11 +1,13 @@
|
||||||
|
// Content/Domains/Camera/Configs/DA_CameraSideScroller.ts
|
||||||
|
|
||||||
import {
|
import {
|
||||||
ETengriCameraBehavior,
|
ETengriCameraBehavior,
|
||||||
TengriCameraConfig,
|
TengriCameraConfig,
|
||||||
} from '/Source/TengriPlatformer/Camera/Core/TengriCameraConfig.ts';
|
} from '/Source/TengriPlatformer/Domains/Camera/Config/TengriCameraConfig.ts';
|
||||||
import { Vector } from '/Content/UE/Vector.ts';
|
import { Vector } from '/TypeScript/Engine/Vector.ts';
|
||||||
import { Rotator } from '/Content/UE/Rotator.ts';
|
import { Rotator } from '/TypeScript/Engine/Rotator.ts';
|
||||||
|
|
||||||
export class DA_CameraScroller extends TengriCameraConfig {
|
export class DA_CameraSideScroller extends TengriCameraConfig {
|
||||||
override BehaviorType = ETengriCameraBehavior.FreeLook;
|
override BehaviorType = ETengriCameraBehavior.FreeLook;
|
||||||
|
|
||||||
override FixedRotation = new Rotator(0, 0, 0);
|
override FixedRotation = new Rotator(0, 0, 0);
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,5 @@
|
||||||
|
// Content/Domains/Character/Assets/CustomDefaultSkeletalMesh.ts
|
||||||
|
|
||||||
|
import { SkeletalMesh } from '/TypeScript/Engine/SkeletalMesh.ts';
|
||||||
|
|
||||||
|
export class CustomDefaultSkeletalMesh extends SkeletalMesh {}
|
||||||
BIN
Content/Domains/Character/Assets/CustomDefaultSkeletalMesh.uasset (Stored with Git LFS)
Normal file
BIN
Content/Domains/Character/Assets/CustomDefaultSkeletalMesh.uasset (Stored with Git LFS)
Normal file
Binary file not shown.
|
|
@ -0,0 +1,142 @@
|
||||||
|
// Content/Domains/Character/BP_MainCharacter.ts
|
||||||
|
|
||||||
|
import { IMC_CharacterDefault } from '/Content/Domains/Character/Input/IMC_CharacterDefault.ts';
|
||||||
|
import { Cast } from '/TypeScript/Engine/Cast.ts';
|
||||||
|
import type { Controller } from '/TypeScript/Engine/Controller.ts';
|
||||||
|
import { EnhancedInputLocalPlayerSubsystem } from '/TypeScript/Engine/EnhancedInputLocalPlayerSubsystem.ts';
|
||||||
|
import type { Float } from '/TypeScript/Engine/Float.ts';
|
||||||
|
import { MathLibrary } from '/TypeScript/Engine/MathLibrary.ts';
|
||||||
|
import type { PlayerController } from '/TypeScript/Engine/PlayerController.ts';
|
||||||
|
import { Vector } from '/TypeScript/Engine/Vector.ts';
|
||||||
|
import { TengriCharacter } from '/Source/TengriPlatformer/Domains/Character/TengriCharacter.ts';
|
||||||
|
import { IA_Interact } from '/Content/Domains/Character/Input/Actions/IA_Interact.ts';
|
||||||
|
import { IA_Throw } from '/Content/Domains/Character/Input/Actions/IA_Throw.ts';
|
||||||
|
import { IA_Aim } from '/Content/Domains/Character/Input/Actions/IA_Aim.ts';
|
||||||
|
import { IMC_CharacterItemHeld } from '/Content/Domains/Character/Input/IMC_CharacterItemHeld.ts';
|
||||||
|
import { CreateWidget } from '/TypeScript/Engine/CteateWidget.ts';
|
||||||
|
import { WBP_Crosshair } from '/Content/Domains/Character/UI/WBP_Crosshair.ts';
|
||||||
|
import { CustomDefaultSkeletalMesh } from '/Content/Domains/Character/Assets/CustomDefaultSkeletalMesh.ts';
|
||||||
|
import { ETengriCameraBehavior } from '/Source/TengriPlatformer/Domains/Camera/Config/TengriCameraConfig.ts';
|
||||||
|
import { DA_CameraAiming } from '/Content/Domains/Camera/Configs/DA_CameraAiming.ts';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Main Character Blueprint
|
||||||
|
* Core player character with deterministic movement system
|
||||||
|
* Integrates debug HUD and toast notification systems
|
||||||
|
*/
|
||||||
|
export class BP_MainCharacter extends TengriCharacter {
|
||||||
|
// ════════════════════════════════════════════════════════════════════════════════════════
|
||||||
|
// GRAPHS
|
||||||
|
// ════════════════════════════════════════════════════════════════════════════════════════
|
||||||
|
|
||||||
|
// ────────────────────────────────────────────────────────────────────────────────────────
|
||||||
|
// EventGraph
|
||||||
|
// ────────────────────────────────────────────────────────────────────────────────────────
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle controller change events - sets up Enhanced Input mapping context
|
||||||
|
*/
|
||||||
|
EventReceiveControllerChanged(NewController: Controller): void {
|
||||||
|
const controller = Cast<PlayerController>(NewController);
|
||||||
|
const system = new EnhancedInputLocalPlayerSubsystem();
|
||||||
|
|
||||||
|
if (controller) {
|
||||||
|
system.AddMappingContext(IMC_CharacterDefault);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Process look input for camera rotation
|
||||||
|
* @param actionValueX - Horizontal look input value
|
||||||
|
* @param actionValueY - Vertical look input value
|
||||||
|
*/
|
||||||
|
EnhancedInputActionLookTriggered(
|
||||||
|
actionValueX: Float,
|
||||||
|
actionValueY: Float
|
||||||
|
): void {
|
||||||
|
if (
|
||||||
|
this.CameraManager.CurrentConfig.BehaviorType ===
|
||||||
|
ETengriCameraBehavior.FreeLook
|
||||||
|
) {
|
||||||
|
this.AddControllerYawInput(actionValueX);
|
||||||
|
this.AddControllerPitchInput(actionValueY);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Process movement input for ground-based movement
|
||||||
|
* @param ActionValueX - Horizontal movement input value (-1 to 1)
|
||||||
|
* @param ActionValueY - Vertical movement input value (-1 to 1)
|
||||||
|
*/
|
||||||
|
EnhancedInputActionMoveTriggered(
|
||||||
|
ActionValueX: Float,
|
||||||
|
ActionValueY: Float
|
||||||
|
): void {
|
||||||
|
const CalculateResultMovementInputVector = (
|
||||||
|
rightVector: Vector,
|
||||||
|
forwardVector: Vector,
|
||||||
|
actionValueX: Float,
|
||||||
|
actionValueY: Float
|
||||||
|
): Vector => {
|
||||||
|
const vec1 = new Vector(
|
||||||
|
rightVector.X * actionValueX,
|
||||||
|
rightVector.Y * actionValueX,
|
||||||
|
0
|
||||||
|
);
|
||||||
|
const vec2 = new Vector(
|
||||||
|
forwardVector.X * actionValueY,
|
||||||
|
forwardVector.Y * actionValueY,
|
||||||
|
0
|
||||||
|
);
|
||||||
|
|
||||||
|
return new Vector(vec1.X + vec2.X, vec1.Y + vec2.Y, 0);
|
||||||
|
};
|
||||||
|
|
||||||
|
this.MovementComponent.SetInputVector(
|
||||||
|
CalculateResultMovementInputVector(
|
||||||
|
MathLibrary.GetRightVector(
|
||||||
|
this.GetControlRotation().roll,
|
||||||
|
0,
|
||||||
|
this.GetControlRotation().yaw
|
||||||
|
),
|
||||||
|
MathLibrary.GetForwardVector(0, 0, this.GetControlRotation().yaw),
|
||||||
|
ActionValueX,
|
||||||
|
ActionValueY
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reset movement input when move action is completed
|
||||||
|
*/
|
||||||
|
EnhancedInputActionMoveCompleted(): void {
|
||||||
|
this.MovementComponent.SetInputVector(new Vector(0, 0, 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
EnhancedInputActionJumpTriggered(): void {
|
||||||
|
this.MovementComponent.SetJumpInput(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
EnhancedInputActionJumpCompleted(): void {
|
||||||
|
this.MovementComponent.SetJumpInput(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initialize all systems when character spawns
|
||||||
|
* Order: Toast → Debug → Movement (movement last as it may generate debug output)
|
||||||
|
*/
|
||||||
|
EventBeginPlay(): void {
|
||||||
|
CreateWidget(WBP_Crosshair).AddToViewport();
|
||||||
|
}
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
super(new DA_CameraAiming());
|
||||||
|
|
||||||
|
this.InteractAction = IA_Interact;
|
||||||
|
this.ThrowAction = IA_Throw;
|
||||||
|
this.AimAction = IA_Aim;
|
||||||
|
this.ItemHeldMappingContext = IMC_CharacterItemHeld;
|
||||||
|
|
||||||
|
this.Mesh = new CustomDefaultSkeletalMesh();
|
||||||
|
}
|
||||||
|
}
|
||||||
Binary file not shown.
|
|
@ -1,6 +1,6 @@
|
||||||
// Content/Movement/Core/DA_TengriMovementConfig.ts
|
// Content/Domains/Character/Configs/DA_TengriMovementConfig.ts
|
||||||
|
|
||||||
import { TengriMovementConfig } from '/Source/TengriPlatformer/Movement/Core/TengriMovementConfig.ts';
|
import { TengriMovementConfig } from '/Source/TengriPlatformer/Domains/Movement/Config/TengriMovementConfig.ts';
|
||||||
|
|
||||||
export class DA_TengriMovementConfig extends TengriMovementConfig {
|
export class DA_TengriMovementConfig extends TengriMovementConfig {
|
||||||
override MaxSpeed = 800.0;
|
override MaxSpeed = 800.0;
|
||||||
BIN
Content/Domains/Character/Configs/DA_TengriMovementConfig.uasset (Stored with Git LFS)
Normal file
BIN
Content/Domains/Character/Configs/DA_TengriMovementConfig.uasset (Stored with Git LFS)
Normal file
Binary file not shown.
|
|
@ -0,0 +1,6 @@
|
||||||
|
// Content/Domains/Character/Input/Actions/IA_Aim.ts
|
||||||
|
|
||||||
|
import { InputAction } from '/TypeScript/Engine/InputAction.ts';
|
||||||
|
import { Name } from '/TypeScript/Engine/Name.ts';
|
||||||
|
|
||||||
|
export const IA_Aim = new InputAction(null, new Name('IA_Aim'));
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,6 @@
|
||||||
|
// Content/Domains/Character/Input/Actions/IA_Interact.ts
|
||||||
|
|
||||||
|
import { InputAction } from '/TypeScript/Engine/InputAction.ts';
|
||||||
|
import { Name } from '/TypeScript/Engine/Name.ts';
|
||||||
|
|
||||||
|
export const IA_Interact = new InputAction(null, new Name('IA_Interact'));
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,6 @@
|
||||||
|
// Content/Domains/Character/Input/Actions/IA_Jump.ts
|
||||||
|
|
||||||
|
import { InputAction } from '/TypeScript/Engine/InputAction.ts';
|
||||||
|
import { Name } from '/TypeScript/Engine/Name.ts';
|
||||||
|
|
||||||
|
export const IA_Jump = new InputAction(null, new Name('IA_Jump'));
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,6 @@
|
||||||
|
// Content/Domains/Character/Input/Actions/IA_Look.ts
|
||||||
|
|
||||||
|
import { InputAction } from '/TypeScript/Engine/InputAction.ts';
|
||||||
|
import { Name } from '/TypeScript/Engine/Name.ts';
|
||||||
|
|
||||||
|
export const IA_Look = new InputAction(null, new Name('IA_Look'));
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,6 @@
|
||||||
|
// Content/Domains/Character/Input/Actions/IA_Move.ts
|
||||||
|
|
||||||
|
import { InputAction } from '/TypeScript/Engine/InputAction.ts';
|
||||||
|
import { Name } from '/TypeScript/Engine/Name.ts';
|
||||||
|
|
||||||
|
export const IA_Move = new InputAction(null, new Name('IA_Move'));
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,6 @@
|
||||||
|
// Content/Domains/Character/Input/Actions/IA_Aim
|
||||||
|
|
||||||
|
import { InputAction } from '/TypeScript/Engine/InputAction.ts';
|
||||||
|
import { Name } from '/TypeScript/Engine/Name.ts';
|
||||||
|
|
||||||
|
export const IA_Throw = new InputAction(null, new Name('IA_Aim'));
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,15 @@
|
||||||
|
// Content/Domains/Character/Input/IMC_CharacterDefault.ts
|
||||||
|
|
||||||
|
import { IA_Look } from '/Content/Domains/Character/Input/Actions/IA_Look.ts';
|
||||||
|
import { IA_Move } from '/Content/Domains/Character/Input/Actions/IA_Move.ts';
|
||||||
|
import { InputMappingContext } from '/TypeScript/Engine/InputMappingContext.ts';
|
||||||
|
import { Key } from '/TypeScript/Engine/Key.ts';
|
||||||
|
import { IA_Jump } from '/Content/Domains/Character/Input/Actions/IA_Jump.ts';
|
||||||
|
import { IA_Interact } from '/Content/Domains/Character/Input/Actions/IA_Interact.ts';
|
||||||
|
|
||||||
|
export const IMC_CharacterDefault = new InputMappingContext();
|
||||||
|
|
||||||
|
IMC_CharacterDefault.mapKey(IA_Look, new Key('IA_Look'));
|
||||||
|
IMC_CharacterDefault.mapKey(IA_Move, new Key('IA_Move'));
|
||||||
|
IMC_CharacterDefault.mapKey(IA_Jump, new Key('IA_Jump'));
|
||||||
|
IMC_CharacterDefault.mapKey(IA_Interact, new Key('IA_Interact'));
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,11 @@
|
||||||
|
// Content/Domains/Character/Input/IMC_CharacterItemHeld.ts
|
||||||
|
|
||||||
|
import { InputMappingContext } from '/TypeScript/Engine/InputMappingContext.ts';
|
||||||
|
import { Key } from '/TypeScript/Engine/Key.ts';
|
||||||
|
import { IA_Aim } from '/Content/Domains/Character/Input/Actions/IA_Aim.ts';
|
||||||
|
import { IA_Throw } from '/Content/Domains/Character/Input/Actions/IA_Throw.ts';
|
||||||
|
|
||||||
|
export const IMC_CharacterItemHeld = new InputMappingContext();
|
||||||
|
|
||||||
|
IMC_CharacterItemHeld.mapKey(IA_Aim, new Key('IA_Aim'));
|
||||||
|
IMC_CharacterItemHeld.mapKey(IA_Throw, new Key('IA_Throw'));
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,5 @@
|
||||||
|
// Content/Domains/Character/UI/WBP_Crosshair.ts
|
||||||
|
|
||||||
|
import { UserWidget } from '/TypeScript/Engine/UserWidget.ts';
|
||||||
|
|
||||||
|
export class WBP_Crosshair extends UserWidget {}
|
||||||
Binary file not shown.
|
|
@ -1,16 +1,16 @@
|
||||||
// Content/Toasts/Components/AC_ToastSystem.ts
|
// Content/Domains/UI/Systems/Toasts/AC_ToastSystem.ts
|
||||||
|
|
||||||
import type { S_ToastMessage } from '/Content/Toasts/Structs/S_ToastMessage.ts';
|
import type { S_ToastMessage } from '/Content/Domains/UI/Systems/Toasts/Types/S_ToastMessage.ts';
|
||||||
import type { WBP_Toast } from '/Content/Toasts/UI/WBP_Toast.ts';
|
import type { WBP_Toast } from '/Content/Domains/UI/Systems/Toasts/WBP_Toast.ts';
|
||||||
import { WBP_ToastContainer } from '/Content/Toasts/UI/WBP_ToastContainer.ts';
|
import { WBP_ToastContainer } from '/Content/Domains/UI/Systems/Toasts/WBP_ToastContainer.ts';
|
||||||
import { ActorComponent } from '/Content/UE/ActorComponent.ts';
|
import { ActorComponent } from '/TypeScript/Engine/ActorComponent.ts';
|
||||||
import { CreateWidget } from '/Content/UE/CteateWidget.ts';
|
import { CreateWidget } from '/TypeScript/Engine/CteateWidget.ts';
|
||||||
import type { Float } from '/Content/UE/Float.ts';
|
import type { Float } from '/TypeScript/Engine/Float.ts';
|
||||||
import type { Integer } from '/Content/UE/Integer.ts';
|
import type { Integer } from '/TypeScript/Engine/Integer.ts';
|
||||||
import { SystemLibrary } from '/Content/UE/SystemLibrary.ts';
|
import { SystemLibrary } from '/TypeScript/Engine/SystemLibrary.ts';
|
||||||
import type { Text } from '/Content/UE/Text.ts';
|
import type { Text } from '/TypeScript/Engine/Text.ts';
|
||||||
import { UEArray } from '/Content/UE/UEArray.ts';
|
import { UEArray } from '/TypeScript/Engine/UEArray.ts';
|
||||||
import { E_MessageType } from '/Content/UI/Enums/E_MessageType.ts';
|
import { E_MessageType } from '/Content/_Core/UI/Enums/E_MessageType.ts';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Toast Notification System Component
|
* Toast Notification System Component
|
||||||
|
|
@ -18,6 +18,18 @@ import { E_MessageType } from '/Content/UI/Enums/E_MessageType.ts';
|
||||||
* Provides visual feedback for debug operations and system events
|
* Provides visual feedback for debug operations and system events
|
||||||
*/
|
*/
|
||||||
export class AC_ToastSystem extends ActorComponent {
|
export class AC_ToastSystem extends ActorComponent {
|
||||||
|
// ════════════════════════════════════════════════════════════════════════════════════════
|
||||||
|
// GRAPHS
|
||||||
|
// ════════════════════════════════════════════════════════════════════════════════════════
|
||||||
|
|
||||||
|
// ────────────────────────────────────────────────────────────────────────────────────────
|
||||||
|
// EventGraph
|
||||||
|
// ────────────────────────────────────────────────────────────────────────────────────────
|
||||||
|
|
||||||
|
EventTick(): void {
|
||||||
|
this.RemoveExpiredToasts();
|
||||||
|
}
|
||||||
|
|
||||||
// ════════════════════════════════════════════════════════════════════════════════════════
|
// ════════════════════════════════════════════════════════════════════════════════════════
|
||||||
// FUNCTIONS
|
// FUNCTIONS
|
||||||
// ════════════════════════════════════════════════════════════════════════════════════════
|
// ════════════════════════════════════════════════════════════════════════════════════════
|
||||||
|
|
@ -78,6 +90,10 @@ export class AC_ToastSystem extends ActorComponent {
|
||||||
|
|
||||||
this.ActiveToasts.RemoveIndex(i);
|
this.ActiveToasts.RemoveIndex(i);
|
||||||
this.ToastWidgets.RemoveIndex(i);
|
this.ToastWidgets.RemoveIndex(i);
|
||||||
|
|
||||||
|
if (this.ActiveToasts.length === 0) {
|
||||||
|
this.SetComponentTickEnabled(false);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|
@ -150,6 +166,7 @@ export class AC_ToastSystem extends ActorComponent {
|
||||||
this.ActiveToasts.Add(newToast);
|
this.ActiveToasts.Add(newToast);
|
||||||
this.ToastWidgets.Add(toastWidget);
|
this.ToastWidgets.Add(toastWidget);
|
||||||
this.LogToConsole(Type, Message);
|
this.LogToConsole(Type, Message);
|
||||||
|
this.SetComponentTickEnabled(true);
|
||||||
return newToast.ID;
|
return newToast.ID;
|
||||||
} else {
|
} else {
|
||||||
return -1;
|
return -1;
|
||||||
|
|
@ -161,35 +178,6 @@ export class AC_ToastSystem extends ActorComponent {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Main update loop for toast system
|
|
||||||
* Removes expired toasts automatically
|
|
||||||
* @category System Main Loop
|
|
||||||
*/
|
|
||||||
public UpdateToastSystem(): void {
|
|
||||||
if (this.ShouldProcessToasts()) {
|
|
||||||
this.RemoveExpiredToasts();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get system state and configuration for testing purposes
|
|
||||||
* Provides read-only access to private configuration and active widgets
|
|
||||||
* @returns Object containing toast widgets array and system configuration
|
|
||||||
* @category Testing
|
|
||||||
*/
|
|
||||||
public GetTestData(): {
|
|
||||||
ToastWidgets: UEArray<WBP_Toast>;
|
|
||||||
MaxVisibleToasts: Integer;
|
|
||||||
IsEnabled: boolean;
|
|
||||||
} {
|
|
||||||
return {
|
|
||||||
ToastWidgets: this.ToastWidgets,
|
|
||||||
MaxVisibleToasts: this.MaxVisibleToasts,
|
|
||||||
IsEnabled: this.IsEnabled,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize toast system with container widget
|
* Initialize toast system with container widget
|
||||||
* @example
|
* @example
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,14 @@
|
||||||
|
// Content/Domains/UI/Systems/Toasts/Types/S_ToastMessage.ts
|
||||||
|
|
||||||
|
import type { Float } from '/TypeScript/Engine/Float.ts';
|
||||||
|
import type { Integer } from '/TypeScript/Engine/Integer.ts';
|
||||||
|
import type { Text } from '/TypeScript/Engine/Text.ts';
|
||||||
|
import type { E_MessageType } from '/Content/_Core/UI/Enums/E_MessageType.ts';
|
||||||
|
|
||||||
|
export interface S_ToastMessage {
|
||||||
|
ID: Integer;
|
||||||
|
Message: Text;
|
||||||
|
Type: E_MessageType;
|
||||||
|
Duration: Float;
|
||||||
|
CreatedTime: Float;
|
||||||
|
}
|
||||||
Binary file not shown.
|
|
@ -1,13 +1,13 @@
|
||||||
// Content/Toasts/UI/WBP_Toast.ts
|
// Content/Domains/UI/Systems/Toasts/WBP_Toast.ts
|
||||||
|
|
||||||
import { Border } from '/Content/UE/Border.ts';
|
import { Border } from '/TypeScript/Engine/Border.ts';
|
||||||
import { MathLibrary } from '/Content/UE/MathLibrary.ts';
|
import { MathLibrary } from '/TypeScript/Engine/MathLibrary.ts';
|
||||||
import { SystemLibrary } from '/Content/UE/SystemLibrary.ts';
|
import { SystemLibrary } from '/TypeScript/Engine/SystemLibrary.ts';
|
||||||
import type { Text } from '/Content/UE/Text.ts';
|
import type { Text } from '/TypeScript/Engine/Text.ts';
|
||||||
import { TextBlock } from '/Content/UE/TextBlock.ts';
|
import { TextBlock } from '/TypeScript/Engine/TextBlock.ts';
|
||||||
import { UserWidget } from '/Content/UE/UserWidget.ts';
|
import { UserWidget } from '/TypeScript/Engine/UserWidget.ts';
|
||||||
import { E_MessageType } from '/Content/UI/Enums/E_MessageType.ts';
|
import { E_MessageType } from '/Content/_Core/UI/Enums/E_MessageType.ts';
|
||||||
import { BFL_Colors } from '/Content/UI/Libraries/BFL_Colors.ts';
|
import { BFL_Colors } from '/Content/_Core/Scripting/Libraries/BFL_Colors.ts';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Individual Toast Notification Widget
|
* Individual Toast Notification Widget
|
||||||
Binary file not shown.
|
|
@ -1,14 +1,14 @@
|
||||||
// Content/Toasts/UI/WBP_ToastContainer.ts
|
// Content/Domains/UI/Systems/Toasts/WBP_ToastContainer.ts
|
||||||
|
|
||||||
import { WBP_Toast } from '/Content/Toasts/UI/WBP_Toast.ts';
|
import { WBP_Toast } from '/Content/Domains/UI/Systems/Toasts/WBP_Toast.ts';
|
||||||
import { CreateWidget } from '/Content/UE/CteateWidget.ts';
|
import { CreateWidget } from '/TypeScript/Engine/CteateWidget.ts';
|
||||||
import { ESlateVisibility } from '/Content/UE/ESlateVisibility.ts';
|
import { ESlateVisibility } from '/TypeScript/Engine/ESlateVisibility.ts';
|
||||||
import { SystemLibrary } from '/Content/UE/SystemLibrary.ts';
|
import { SystemLibrary } from '/TypeScript/Engine/SystemLibrary.ts';
|
||||||
import type { Text } from '/Content/UE/Text.ts';
|
import type { Text } from '/TypeScript/Engine/Text.ts';
|
||||||
import { UEArray } from '/Content/UE/UEArray.ts';
|
import { UEArray } from '/TypeScript/Engine/UEArray.ts';
|
||||||
import { UserWidget } from '/Content/UE/UserWidget.ts';
|
import { UserWidget } from '/TypeScript/Engine/UserWidget.ts';
|
||||||
import { VerticalBox } from '/Content/UE/VerticalBox.ts';
|
import { VerticalBox } from '/TypeScript/Engine/VerticalBox.ts';
|
||||||
import type { E_MessageType } from '/Content/UI/Enums/E_MessageType.ts';
|
import type { E_MessageType } from '/Content/_Core/UI/Enums/E_MessageType.ts';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Toast Container Widget
|
* Toast Container Widget
|
||||||
Binary file not shown.
|
|
@ -1,6 +0,0 @@
|
||||||
// Content/Input/Actions/IA_Aim
|
|
||||||
|
|
||||||
import { InputAction } from '/Content/UE/InputAction.ts';
|
|
||||||
import { Name } from '/Content/UE/Name.ts';
|
|
||||||
|
|
||||||
export const IA_Aim = new InputAction(null, new Name('IA_Aim'));
|
|
||||||
BIN
Content/Input/Actions/IA_Aim.uasset (Stored with Git LFS)
BIN
Content/Input/Actions/IA_Aim.uasset (Stored with Git LFS)
Binary file not shown.
|
|
@ -1,6 +0,0 @@
|
||||||
// Content/Input/Actions/IA_Interact
|
|
||||||
|
|
||||||
import { InputAction } from '/Content/UE/InputAction.ts';
|
|
||||||
import { Name } from '/Content/UE/Name.ts';
|
|
||||||
|
|
||||||
export const IA_Interact = new InputAction(null, new Name('IA_Interact'));
|
|
||||||
BIN
Content/Input/Actions/IA_Interact.uasset (Stored with Git LFS)
BIN
Content/Input/Actions/IA_Interact.uasset (Stored with Git LFS)
Binary file not shown.
|
|
@ -1,6 +0,0 @@
|
||||||
// Content/Input/Actions/IA_Jump
|
|
||||||
|
|
||||||
import { InputAction } from '/Content/UE/InputAction.ts';
|
|
||||||
import { Name } from '/Content/UE/Name.ts';
|
|
||||||
|
|
||||||
export const IA_Jump = new InputAction(null, new Name('IA_Jump'));
|
|
||||||
BIN
Content/Input/Actions/IA_Jump.uasset (Stored with Git LFS)
BIN
Content/Input/Actions/IA_Jump.uasset (Stored with Git LFS)
Binary file not shown.
|
|
@ -1,6 +0,0 @@
|
||||||
// Content/Input/Actions/IA_LeftTrigger.ts
|
|
||||||
|
|
||||||
import { InputAction } from '/Content/UE/InputAction.ts';
|
|
||||||
import { Name } from '/Content/UE/Name.ts';
|
|
||||||
|
|
||||||
export const IA_LeftTrigger = new InputAction(null, new Name('IA_LeftTrigger'));
|
|
||||||
BIN
Content/Input/Actions/IA_LeftTrigger.uasset (Stored with Git LFS)
BIN
Content/Input/Actions/IA_LeftTrigger.uasset (Stored with Git LFS)
Binary file not shown.
|
|
@ -1,6 +0,0 @@
|
||||||
// Content/Input/Actions/IA_Look.ts
|
|
||||||
|
|
||||||
import { InputAction } from '/Content/UE/InputAction.ts';
|
|
||||||
import { Name } from '/Content/UE/Name.ts';
|
|
||||||
|
|
||||||
export const IA_Look = new InputAction(null, new Name('IA_Look'));
|
|
||||||
BIN
Content/Input/Actions/IA_Look.uasset (Stored with Git LFS)
BIN
Content/Input/Actions/IA_Look.uasset (Stored with Git LFS)
Binary file not shown.
|
|
@ -1,6 +0,0 @@
|
||||||
// Content/Input/Actions/IA_Move.ts
|
|
||||||
|
|
||||||
import { InputAction } from '/Content/UE/InputAction.ts';
|
|
||||||
import { Name } from '/Content/UE/Name.ts';
|
|
||||||
|
|
||||||
export const IA_Move = new InputAction(null, new Name('IA_Move'));
|
|
||||||
BIN
Content/Input/Actions/IA_Move.uasset (Stored with Git LFS)
BIN
Content/Input/Actions/IA_Move.uasset (Stored with Git LFS)
Binary file not shown.
|
|
@ -1,5 +0,0 @@
|
||||||
// Content/Input/Actions/IA_NextDebugMode.ts
|
|
||||||
|
|
||||||
import { InputAction } from '/Content/UE/InputAction.ts';
|
|
||||||
|
|
||||||
export const IA_NextDebugMode = new InputAction(null, 'IA_NextDebugMode');
|
|
||||||
BIN
Content/Input/Actions/IA_NextDebugMode.uasset (Stored with Git LFS)
BIN
Content/Input/Actions/IA_NextDebugMode.uasset (Stored with Git LFS)
Binary file not shown.
|
|
@ -1,5 +0,0 @@
|
||||||
// Content/Input/Actions/IA_PrevDebugMode.ts
|
|
||||||
|
|
||||||
import { InputAction } from '/Content/UE/InputAction.ts';
|
|
||||||
|
|
||||||
export const IA_PrevDebugMode = new InputAction(null, 'IA_PrevDebugMode');
|
|
||||||
BIN
Content/Input/Actions/IA_PrevDebugMode.uasset (Stored with Git LFS)
BIN
Content/Input/Actions/IA_PrevDebugMode.uasset (Stored with Git LFS)
Binary file not shown.
|
|
@ -1,5 +0,0 @@
|
||||||
// Content/Input/Actions/IA_RightTrigger.ts
|
|
||||||
|
|
||||||
import { InputAction } from '/Content/UE/InputAction.ts';
|
|
||||||
|
|
||||||
export const IA_RightTrigger = new InputAction(null, 'IA_RightTrigger');
|
|
||||||
BIN
Content/Input/Actions/IA_RightTrigger.uasset (Stored with Git LFS)
BIN
Content/Input/Actions/IA_RightTrigger.uasset (Stored with Git LFS)
Binary file not shown.
|
|
@ -1,5 +0,0 @@
|
||||||
// Content/Input/Actions/IA_Aim
|
|
||||||
|
|
||||||
import { InputAction } from '/Content/UE/InputAction.ts';
|
|
||||||
import { Name } from '/Content/UE/Name.ts';
|
|
||||||
export const IA_Throw = new InputAction(null, new Name('IA_Aim'));
|
|
||||||
BIN
Content/Input/Actions/IA_Throw.uasset (Stored with Git LFS)
BIN
Content/Input/Actions/IA_Throw.uasset (Stored with Git LFS)
Binary file not shown.
|
|
@ -1,5 +0,0 @@
|
||||||
// Content/Input/Actions/IA_ToggleHUD.ts
|
|
||||||
|
|
||||||
import { InputAction } from '/Content/UE/InputAction.ts';
|
|
||||||
|
|
||||||
export const IA_ToggleHUD = new InputAction(null, 'IA_ToggleHUD');
|
|
||||||
BIN
Content/Input/Actions/IA_ToggleHUD.uasset (Stored with Git LFS)
BIN
Content/Input/Actions/IA_ToggleHUD.uasset (Stored with Git LFS)
Binary file not shown.
|
|
@ -1,8 +0,0 @@
|
||||||
// Content/Input/Actions/IA_ToggleVisualDebug.ts
|
|
||||||
|
|
||||||
import { InputAction } from '/Content/UE/InputAction.ts';
|
|
||||||
|
|
||||||
export const IA_ToggleVisualDebug = new InputAction(
|
|
||||||
null,
|
|
||||||
'IA_ToggleVisualDebug'
|
|
||||||
);
|
|
||||||
BIN
Content/Input/Actions/IA_ToggleVisualDebug.uasset (Stored with Git LFS)
BIN
Content/Input/Actions/IA_ToggleVisualDebug.uasset (Stored with Git LFS)
Binary file not shown.
BIN
Content/Input/Components/AC_InputDevice.uasset (Stored with Git LFS)
BIN
Content/Input/Components/AC_InputDevice.uasset (Stored with Git LFS)
Binary file not shown.
|
|
@ -1,27 +0,0 @@
|
||||||
// Content/Input/IMC_Default.ts
|
|
||||||
|
|
||||||
import { IA_LeftTrigger } from '/Content/Input/Actions/IA_LeftTrigger.ts';
|
|
||||||
import { IA_Look } from '/Content/Input/Actions/IA_Look.ts';
|
|
||||||
import { IA_Move } from '/Content/Input/Actions/IA_Move.ts';
|
|
||||||
import { IA_NextDebugMode } from '/Content/Input/Actions/IA_NextDebugMode.ts';
|
|
||||||
import { IA_PrevDebugMode } from '/Content/Input/Actions/IA_PrevDebugMode.ts';
|
|
||||||
import { IA_RightTrigger } from '/Content/Input/Actions/IA_RightTrigger.ts';
|
|
||||||
import { IA_ToggleHUD } from '/Content/Input/Actions/IA_ToggleHUD.ts';
|
|
||||||
import { IA_ToggleVisualDebug } from '/Content/Input/Actions/IA_ToggleVisualDebug.ts';
|
|
||||||
import { InputMappingContext } from '/Content/UE/InputMappingContext.ts';
|
|
||||||
import { Key } from '/Content/UE/Key.ts';
|
|
||||||
import { IA_Jump } from '/Content/Input/Actions/IA_Jump.ts';
|
|
||||||
import { IA_Interact } from '/Content/Input/Actions/IA_Inreract.ts';
|
|
||||||
|
|
||||||
export const IMC_Default = new InputMappingContext();
|
|
||||||
|
|
||||||
IMC_Default.mapKey(IA_LeftTrigger, new Key('IA_LeftTrigger'));
|
|
||||||
IMC_Default.mapKey(IA_RightTrigger, new Key('IA_RightTrigger'));
|
|
||||||
IMC_Default.mapKey(IA_NextDebugMode, new Key('IA_NextDebugMode'));
|
|
||||||
IMC_Default.mapKey(IA_PrevDebugMode, new Key('IA_PrevDebugMode'));
|
|
||||||
IMC_Default.mapKey(IA_ToggleHUD, new Key('IA_ToggleHUD'));
|
|
||||||
IMC_Default.mapKey(IA_ToggleVisualDebug, new Key('IA_ToggleVisualDebug'));
|
|
||||||
IMC_Default.mapKey(IA_Look, new Key('IA_Look'));
|
|
||||||
IMC_Default.mapKey(IA_Move, new Key('IA_Move'));
|
|
||||||
IMC_Default.mapKey(IA_Jump, new Key('IA_Jump'));
|
|
||||||
IMC_Default.mapKey(IA_Interact, new Key('IA_Interact'));
|
|
||||||
BIN
Content/Input/IMC_Default.uasset (Stored with Git LFS)
BIN
Content/Input/IMC_Default.uasset (Stored with Git LFS)
Binary file not shown.
|
|
@ -1,11 +0,0 @@
|
||||||
// Content/Input/IMC_ItemHeld.ts
|
|
||||||
|
|
||||||
import { InputMappingContext } from '/Content/UE/InputMappingContext.ts';
|
|
||||||
import { Key } from '/Content/UE/Key.ts';
|
|
||||||
import { IA_Aim } from '/Content/Input/Actions/IA_Aim.ts';
|
|
||||||
import { IA_Throw } from '/Content/Input/Actions/IA_Throw.ts';
|
|
||||||
|
|
||||||
export const IMC_ItemHeld = new InputMappingContext();
|
|
||||||
|
|
||||||
IMC_ItemHeld.mapKey(IA_Aim, new Key('IA_Aim'));
|
|
||||||
IMC_ItemHeld.mapKey(IA_Throw, new Key('IA_Throw'));
|
|
||||||
BIN
Content/Input/IMC_ItemHeld.uasset (Stored with Git LFS)
BIN
Content/Input/IMC_ItemHeld.uasset (Stored with Git LFS)
Binary file not shown.
|
|
@ -1,7 +0,0 @@
|
||||||
// Content/Levels/TestLevel.ts
|
|
||||||
|
|
||||||
import { BP_MainCharacter } from '/Content/Blueprints/BP_MainCharacter.ts';
|
|
||||||
import { BP_Rock } from '/Content/Blueprints/BP_Rock.ts';
|
|
||||||
|
|
||||||
new BP_MainCharacter();
|
|
||||||
new BP_Rock();
|
|
||||||
BIN
Content/Levels/TestLevel.umap (Stored with Git LFS)
BIN
Content/Levels/TestLevel.umap (Stored with Git LFS)
Binary file not shown.
|
|
@ -0,0 +1,5 @@
|
||||||
|
// Content/Maps/Gym.ts
|
||||||
|
|
||||||
|
import { BP_Rock } from '/Content/World/Props/BP_Rock.ts';
|
||||||
|
|
||||||
|
new BP_Rock();
|
||||||
Binary file not shown.
BIN
Content/Movement/DA_TengriMovementConfig.uasset (Stored with Git LFS)
BIN
Content/Movement/DA_TengriMovementConfig.uasset (Stored with Git LFS)
Binary file not shown.
BIN
Content/Toasts/Components/AC_ToastSystem.uasset (Stored with Git LFS)
BIN
Content/Toasts/Components/AC_ToastSystem.uasset (Stored with Git LFS)
Binary file not shown.
|
|
@ -1,14 +0,0 @@
|
||||||
// Content/Toasts/Structs/S_ToastMessage.ts
|
|
||||||
|
|
||||||
import type { Float } from '/Content/UE/Float.ts';
|
|
||||||
import type { Integer } from '/Content/UE/Integer.ts';
|
|
||||||
import type { Text } from '/Content/UE/Text.ts';
|
|
||||||
import type { E_MessageType } from '/Content/UI/Enums/E_MessageType.ts';
|
|
||||||
|
|
||||||
export interface S_ToastMessage {
|
|
||||||
ID: Integer;
|
|
||||||
Message: Text;
|
|
||||||
Type: E_MessageType;
|
|
||||||
Duration: Float;
|
|
||||||
CreatedTime: Float;
|
|
||||||
}
|
|
||||||
BIN
Content/Toasts/Structs/S_ToastMessage.uasset (Stored with Git LFS)
BIN
Content/Toasts/Structs/S_ToastMessage.uasset (Stored with Git LFS)
Binary file not shown.
BIN
Content/Toasts/UI/WBP_Toast.uasset (Stored with Git LFS)
BIN
Content/Toasts/UI/WBP_Toast.uasset (Stored with Git LFS)
Binary file not shown.
BIN
Content/Toasts/UI/WBP_ToastContainer.uasset (Stored with Git LFS)
BIN
Content/Toasts/UI/WBP_ToastContainer.uasset (Stored with Git LFS)
Binary file not shown.
|
|
@ -1,15 +0,0 @@
|
||||||
// Content/UE/ActorComponent.ts
|
|
||||||
|
|
||||||
import { Actor } from '/Content/UE/Actor.ts';
|
|
||||||
import { Name } from '/Content/UE/Name.ts';
|
|
||||||
import { UEObject } from '/Content/UE/UEObject.ts';
|
|
||||||
|
|
||||||
export class ActorComponent extends UEObject {
|
|
||||||
constructor(outer: UEObject | null = null, name: Name | string = Name.NONE) {
|
|
||||||
super(outer, name);
|
|
||||||
}
|
|
||||||
|
|
||||||
public GetOwner(): Actor {
|
|
||||||
return new Actor();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
// Content/UE/BitmaskInteger.ts
|
|
||||||
|
|
||||||
export type BitmaskInteger = number;
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
// Content/UE/Border.ts
|
|
||||||
|
|
||||||
import { ContentWidget } from '/Content/UE/ContentWidget.ts';
|
|
||||||
import type { LinearColor } from '/Content/UE/LinearColor.ts';
|
|
||||||
import { Name } from '/Content/UE/Name.ts';
|
|
||||||
import { UEObject } from '/Content/UE/UEObject.ts';
|
|
||||||
|
|
||||||
export class Border extends ContentWidget {
|
|
||||||
constructor(outer: UEObject | null = null, name: Name | string = Name.NONE) {
|
|
||||||
super(outer, name);
|
|
||||||
}
|
|
||||||
|
|
||||||
public SetBrushColor(color: LinearColor): void {
|
|
||||||
console.log(color);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
// Content/UE/Byte.ts
|
|
||||||
|
|
||||||
export type Byte = number;
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue