// Content/functions.ts import type {Color, 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 = 'Hello', printToScreen: boolean = true, printToLog: boolean = true, textColor: Color = {R: 0.0, G: 0.66, B: 1.0, A: 1.0}, duration: Float = 2.0): 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; } export function RemoveIndexFromArray(targetArray: T[], index: Integer): void { if (index >= 0 && index < targetArray.length) { targetArray.splice(index, 1); } } export function RemoveItemFromArray(targetArray: T[], item: T): void { const index = targetArray.indexOf(item); if (index !== -1) { targetArray.splice(index, 1); } } // 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 }