import { Vector2 } from '../types/Vector2'; import { Vector3 } from '../types/Vector3'; import { Vector4 } from '../types/Vector4'; import { Color } from '../types/Color'; import { createFromHandle } from '../types/HandleRegistry'; import { inv, rai, raf, ras, rav, pvi, pvf, pvv, pvii, pvfi, _h, f, int, uint, float, Hash, u8, u16, u32, u64, i8, i16, i32, i64 } from '../types/NativeAliases'; export class Interaction { /** * Allows camera to be moved if middle mouse button is held while in first person * Must be called every frame * _SET* */ static setAllowFirstPersonMouseCameraMovement(): void { inv('0x0546B117BB17548B'); } /** * Returns true if player is holding LMB while cursor is active * _PI* - _PO* * * @returns */ static pointerIsLeftButtonHeld(): boolean { return !!inv('0x61CAE9D1FD055E44', rai()); } /** * Returns true if player is moving mouse while cursor is active * _PI* - _PO* * * @returns */ static pointerIsBeingMoved(): boolean { return !!inv('0x2B8B605F2A9E64BF', rai()); } /** * Shows the cursor on screen for one frame. Old name: _SET_MOUSE_CURSOR_ACTIVE_THIS_FRAME */ static setMouseCursorThisFrame(): void { inv('0xF12E4CCAF249DC10'); } /** * Changes the mouse cursor's sprite. spriteId's: https://github.com/femga/rdr3_discoveries/tree/master/graphics/HUD/cursor_sprites#readme Old name: _SET_MOUSE_CURSOR_SPRITE * * @param spriteId */ static setMouseCursorStyle(spriteId: int): void { inv('0x7F5858AAB5A58CCE', spriteId); } /** * Returns true if player releases LMB if cursor is active * _PI* - _PO* * * @returns */ static pointerIsLeftButtonJustReleased(): boolean { return !!inv('0xF7F51A57349739F2', rai()); } }