// 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(targetArray: T[], index: Integer, value: T): void { targetArray[index] = value; } export function AddToArray(targetArray: T[], value: T): void { targetArray.push(value); } export function GetFromArray(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(widgetClass: T): T { return widgetClass; } export function IsValid(object: T | null): boolean { return object !== null && object !== undefined; } export function GetGameTimeInSeconds(): Float { return Date.now() / 1000; // Simple placeholder for game time }