69 lines
1.7 KiB
TypeScript
69 lines
1.7 KiB
TypeScript
// Content/functions.ts
|
|
|
|
import type {Controller, Float, InputMappingContext, Integer, Vector} from "./types.js";
|
|
|
|
// Math
|
|
export function sin(x: Float): Float {
|
|
return Math.sin(x);
|
|
}
|
|
|
|
export function cos(x: Float): Float {
|
|
return Math.cos(x);
|
|
}
|
|
|
|
export function acos(x: Float): Float {
|
|
return Math.acos(x);
|
|
}
|
|
|
|
export function Dot(v1: Vector, v2: Vector): Float {
|
|
return v1[0] * v2[0] + v1[1] * v2[1] + v1[2] * v2[2];
|
|
}
|
|
|
|
export function D2R(degrees: Float): Float {
|
|
return degrees * (Math.PI / 180);
|
|
}
|
|
|
|
// Utilities
|
|
export function Print(message: string): void {
|
|
console.log(message);
|
|
}
|
|
|
|
// Arrays
|
|
|
|
export function SetArrayElem<T>(targetArray: T[], index: Integer, value: T): void {
|
|
targetArray[index] = value;
|
|
}
|
|
|
|
export function AddToArray<T>(targetArray: T[], value: T): void {
|
|
targetArray.push(value);
|
|
}
|
|
|
|
export function GetFromArray<T>(targetArray: T[], index: Integer): T | null {
|
|
return index >= 0 && index < targetArray.length ? targetArray[index] : null;
|
|
}
|
|
|
|
// UE functions placeholders
|
|
export function CastToPlayController(controller: Controller): Controller {
|
|
return controller;
|
|
}
|
|
|
|
export function EnhancedInputLocalPlayerSubsystem(playerController: Controller): Controller {
|
|
return playerController;
|
|
}
|
|
|
|
export function AddMappingContext(Target: Controller, MappingContext: InputMappingContext, Priority: Integer = 0): void {
|
|
console.log(`Adding mapping context with priority ${Priority} to player controller ${Target}`);
|
|
}
|
|
|
|
export function CreateWidget<T>(widgetClass: T): T {
|
|
return widgetClass;
|
|
}
|
|
|
|
export function IsValid<T>(object: T | null): boolean {
|
|
return object !== null && object !== undefined;
|
|
}
|
|
|
|
export function GetGameTimeInSeconds(): Float {
|
|
return Date.now() / 1000; // Simple placeholder for game time
|
|
}
|