@schmoker/rageenginebridge 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/stefan/Repos/RageEngineBridge/dist/ragemp.cjs","../src/ragemp/RageMpEntityPool.ts","../src/ragemp/RageMpEntity.ts","../src/ragemp/RageMpPlayer.ts","../src/ragemp/RageMpVehicle.ts","../src/ragemp/RageMpPed.ts","../src/ragemp/RageMpObject.ts","../src/ragemp/RageMpBlip.ts","../src/ragemp/RageMpCheckpoint.ts","../src/ragemp/RageMpColshape.ts","../src/ragemp/RageMpCamera.ts","../src/ragemp/RageMpBrowser.ts","../src/ragemp/RageMpTextLabel.ts","../src/ragemp/RageMpMarker.ts","../src/ragemp/RageMpPickup.ts","../src/ragemp/RageMpEvents.ts","../src/ragemp/RageMpGui.ts","../src/ragemp/RageMpKeys.ts","../src/ragemp/RageMpStorage.ts","../src/ragemp/RageMpVoiceChat.ts","../src/ragemp/RageMpNametags.ts","../src/ragemp/RageMpRaycasting.ts","../src/ragemp/RageMpConsole.ts","../src/ragemp/RageMpDiscord.ts","../src/ragemp/RageMpSystem.ts","../src/ragemp/RageMpUser.ts","../src/ragemp/RageMpNativesBridge.ts","../src/ragemp/RageMpEngine.ts"],"names":[],"mappings":"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","file":"/Users/stefan/Repos/RageEngineBridge/dist/ragemp.cjs","sourcesContent":[null,"import type { IEntityPool, ICreatableEntityPool } from \"../interfaces/IEntity\";\nimport type { Vector3 } from \"../types\";\n\nexport class RageMpEntityPool<T, Raw> implements IEntityPool<T> {\n private cache = new WeakMap<object, T>();\n\n constructor(\n protected readonly pool: RageMpPool<Raw>,\n protected readonly wrap: (raw: Raw) => T,\n ) {}\n\n protected getWrapped(raw: Raw): T {\n const key = raw as unknown as object;\n let wrapped = this.cache.get(key);\n if (!wrapped) {\n wrapped = this.wrap(raw);\n this.cache.set(key, wrapped);\n }\n return wrapped;\n }\n\n get length(): number {\n return this.pool.length;\n }\n\n get size(): number {\n return this.pool.length;\n }\n\n get streamed(): T[] {\n return this.pool.streamed.map((raw) => this.getWrapped(raw));\n }\n\n at(id: number): T | undefined {\n const raw = this.pool.at(id);\n return raw ? this.getWrapped(raw) : undefined;\n }\n\n atRemoteId(remoteId: number): T | undefined {\n const raw = this.pool.atRemoteId(remoteId);\n return raw ? this.getWrapped(raw) : undefined;\n }\n\n atHandle(handle: number): T | undefined {\n const raw = this.pool.atHandle(handle);\n return raw ? this.getWrapped(raw) : undefined;\n }\n\n exists(entity: T): boolean {\n return this.pool.exists(entity as unknown as Raw);\n }\n\n forEach(callback: (entity: T) => void): void {\n this.pool.forEach((raw) => callback(this.getWrapped(raw)));\n }\n\n forEachInRange(position: Vector3, range: number, callbackOrDimension: ((entity: T) => void) | number, callback?: (entity: T) => void): void {\n const pos = new mp.Vector3(position.x, position.y, position.z);\n if (typeof callbackOrDimension === \"function\") {\n this.pool.forEachInRange(pos, range, (raw: Raw) => callbackOrDimension(this.getWrapped(raw)));\n } else {\n this.pool.forEachInRange(pos, range, callbackOrDimension, (raw: Raw) => callback!(this.getWrapped(raw)));\n }\n }\n\n forEachInStreamRange(callback: (entity: T) => void): void {\n this.pool.forEachInStreamRange((raw) => callback(this.getWrapped(raw)));\n }\n\n forEachInDimension(dimension: number, callback: (entity: T) => void): void {\n this.pool.forEachInDimension(dimension, (raw) => callback(this.getWrapped(raw)));\n }\n\n getClosest(position: Vector3): T | undefined {\n let closest: T | undefined;\n let closestDist = Infinity;\n this.pool.forEach((raw) => {\n const wrapped = this.getWrapped(raw);\n const entity = wrapped as unknown as { position: Vector3 };\n if (entity.position) {\n const dx = entity.position.x - position.x;\n const dy = entity.position.y - position.y;\n const dz = entity.position.z - position.z;\n const dist = dx * dx + dy * dy + dz * dz;\n if (dist < closestDist) {\n closestDist = dist;\n closest = wrapped;\n }\n }\n });\n return closest;\n }\n\n toArray(): T[] {\n return this.pool.toArray().map((raw) => this.getWrapped(raw));\n }\n}\n\nexport class RageMpCreatablePool<T, Raw, Opts> extends RageMpEntityPool<T, Raw> implements ICreatableEntityPool<T, Opts> {\n constructor(\n pool: RageMpPool<Raw>,\n wrap: (raw: Raw) => T,\n private readonly createFn: (opts: Opts) => Raw,\n ) {\n super(pool, wrap);\n }\n\n create(opts: Opts): T {\n const raw = this.createFn(opts);\n return this.getWrapped(raw);\n }\n}\n\ninterface RageMpPool<T> {\n length: number;\n streamed: T[];\n at(id: number): T;\n atRemoteId(remoteId: number): T;\n atHandle(handle: number): T;\n exists(entity: T): boolean;\n forEach(callback: (entity: T) => void): void;\n forEachInRange(position: any, range: number, callback: (entity: T) => void): void;\n forEachInRange(position: any, range: number, dimension: number, callback: (entity: T) => void): void;\n forEachInStreamRange(callback: (entity: T) => void): void;\n forEachInDimension(dimension: number, callback: (entity: T) => void): void;\n toArray(): T[];\n}\n","import type { IEntity } from \"../interfaces/IEntity\";\nimport type { EntityType, Vector3 } from \"../types\";\n\nexport class RageMpEntity implements IEntity {\n constructor(protected readonly raw: any) {}\n\n get id(): number {\n return this.raw.id;\n }\n\n get remoteId(): number {\n return this.raw.remoteId;\n }\n\n get type(): EntityType {\n return this.raw.type as EntityType;\n }\n\n get handle(): number {\n return this.raw.handle;\n }\n\n get alpha(): number {\n return this.raw.alpha;\n }\n\n set alpha(value: number) {\n this.raw.alpha = value;\n }\n\n get data(): Record<string, unknown> {\n return this.raw.data;\n }\n\n set data(value: Record<string, unknown>) {\n this.raw.data = value;\n }\n\n get dimension(): number {\n return this.raw.dimension;\n }\n\n set dimension(value: number) {\n this.raw.dimension = value;\n }\n\n get model(): number {\n return this.raw.model;\n }\n\n set model(value: number) {\n this.raw.model = value;\n }\n\n get position(): Vector3 {\n const p = this.raw.position;\n return { x: p.x, y: p.y, z: p.z };\n }\n\n set position(value: Vector3) {\n this.raw.position = new mp.Vector3(value.x, value.y, value.z);\n }\n\n get rotation(): Vector3 {\n const r = this.raw.rotation;\n return { x: r.x, y: r.y, z: r.z };\n }\n\n set rotation(value: Vector3) {\n this.raw.rotation = new mp.Vector3(value.x, value.y, value.z);\n }\n\n destroy(): void {\n this.raw.destroy();\n }\n\n doesExist(): boolean {\n return this.raw.doesExist();\n }\n\n dist(position: Vector3): number {\n return this.raw.dist(new mp.Vector3(position.x, position.y, position.z));\n }\n\n distSquared(position: Vector3): number {\n const p = this.position;\n const dx = p.x - position.x;\n const dy = p.y - position.y;\n const dz = p.z - position.z;\n return dx * dx + dy * dy + dz * dz;\n }\n\n getVariable(name: string): unknown {\n return this.raw.getVariable(name);\n }\n\n hasVariable(name: string): boolean {\n return this.raw.hasVariable(name);\n }\n\n setCoords(x: number, y: number, z: number): void {\n mp.game.entity.setCoords(this.raw.handle, x, y, z, false, false, false, false);\n }\n\n setRotation(x: number, y: number, z: number): void {\n mp.game.entity.setRotation(this.raw.handle, x, y, z, 2, true);\n }\n\n freezePosition(toggle: boolean): void {\n mp.game.entity.freezePosition(this.raw.handle, toggle);\n }\n\n setVelocity(x: number, y: number, z: number): void {\n mp.game.entity.setVelocity(this.raw.handle, x, y, z);\n }\n\n getVelocity(): Vector3 {\n const v = mp.game.entity.getVelocity(this.raw.handle);\n return { x: v.x, y: v.y, z: v.z };\n }\n\n setAlpha(alpha: number): void {\n mp.game.entity.setAlpha(this.raw.handle, alpha, false);\n }\n\n setVisible(visible: boolean): void {\n mp.game.entity.setVisible(this.raw.handle, visible, false);\n }\n\n setCollision(toggle: boolean): void {\n mp.game.entity.setCollision(this.raw.handle, toggle, true);\n }\n\n setInvincible(toggle: boolean): void {\n mp.game.entity.setInvincible(this.raw.handle, toggle);\n }\n\n getHealth(): number {\n return mp.game.entity.getHealth(this.raw.handle);\n }\n\n setHealth(health: number): void {\n mp.game.entity.setHealth(this.raw.handle, health, 0);\n }\n\n getMaxHealth(): number {\n return mp.game.entity.getMaxHealth(this.raw.handle);\n }\n\n setMaxHealth(health: number): void {\n mp.game.entity.setMaxHealth(this.raw.handle, health);\n }\n\n getSpeed(): number {\n return mp.game.entity.getSpeed(this.raw.handle);\n }\n\n getForwardVector(): Vector3 {\n const v = mp.game.entity.getForwardVector(this.raw.handle);\n return { x: v.x, y: v.y, z: v.z };\n }\n\n getHeading(): number {\n return mp.game.entity.getHeading(this.raw.handle);\n }\n\n setHeading(heading: number): void {\n mp.game.entity.setHeading(this.raw.handle, heading);\n }\n\n isOnScreen(): boolean {\n return mp.game.entity.isOnScreen(this.raw.handle);\n }\n\n isDead(): boolean {\n return mp.game.entity.isDead(this.raw.handle, false);\n }\n\n isInWater(): boolean {\n return mp.game.entity.isInWater(this.raw.handle);\n }\n\n isInAir(): boolean {\n return mp.game.entity.isInAir(this.raw.handle);\n }\n\n isVisible(): boolean {\n return mp.game.entity.isVisible(this.raw.handle);\n }\n}\n","import type { IPlayer } from \"../interfaces/IPlayer\";\nimport type { Vector3 } from \"../types\";\nimport { RageMpEntity } from \"./RageMpEntity\";\n\nexport class RageMpPlayer extends RageMpEntity implements IPlayer {\n get armour(): number {\n return this.raw.armour;\n }\n\n get eyeColour(): number {\n return this.raw.eyeColour;\n }\n\n get hairColour(): number {\n return this.raw.hairColour;\n }\n\n get hairHighlightColour(): number {\n return this.raw.hairHighlightColour;\n }\n\n get heading(): number {\n return this.raw.heading;\n }\n\n get health(): number {\n return this.raw.health;\n }\n\n get name(): string {\n return this.raw.name;\n }\n\n get weapon(): number {\n return this.raw.weapon;\n }\n\n get weaponAmmo(): number {\n return this.raw.weaponAmmo;\n }\n\n get action(): string {\n return this.raw.action;\n }\n\n get aimTarget(): number {\n return this.raw.aimTarget;\n }\n\n get ip(): string {\n return this.raw.ip;\n }\n\n get isTypingInTextChat(): boolean {\n return this.raw.isTypingInTextChat;\n }\n\n get isVoiceActive(): boolean {\n return this.raw.isVoiceActive;\n }\n\n get ping(): number {\n return this.raw.ping;\n }\n\n get vehicle(): number | null {\n return this.raw.vehicle?.handle ?? null;\n }\n\n setComponentVariation(component: number, drawable: number, texture: number, palette: number): void {\n mp.game.ped.setComponentVariation(this.raw.handle, component, drawable, texture, palette);\n }\n\n setHeadBlendData(\n shapeFirst: number, shapeSecond: number, shapeThird: number,\n skinFirst: number, skinSecond: number, skinThird: number,\n shapeMix: number, skinMix: number, thirdMix: number,\n ): void {\n mp.game.ped.setHeadBlendData(this.raw.handle, shapeFirst, shapeSecond, shapeThird, skinFirst, skinSecond, skinThird, shapeMix, skinMix, thirdMix, false);\n }\n\n setHeadOverlay(overlayId: number, index: number, opacity: number, firstColor?: number, secondColor?: number): void {\n mp.game.ped.setHeadOverlay(this.raw.handle, overlayId, index, opacity);\n if (firstColor !== undefined && secondColor !== undefined) {\n (mp.game.ped as any).setHeadOverlayTint(this.raw.handle, overlayId, 1, firstColor, secondColor);\n }\n }\n\n setHairColor(color: number, highlight: number): void {\n (mp.game.ped as any).setHairTint(this.raw.handle, color, highlight);\n }\n\n setEyeColor(color: number): void {\n mp.game.ped.setEyeColor(this.raw.handle, color);\n }\n\n setFaceFeature(index: number, scale: number): void {\n mp.game.ped.setFaceFeature(this.raw.handle, index, scale);\n }\n\n setPropIndex(propId: number, drawableId: number, textureId: number, attach: boolean): void {\n mp.game.ped.setPropIndex(this.raw.handle, propId, drawableId, textureId, attach);\n }\n\n clearProp(propId: number): void {\n mp.game.ped.clearProp(this.raw.handle, propId);\n }\n\n getDrawableVariation(component: number): number {\n return mp.game.ped.getDrawableVariation(this.raw.handle, component);\n }\n\n getTextureVariation(component: number): number {\n return mp.game.ped.getTextureVariation(this.raw.handle, component);\n }\n\n getPropIndex(propId: number): number {\n return mp.game.ped.getPropIndex(this.raw.handle, propId);\n }\n\n getPropTextureIndex(propId: number): number {\n return mp.game.ped.getPropTextureIndex(this.raw.handle, propId);\n }\n\n getBonePosition(boneId: number): Vector3 {\n const p = mp.game.ped.getBoneCoords(this.raw.handle, boneId, 0, 0, 0);\n return { x: p.x, y: p.y, z: p.z };\n }\n\n getWorldPositionOfBone(boneIndex: number): Vector3 {\n const p = mp.game.entity.getWorldPositionOfBone(this.raw.handle, boneIndex);\n return { x: p.x, y: p.y, z: p.z };\n }\n\n getBoneIndex(boneName: string): number {\n return mp.game.ped.getBoneIndex(this.raw.handle, boneName as unknown as number);\n }\n\n giveWeapon(hash: number, ammo: number): void {\n (mp.game.weapon as any).giveWeaponToPed(this.raw.handle, hash, ammo, false, true);\n }\n\n removeAllWeapons(): void {\n mp.game.weapon.removeAllPedS(this.raw.handle, true);\n }\n\n getAmmoInClip(weapon: number): number {\n return mp.game.weapon.getAmmoInClip(this.raw.handle, weapon);\n }\n\n setAmmoInClip(weapon: number, ammo: number): void {\n mp.game.weapon.setAmmoInClip(this.raw.handle, weapon, ammo);\n }\n\n getWeaponTintIndex(weapon: number): number {\n return mp.game.weapon.getPedTintIndex(this.raw.handle, weapon);\n }\n\n isJumping(): boolean {\n return mp.game.ped.isJumping(this.raw.handle);\n }\n\n isFalling(): boolean {\n return mp.game.ped.isFalling(this.raw.handle);\n }\n\n isShooting(): boolean {\n return mp.game.ped.isShooting(this.raw.handle);\n }\n\n isReloading(): boolean {\n return mp.game.ped.isReloading(this.raw.handle);\n }\n\n isSprinting(): boolean {\n return (mp.game.ped as any).isSprinting(this.raw.handle);\n }\n\n isSwimming(): boolean {\n return mp.game.ped.isSwimming(this.raw.handle);\n }\n\n isSwimmingUnderWater(): boolean {\n return mp.game.ped.isSwimmingUnderWater(this.raw.handle);\n }\n\n isClimbing(): boolean {\n return mp.game.ped.isClimbing(this.raw.handle);\n }\n\n isGettingIntoVehicle(): boolean {\n return mp.game.ped.isGettingIntoAVehicle(this.raw.handle);\n }\n\n isDiving(): boolean {\n return mp.game.ped.isDiving(this.raw.handle);\n }\n\n isParachuting(): boolean {\n return (mp.game.ped as any).isParachuting(this.raw.handle);\n }\n\n isInAnyVehicle(): boolean {\n return mp.game.ped.isInAnyVehicle(this.raw.handle, false);\n }\n\n isSittingInVehicle(vehicle: number): boolean {\n return mp.game.ped.isSittingInVehicle(this.raw.handle, vehicle);\n }\n\n setIntoVehicle(vehicle: number, seat: number): void {\n mp.game.ped.setIntoVehicle(this.raw.handle, vehicle, seat);\n }\n\n setArmour(armour: number): void {\n mp.game.ped.setArmour(this.raw.handle, armour);\n }\n\n getArmour(): number {\n return mp.game.ped.getArmour(this.raw.handle);\n }\n\n taskPlayAnim(\n dict: string, name: string, blendInSpeed: number, blendOutSpeed: number,\n duration: number, flag: number, playbackRate: number,\n lockX: boolean, lockY: boolean, lockZ: boolean,\n ): void {\n mp.game.task.playAnim(this.raw.handle, dict, name, blendInSpeed, blendOutSpeed, duration, flag, playbackRate, lockX, lockY, lockZ);\n }\n\n clearTasks(): void {\n (mp.game.task as any).clearTasks(this.raw.handle);\n }\n\n clearTasksImmediately(): void {\n mp.game.task.clearPedTasksImmediately(this.raw.handle);\n }\n\n canRagdoll(): boolean {\n return mp.game.ped.canRagdoll(this.raw.handle);\n }\n\n setCanRagdoll(toggle: boolean): void {\n mp.game.ped.setCanRagdoll(this.raw.handle, toggle);\n }\n\n setRagdollOnCollision(toggle: boolean): void {\n mp.game.ped.setRagdollOnCollision(this.raw.handle, toggle);\n }\n}\n","import type { IVehicle } from \"../interfaces/IVehicle\";\nimport type { RGB } from \"../types\";\nimport { RageMpEntity } from \"./RageMpEntity\";\n\nexport class RageMpVehicle extends RageMpEntity implements IVehicle {\n get gear(): number {\n return this.raw.gear;\n }\n\n get rpm(): number {\n return this.raw.rpm;\n }\n\n get steeringAngle(): number {\n return this.raw.steeringAngle;\n }\n\n get isPositionFrozen(): boolean {\n return this.raw.isPositionFrozen;\n }\n\n set isPositionFrozen(value: boolean) {\n this.raw.isPositionFrozen = value;\n }\n\n get gravity(): number {\n return this.raw.gravity;\n }\n\n set gravity(value: number) {\n this.raw.gravity = value;\n }\n\n setEngineOn(toggle: boolean, instantly: boolean, noAutoTurnOn: boolean): void {\n mp.game.vehicle.setEngineOn(this.raw.handle, toggle, instantly, noAutoTurnOn);\n }\n\n isEngineRunning(): boolean {\n return mp.game.vehicle.getIsEngineRunning(this.raw.handle);\n }\n\n getEngineHealth(): number {\n return mp.game.vehicle.getEngineHealth(this.raw.handle);\n }\n\n setEngineHealth(health: number): void {\n mp.game.vehicle.setEngineHealth(this.raw.handle, health);\n }\n\n setEnginePowerMultiplier(multiplier: number): void {\n (mp.game.vehicle as any).setEnginePowerMultiplier(this.raw.handle, multiplier);\n }\n\n setEngineTorqueMultiplier(multiplier: number): void {\n (mp.game.vehicle as any).setEngineTorqueMultiplier(this.raw.handle, multiplier);\n }\n\n getBodyHealth(): number {\n return mp.game.vehicle.getBodyHealth(this.raw.handle);\n }\n\n setBodyHealth(health: number): void {\n mp.game.vehicle.setBodyHealth(this.raw.handle, health);\n }\n\n getPetrolTankHealth(): number {\n return mp.game.vehicle.getPetrolTankHealth(this.raw.handle);\n }\n\n setPetrolTankHealth(health: number): void {\n mp.game.vehicle.setPetrolTankHealth(this.raw.handle, health);\n }\n\n setDirtLevel(level: number): void {\n mp.game.vehicle.setDirtLevel(this.raw.handle, level);\n }\n\n setCustomPrimaryColour(r: number, g: number, b: number): void {\n mp.game.vehicle.setCustomPrimaryColour(this.raw.handle, r, g, b);\n }\n\n setCustomSecondaryColour(r: number, g: number, b: number): void {\n mp.game.vehicle.setCustomSecondaryColour(this.raw.handle, r, g, b);\n }\n\n getCustomPrimaryColour(): RGB {\n const c = mp.game.vehicle.getCustomPrimaryColour(this.raw.handle) as any;\n return { r: c.r ?? c[0], g: c.g ?? c[1], b: c.b ?? c[2] };\n }\n\n getCustomSecondaryColour(): RGB {\n const c = mp.game.vehicle.getCustomSecondaryColour(this.raw.handle) as any;\n return { r: c.r ?? c[0], g: c.g ?? c[1], b: c.b ?? c[2] };\n }\n\n setColours(primary: number, secondary: number): void {\n mp.game.vehicle.setColours(this.raw.handle, primary, secondary);\n }\n\n setNeonLightEnabled(index: number, toggle: boolean): void {\n mp.game.vehicle.setNeonLightEnabled(this.raw.handle, index, toggle);\n }\n\n isNeonLightEnabled(index: number): boolean {\n return mp.game.vehicle.isNeonLightEnabled(this.raw.handle, index);\n }\n\n setNeonLightsColour(r: number, g: number, b: number): void {\n mp.game.vehicle.setNeonLightsColour(this.raw.handle, r, g, b);\n }\n\n getNeonLightsColour(): RGB {\n const c = mp.game.vehicle.getNeonLightsColour(this.raw.handle) as any;\n return { r: c.r ?? c[0], g: c.g ?? c[1], b: c.b ?? c[2] };\n }\n\n setMod(modType: number, modIndex: number): void {\n mp.game.vehicle.setMod(this.raw.handle, modType, modIndex, false);\n }\n\n getMod(modType: number): number {\n return mp.game.vehicle.getMod(this.raw.handle, modType);\n }\n\n setModKit(modKit: number): void {\n mp.game.vehicle.setModKit(this.raw.handle, modKit);\n }\n\n getModKit(): number {\n return mp.game.vehicle.getModKit(this.raw.handle);\n }\n\n getNumMods(modType: number): number {\n return mp.game.vehicle.getNumMods(this.raw.handle, modType);\n }\n\n setWindowTint(tint: number): void {\n mp.game.vehicle.setWindowTint(this.raw.handle, tint);\n }\n\n getWindowTint(): number {\n return mp.game.vehicle.getWindowTint(this.raw.handle);\n }\n\n setNumberPlateText(text: string): void {\n mp.game.vehicle.setNumberPlateText(this.raw.handle, text);\n }\n\n getNumberPlateText(): string {\n return mp.game.vehicle.getNumberPlateText(this.raw.handle);\n }\n\n setNumberPlateTextIndex(index: number): void {\n mp.game.vehicle.setNumberPlateTextIndex(this.raw.handle, index);\n }\n\n getNumberPlateTextIndex(): number {\n return mp.game.vehicle.getNumberPlateTextIndex(this.raw.handle);\n }\n\n setTyreBurst(index: number, onRim: boolean, p2: number): void {\n mp.game.vehicle.setTyreBurst(this.raw.handle, index, onRim, p2);\n }\n\n isTyreBurst(wheelId: number): boolean {\n return mp.game.vehicle.isTyreBurst(this.raw.handle, wheelId, false);\n }\n\n setTyresCanBurst(toggle: boolean): void {\n mp.game.vehicle.setTyresCanBurst(this.raw.handle, toggle);\n }\n\n getTyresCanBurst(): boolean {\n return mp.game.vehicle.getTyresCanBurst(this.raw.handle);\n }\n\n setTyreFixed(index: number): void {\n mp.game.vehicle.setTyreFixed(this.raw.handle, index);\n }\n\n setDoorOpen(doorIndex: number, loose: boolean, openInstantly: boolean): void {\n mp.game.vehicle.setDoorOpen(this.raw.handle, doorIndex, loose, openInstantly);\n }\n\n setDoorShut(doorIndex: number, closeInstantly: boolean): void {\n mp.game.vehicle.setDoorShut(this.raw.handle, doorIndex, closeInstantly);\n }\n\n setDoorBroken(doorIndex: number, deleteDoor: boolean): void {\n mp.game.vehicle.setDoorBroken(this.raw.handle, doorIndex, deleteDoor);\n }\n\n isDoorDamaged(doorIndex: number): boolean {\n return mp.game.vehicle.isDoorDamaged(this.raw.handle, doorIndex);\n }\n\n isDoorFullyOpen(doorIndex: number): boolean {\n return mp.game.vehicle.isDoorFullyOpen(this.raw.handle, doorIndex);\n }\n\n getDoorAngleRatio(doorIndex: number): number {\n return mp.game.vehicle.getDoorAngleRatio(this.raw.handle, doorIndex);\n }\n\n setLight(lightIndex: number, toggle: boolean): void {\n mp.game.vehicle.setLights(this.raw.handle, lightIndex);\n }\n\n setLights(toggle: boolean): void {\n mp.game.vehicle.setLights(this.raw.handle, toggle ? 2 : 1);\n }\n\n getLightsState(): boolean {\n return mp.game.vehicle.getLightsState(this.raw.handle) as unknown as boolean;\n }\n\n setXenonHeadlights(toggle: boolean): void {\n mp.game.vehicle.toggleMod(this.raw.handle, 22, toggle);\n }\n\n isXenonHeadlightsEnabled(): boolean {\n return mp.game.vehicle.isToggleModOn(this.raw.handle, 22);\n }\n\n setExtra(extraId: number, toggle: boolean): void {\n mp.game.vehicle.setExtra(this.raw.handle, extraId, (toggle ? 0 : 1) as unknown as boolean);\n }\n\n doesExtraExist(extraId: number): boolean {\n return mp.game.vehicle.doesExtraExist(this.raw.handle, extraId);\n }\n\n isExtraTurnedOn(extraId: number): boolean {\n return mp.game.vehicle.isExtraTurnedOn(this.raw.handle, extraId);\n }\n\n isSeatFree(seatIndex: number): boolean {\n return mp.game.vehicle.isSeatFree(this.raw.handle, seatIndex, false);\n }\n\n getPedInSeat(seatIndex: number): number {\n return mp.game.vehicle.getPedInSeat(this.raw.handle, seatIndex, false);\n }\n\n getMaxNumberOfPassengers(): number {\n return mp.game.vehicle.getMaxNumberOfPassengers(this.raw.handle);\n }\n\n setFixed(): void {\n mp.game.vehicle.setFixed(this.raw.handle);\n }\n\n setUndriveable(toggle: boolean): void {\n mp.game.vehicle.setUndriveable(this.raw.handle, toggle);\n }\n\n setCanBeDamaged(toggle: boolean): void {\n (mp.game.vehicle as any).setCanBeDamaged(this.raw.handle, toggle);\n }\n\n setCanBeVisiblyDamaged(toggle: boolean): void {\n mp.game.vehicle.setCanBeVisiblyDamaged(this.raw.handle, toggle);\n }\n\n getWheelType(): number {\n return mp.game.vehicle.getWheelType(this.raw.handle);\n }\n\n setWheelType(type: number): void {\n mp.game.vehicle.setWheelType(this.raw.handle, type);\n }\n\n setLivery(livery: number): void {\n mp.game.vehicle.setLivery(this.raw.handle, livery);\n }\n\n getLivery(): number {\n return mp.game.vehicle.getLivery(this.raw.handle);\n }\n\n getLiveryCount(): number {\n return mp.game.vehicle.getLiveryCount(this.raw.handle);\n }\n\n setRoofOpened(toggle: boolean): void {\n if (toggle) {\n (mp.game.vehicle as any).openRoof(this.raw.handle);\n } else {\n (mp.game.vehicle as any).closeRoof(this.raw.handle);\n }\n }\n\n isRoofOpened(): boolean {\n return (mp.game.vehicle as any).isRoofOpened(this.raw.handle);\n }\n\n setHandling(field: string, value: number): void {\n this.raw.setHandling(field, value);\n }\n\n getHandling(field: string): number {\n return this.raw.getHandling(field);\n }\n\n resetHandling(): void {\n this.raw.resetHandling();\n }\n\n setSuspensionHeight(height: number): void {\n (mp.game.vehicle as any).setSuspensionHeight(this.raw.handle, height);\n }\n}\n","import type { IPed } from \"../interfaces/IPed\";\nimport type { Vector3 } from \"../types\";\nimport { RageMpEntity } from \"./RageMpEntity\";\n\nexport class RageMpPed extends RageMpEntity implements IPed {\n get isDynamic(): boolean {\n return this.raw.isDynamic;\n }\n\n get spawnPosition(): Vector3 {\n const p = this.raw.spawnPosition;\n return { x: p.x, y: p.y, z: p.z };\n }\n\n get weapon(): number {\n return this.raw.weapon;\n }\n\n get weaponAmmo(): number {\n return this.raw.weaponAmmo;\n }\n\n setComponentVariation(component: number, drawable: number, texture: number, palette: number): void {\n mp.game.ped.setComponentVariation(this.raw.handle, component, drawable, texture, palette);\n }\n\n setHeadBlendData(\n shapeFirst: number, shapeSecond: number, shapeThird: number,\n skinFirst: number, skinSecond: number, skinThird: number,\n shapeMix: number, skinMix: number, thirdMix: number,\n ): void {\n mp.game.ped.setHeadBlendData(this.raw.handle, shapeFirst, shapeSecond, shapeThird, skinFirst, skinSecond, skinThird, shapeMix, skinMix, thirdMix, false);\n }\n\n setHeadOverlay(overlayId: number, index: number, opacity: number, firstColor?: number, secondColor?: number): void {\n mp.game.ped.setHeadOverlay(this.raw.handle, overlayId, index, opacity);\n if (firstColor !== undefined && secondColor !== undefined) {\n (mp.game.ped as any).setHeadOverlayTint(this.raw.handle, overlayId, 1, firstColor, secondColor);\n }\n }\n\n setHairColor(color: number, highlight: number): void {\n (mp.game.ped as any).setHairTint(this.raw.handle, color, highlight);\n }\n\n setEyeColor(color: number): void {\n mp.game.ped.setEyeColor(this.raw.handle, color);\n }\n\n setFaceFeature(index: number, scale: number): void {\n mp.game.ped.setFaceFeature(this.raw.handle, index, scale);\n }\n\n setPropIndex(propId: number, drawableId: number, textureId: number, attach: boolean): void {\n mp.game.ped.setPropIndex(this.raw.handle, propId, drawableId, textureId, attach);\n }\n\n clearProp(propId: number): void {\n mp.game.ped.clearProp(this.raw.handle, propId);\n }\n\n getDrawableVariation(component: number): number {\n return mp.game.ped.getDrawableVariation(this.raw.handle, component);\n }\n\n getTextureVariation(component: number): number {\n return mp.game.ped.getTextureVariation(this.raw.handle, component);\n }\n\n getPropIndex(propId: number): number {\n return mp.game.ped.getPropIndex(this.raw.handle, propId);\n }\n\n getPropTextureIndex(propId: number): number {\n return mp.game.ped.getPropTextureIndex(this.raw.handle, propId);\n }\n\n getBonePosition(boneId: number): Vector3 {\n const p = mp.game.ped.getBoneCoords(this.raw.handle, boneId, 0, 0, 0);\n return { x: p.x, y: p.y, z: p.z };\n }\n\n getWorldPositionOfBone(boneIndex: number): Vector3 {\n const p = mp.game.entity.getWorldPositionOfBone(this.raw.handle, boneIndex);\n return { x: p.x, y: p.y, z: p.z };\n }\n\n getBoneIndex(boneName: string): number {\n return mp.game.ped.getBoneIndex(this.raw.handle, boneName as unknown as number);\n }\n\n giveWeapon(hash: number, ammo: number): void {\n (mp.game.weapon as any).giveWeaponToPed(this.raw.handle, hash, ammo, false, true);\n }\n\n removeAllWeapons(): void {\n mp.game.weapon.removeAllPedS(this.raw.handle, true);\n }\n\n getAmmoInClip(weapon: number): number {\n return mp.game.weapon.getAmmoInClip(this.raw.handle, weapon);\n }\n\n setAmmoInClip(weapon: number, ammo: number): void {\n mp.game.weapon.setAmmoInClip(this.raw.handle, weapon, ammo);\n }\n\n taskPlayAnim(\n dict: string, name: string, blendInSpeed: number, blendOutSpeed: number,\n duration: number, flag: number, playbackRate: number,\n lockX: boolean, lockY: boolean, lockZ: boolean,\n ): void {\n mp.game.task.playAnim(this.raw.handle, dict, name, blendInSpeed, blendOutSpeed, duration, flag, playbackRate, lockX, lockY, lockZ);\n }\n\n clearTasks(): void {\n (mp.game.task as any).clearTasks(this.raw.handle);\n }\n\n clearTasksImmediately(): void {\n mp.game.task.clearPedTasksImmediately(this.raw.handle);\n }\n\n canRagdoll(): boolean {\n return mp.game.ped.canRagdoll(this.raw.handle);\n }\n\n setCanRagdoll(toggle: boolean): void {\n mp.game.ped.setCanRagdoll(this.raw.handle, toggle);\n }\n\n setRagdollOnCollision(toggle: boolean): void {\n mp.game.ped.setRagdollOnCollision(this.raw.handle, toggle);\n }\n}\n","import type { IObject } from \"../interfaces/IObject\";\nimport { RageMpEntity } from \"./RageMpEntity\";\n\nexport class RageMpObject extends RageMpEntity implements IObject {\n setActivatePhysicsAsSoonAsItIsUnfrozen(toggle: boolean): void {\n mp.game.object.setActivatePhysicsAsSoonAsItIsUnfrozen(this.raw.handle, toggle);\n }\n\n hasBeenBroken(): boolean {\n return mp.game.object.hasBeenBroken(this.raw.handle, 0);\n }\n\n placeOnGroundProperly(): boolean {\n return mp.game.object.placeOnGroundProperly(this.raw.handle);\n }\n\n slide(toX: number, toY: number, toZ: number, speedX: number, speedY: number, speedZ: number): boolean {\n return mp.game.object.slide(this.raw.handle, toX, toY, toZ, speedX, speedY, speedZ, false);\n }\n\n setTargetable(targetable: boolean): void {\n mp.game.object.setTargettable(this.raw.handle, targetable);\n }\n}\n","import type { IBlip } from \"../interfaces/IBlip\";\nimport type { Vector3 } from \"../types\";\n\nexport class RageMpBlip implements IBlip {\n constructor(private readonly raw: any) {}\n\n get id(): number {\n return this.raw.id;\n }\n\n get remoteId(): number {\n return this.raw.remoteId;\n }\n\n get type(): string {\n return this.raw.type;\n }\n\n get handle(): number {\n return this.raw.handle;\n }\n\n get dimension(): number {\n return this.raw.dimension;\n }\n\n set dimension(value: number) {\n this.raw.dimension = value;\n }\n\n get position(): Vector3 {\n const p = this.raw.position;\n return { x: p.x, y: p.y, z: p.z };\n }\n\n set position(value: Vector3) {\n this.raw.position = new mp.Vector3(value.x, value.y, value.z);\n }\n\n destroy(): void {\n this.raw.destroy();\n }\n\n setSprite(sprite: number): void {\n mp.game.ui.setBlipSprite(this.raw.handle, sprite);\n }\n\n getSprite(): number {\n return mp.game.ui.getBlipSprite(this.raw.handle);\n }\n\n setColour(colour: number): void {\n mp.game.ui.setBlipColour(this.raw.handle, colour);\n }\n\n getColour(): number {\n return mp.game.ui.getBlipColour(this.raw.handle);\n }\n\n setScale(scale: number): void {\n mp.game.ui.setBlipScale(this.raw.handle, scale);\n }\n\n getScale(): number {\n return (mp.game.ui as any).getBlipScale(this.raw.handle);\n }\n\n setAlpha(alpha: number): void {\n mp.game.ui.setBlipAlpha(this.raw.handle, alpha);\n }\n\n getAlpha(): number {\n return mp.game.ui.getBlipAlpha(this.raw.handle);\n }\n\n setRotation(rotation: number): void {\n mp.game.ui.setBlipRotation(this.raw.handle, rotation);\n }\n\n getRotation(): number {\n return mp.game.ui.getBlipRotation(this.raw.handle);\n }\n\n setName(name: string): void {\n mp.game.ui.setBlipNameFromTextFile(this.raw.handle, name);\n }\n\n getName(): string {\n return (mp.game.ui as any).getBlipName(this.raw.handle);\n }\n\n setRoute(toggle: boolean): void {\n mp.game.ui.setBlipRoute(this.raw.handle, toggle);\n }\n\n setRouteColour(colour: number): void {\n mp.game.ui.setBlipRouteColour(this.raw.handle, colour);\n }\n\n setFlashes(toggle: boolean): void {\n mp.game.ui.setBlipFlashes(this.raw.handle, toggle);\n }\n\n setFlashTimer(duration: number): void {\n mp.game.ui.setBlipFlashTimer(this.raw.handle, duration);\n }\n\n setFlashInterval(interval: number): void {\n mp.game.ui.setBlipFlashInterval(this.raw.handle, interval);\n }\n\n setCategory(category: number): void {\n mp.game.ui.setBlipCategory(this.raw.handle, category);\n }\n\n setPriority(priority: number): void {\n mp.game.ui.setBlipPriority(this.raw.handle, priority);\n }\n\n setDisplay(display: number): void {\n mp.game.ui.setBlipDisplay(this.raw.handle, display);\n }\n\n setAsShortRange(toggle: boolean): void {\n mp.game.ui.setBlipAsShortRange(this.raw.handle, toggle);\n }\n\n setHighDetail(toggle: boolean): void {\n mp.game.ui.setBlipHighDetail(this.raw.handle, toggle);\n }\n\n setBright(toggle: boolean): void {\n mp.game.ui.setBlipBright(this.raw.handle, toggle);\n }\n\n setAsFriendly(toggle: boolean): void {\n mp.game.ui.setBlipAsFriendly(this.raw.handle, toggle);\n }\n\n setShowCone(toggle: boolean): void {\n mp.game.ui.setBlipShowCone(this.raw.handle, toggle, 0);\n }\n\n setShowHeadingIndicator(toggle: boolean): void {\n mp.game.ui.showHeadingIndicatorOnBlip(this.raw.handle, toggle);\n }\n\n setSecondaryColour(r: number, g: number, b: number): void {\n mp.game.ui.setBlipSecondaryColour(this.raw.handle, r, g, b);\n }\n\n pulse(): void {\n mp.game.ui.pulseBlip(this.raw.handle);\n }\n\n setFade(opacity: number, duration: number): void {\n mp.game.ui.setBlipFade(this.raw.handle, opacity, duration);\n }\n}\n","import type { ICheckpoint } from \"../interfaces/ICheckpoint\";\nimport { RageMpEntity } from \"./RageMpEntity\";\n\nexport class RageMpCheckpoint extends RageMpEntity implements ICheckpoint {\n get visible(): boolean {\n return this.raw.visible;\n }\n\n set visible(value: boolean) {\n this.raw.visible = value;\n }\n}\n","import type { IColshape } from \"../interfaces/IColshape\";\nimport { RageMpEntity } from \"./RageMpEntity\";\n\nexport class RageMpColshape extends RageMpEntity implements IColshape {\n get triggered(): boolean {\n return this.raw.triggered;\n }\n\n set triggered(value: boolean) {\n this.raw.triggered = value;\n }\n}\n","import type { ICamera } from \"../interfaces/ICamera\";\nimport type { Vector3 } from \"../types\";\n\nexport class RageMpCamera implements ICamera {\n constructor(private readonly raw: any) {}\n\n get handle(): number {\n return this.raw.handle;\n }\n\n getCoord(): Vector3 {\n const p = mp.game.cam.getCoord(this.raw.handle);\n return { x: p.x, y: p.y, z: p.z };\n }\n\n setCoord(x: number, y: number, z: number): void {\n mp.game.cam.setCoord(this.raw.handle, x, y, z);\n }\n\n getRot(): Vector3 {\n const r = mp.game.cam.getRot(this.raw.handle, 2);\n return { x: r.x, y: r.y, z: r.z };\n }\n\n setRot(x: number, y: number, z: number, rotationOrder: number): void {\n mp.game.cam.setRot(this.raw.handle, x, y, z, rotationOrder);\n }\n\n getFov(): number {\n return mp.game.cam.getFov(this.raw.handle);\n }\n\n setFov(fov: number): void {\n mp.game.cam.setFov(this.raw.handle, fov);\n }\n\n isActive(): boolean {\n return mp.game.cam.isActive(this.raw.handle);\n }\n\n setActive(toggle: boolean): void {\n mp.game.cam.setActive(this.raw.handle, toggle);\n }\n\n setActiveWithInterp(camFrom: number, duration: number, easeLocation: number, easeRotation: number): void {\n mp.game.cam.setActiveWithInterp(this.raw.handle, camFrom, duration, easeLocation, easeRotation);\n }\n\n pointAtCoord(x: number, y: number, z: number): void {\n mp.game.cam.pointAtCoord(this.raw.handle, x, y, z);\n }\n\n pointAt(entity: number): void {\n mp.game.cam.pointAtEntity(this.raw.handle, entity, 0, 0, 0, true);\n }\n\n stopPointing(): void {\n mp.game.cam.stopPointing(this.raw.handle);\n }\n\n shake(type: string, amplitude: number): void {\n mp.game.cam.shake(this.raw.handle, type, amplitude);\n }\n\n isShaking(): boolean {\n return mp.game.cam.isShaking(this.raw.handle);\n }\n\n setShakeAmplitude(amplitude: number): void {\n mp.game.cam.setShakeAmplitude(this.raw.handle, amplitude);\n }\n\n stopShaking(p0: boolean): void {\n mp.game.cam.stopShaking(this.raw.handle, p0);\n }\n\n isRendering(): boolean {\n return mp.game.cam.isRendering(this.raw.handle);\n }\n\n isInterpolating(): boolean {\n return mp.game.cam.isInterpolating(this.raw.handle);\n }\n\n setFarClip(farClip: number): void {\n mp.game.cam.setFarClip(this.raw.handle, farClip);\n }\n\n setNearClip(nearClip: number): void {\n mp.game.cam.setNearClip(this.raw.handle, nearClip);\n }\n\n setFarDof(farDof: number): void {\n mp.game.cam.setFarDof(this.raw.handle, farDof);\n }\n\n setNearDof(nearDof: number): void {\n mp.game.cam.setNearDof(this.raw.handle, nearDof);\n }\n\n setDofStrength(strength: number): void {\n mp.game.cam.setDofStrength(this.raw.handle, strength);\n }\n\n setUseShallowDofMode(toggle: boolean): void {\n mp.game.cam.setUseShallowDofMode(this.raw.handle, toggle);\n }\n\n setMotionBlurStrength(strength: number): void {\n mp.game.cam.setMotionBlurStrength(this.raw.handle, strength);\n }\n\n attachTo(entity: number, xOffset: number, yOffset: number, zOffset: number, isRelative: boolean): void {\n mp.game.cam.attachToEntity(this.raw.handle, entity, xOffset, yOffset, zOffset, isRelative);\n }\n\n detach(): void {\n mp.game.cam.detach(this.raw.handle);\n }\n\n destroy(): void {\n mp.game.cam.destroy(this.raw.handle, false);\n }\n}\n","import type { IBrowser } from \"../interfaces/IBrowser\";\n\nexport class RageMpBrowser implements IBrowser {\n constructor(private readonly raw: any) {}\n\n get active(): boolean {\n return this.raw.active;\n }\n\n set active(value: boolean) {\n this.raw.active = value;\n }\n\n get url(): string {\n return this.raw.url;\n }\n\n set url(value: string) {\n this.raw.url = value;\n }\n\n get inputEnabled(): boolean {\n return this.raw.inputEnabled;\n }\n\n set inputEnabled(value: boolean) {\n this.raw.inputEnabled = value;\n }\n\n get orderId(): number {\n return this.raw.orderId;\n }\n\n set orderId(value: number) {\n this.raw.orderId = value;\n }\n\n destroy(): void {\n this.raw.destroy();\n }\n\n execute(code: string): void {\n this.raw.execute(code);\n }\n\n executeCached(code: string): void {\n this.raw.executeCached(code);\n }\n\n call(eventName: string, ...args: unknown[]): void {\n this.raw.call(eventName, ...args);\n }\n\n callProc(procName: string, ...args: unknown[]): Promise<unknown> {\n return this.raw.callProc(procName, ...args);\n }\n\n reload(ignoreCache: boolean): void {\n this.raw.reload(ignoreCache);\n }\n\n sendMouseMoveEvent(x: number, y: number): void {\n this.raw.sendMouseMoveEvent(x, y);\n }\n\n sendMouseClickEvent(x: number, y: number, button: number, isUp: boolean): void {\n this.raw.sendMouseClickEvent(x, y, button, isUp);\n }\n}\n","import type { ITextLabel } from \"../interfaces/ITextLabel\";\nimport type { RGBA } from \"../types\";\nimport { RageMpEntity } from \"./RageMpEntity\";\n\nexport class RageMpTextLabel extends RageMpEntity implements ITextLabel {\n get color(): RGBA {\n return this.raw.color;\n }\n\n set color(value: RGBA) {\n this.raw.color = value;\n }\n\n get drawDistance(): number {\n return this.raw.drawDistance;\n }\n\n set drawDistance(value: number) {\n this.raw.drawDistance = value;\n }\n\n get los(): boolean {\n return this.raw.los;\n }\n\n set los(value: boolean) {\n this.raw.los = value;\n }\n\n get text(): string {\n return this.raw.text;\n }\n\n set text(value: string) {\n this.raw.text = value;\n }\n}\n","import type { IMarker } from \"../interfaces/IMarker\";\nimport { RageMpEntity } from \"./RageMpEntity\";\n\nexport class RageMpMarker extends RageMpEntity implements IMarker {}\n","import type { IPickup } from \"../interfaces/IPickup\";\nimport { RageMpEntity } from \"./RageMpEntity\";\n\nexport class RageMpPickup extends RageMpEntity implements IPickup {}\n","import type { IEvents } from \"../interfaces/IEvents\";\n\nexport class RageMpEvents implements IEvents {\n add(eventNameOrEvents: string | Record<string, (...args: unknown[]) => void>, callback?: (...args: unknown[]) => void): void {\n if (typeof eventNameOrEvents === \"string\") {\n mp.events.add(eventNameOrEvents, callback!);\n } else {\n for (const [name, cb] of Object.entries(eventNameOrEvents)) {\n mp.events.add(name, cb);\n }\n }\n }\n\n remove(eventName: string, callback?: (...args: unknown[]) => void): void {\n mp.events.remove(eventName, callback);\n }\n\n call(eventName: string, ...args: unknown[]): void {\n mp.events.call(eventName, ...args);\n }\n\n callRemote(eventName: string, ...args: unknown[]): void {\n mp.events.callRemote(eventName, ...args);\n }\n\n callRemoteProc(procName: string, ...args: unknown[]): Promise<unknown> {\n return mp.events.callRemoteProc(procName, ...args);\n }\n\n callRemoteUnreliable(eventName: string, ...args: unknown[]): void {\n mp.events.callRemoteUnreliable(eventName, ...args);\n }\n\n addProc(procName: string, callback: (...args: unknown[]) => unknown): void {\n mp.events.addProc(procName, callback);\n }\n\n addDataHandler(key: string, callback: (entity: unknown, value: unknown, oldValue: unknown) => void): void {\n mp.events.addDataHandler(key, callback);\n }\n\n cancelPendingProc(procName: string): void {\n mp.events.cancelPendingProc(procName);\n }\n\n hasPendingProc(procName: string): boolean {\n return mp.events.hasPendingProc(procName);\n }\n}\n","import type { IGui, IGuiChat, IGuiCursor } from \"../interfaces/IGui\";\nimport type { Array2d } from \"../types\";\n\nclass RageMpGuiChat implements IGuiChat {\n get colors(): boolean {\n return mp.gui.chat.colors;\n }\n\n set colors(value: boolean) {\n mp.gui.chat.colors = value;\n }\n\n get safeMode(): boolean {\n return mp.gui.chat.safeMode;\n }\n\n set safeMode(value: boolean) {\n mp.gui.chat.safeMode = value;\n }\n\n activate(toggle: boolean): void {\n mp.gui.chat.activate(toggle);\n }\n\n push(text: string): void {\n mp.gui.chat.push(text);\n }\n\n show(toggle: boolean): void {\n mp.gui.chat.show(toggle);\n }\n}\n\nclass RageMpGuiCursor implements IGuiCursor {\n get position(): Array2d {\n return mp.gui.cursor.position;\n }\n\n set position(value: Array2d) {\n (mp.gui.cursor as any).position = value;\n }\n\n get visible(): boolean {\n return mp.gui.cursor.visible;\n }\n\n set visible(value: boolean) {\n mp.gui.cursor.visible = value;\n }\n\n show(freezeControls: boolean, toggle: boolean): void {\n mp.gui.cursor.show(freezeControls, toggle);\n }\n}\n\nexport class RageMpGui implements IGui {\n readonly chat: IGuiChat = new RageMpGuiChat();\n readonly cursor: IGuiCursor = new RageMpGuiCursor();\n\n get isGpuRenderingEnabled(): boolean {\n return mp.gui.isGpuRenderingEnabled;\n }\n\n takeScreenshot(name: string, type: number, quality: number, compressionQuality: number): void {\n mp.gui.takeScreenshot(name, type, quality, compressionQuality);\n }\n\n execute(code: string): void {\n mp.gui.execute(code);\n }\n}\n","import type { IKeys } from \"../interfaces/IKeys\";\n\nexport class RageMpKeys implements IKeys {\n bind(keyCode: number, keyHold: boolean, callback: () => void): void {\n mp.keys.bind(keyCode, keyHold, callback);\n }\n\n unbind(keyCode: number, keyHold: boolean, callback?: () => void): void {\n mp.keys.unbind(keyCode, keyHold, callback);\n }\n\n isUp(keyCode: number): boolean {\n return mp.keys.isUp(keyCode);\n }\n\n isDown(keyCode: number): boolean {\n return mp.keys.isDown(keyCode);\n }\n}\n","import type { IStorage } from \"../interfaces/IStorage\";\n\nexport class RageMpStorage implements IStorage {\n get data(): Record<string, unknown> {\n return mp.storage.data as Record<string, unknown>;\n }\n\n set data(value: Record<string, unknown>) {\n mp.storage.data = value;\n }\n\n get sessionData(): Record<string, unknown> {\n return mp.storage.sessionData as Record<string, unknown>;\n }\n\n set sessionData(value: Record<string, unknown>) {\n mp.storage.sessionData = value;\n }\n\n flush(): void {\n mp.storage.flush();\n }\n}\n","import type { IVoiceChat } from \"../interfaces/IVoiceChat\";\n\nexport class RageMpVoiceChat implements IVoiceChat {\n get isAllowed(): boolean {\n return mp.voiceChat.isAllowed;\n }\n\n get lastVad(): number {\n return mp.voiceChat.lastVad;\n }\n\n get muted(): boolean {\n return mp.voiceChat.muted;\n }\n\n set muted(value: boolean) {\n mp.voiceChat.muted = value;\n }\n\n get minVad(): number {\n return mp.voiceChat.minVad;\n }\n\n set minVad(value: number) {\n mp.voiceChat.minVad = value;\n }\n\n get advancedNoiseSuppression(): boolean {\n return mp.voiceChat.advancedNoiseSuppression;\n }\n\n set advancedNoiseSuppression(value: boolean) {\n mp.voiceChat.advancedNoiseSuppression = value;\n }\n\n get networkOptimisations(): boolean {\n return mp.voiceChat.networkOptimisations;\n }\n\n set networkOptimisations(value: boolean) {\n mp.voiceChat.networkOptimisations = value;\n }\n\n get bitrate(): number {\n return mp.voiceChat.bitrate;\n }\n\n set bitrate(value: number) {\n mp.voiceChat.bitrate = value;\n }\n\n get defaultVolume(): number {\n return mp.voiceChat.defaultVolume;\n }\n\n set defaultVolume(value: number) {\n mp.voiceChat.defaultVolume = value;\n }\n\n get gameOutputEnabled(): boolean {\n return mp.voiceChat.gameOutputEnabled;\n }\n\n set gameOutputEnabled(value: boolean) {\n mp.voiceChat.gameOutputEnabled = value;\n }\n\n get gameOutputCategory(): string {\n return mp.voiceChat.gameOutputCategory as unknown as string;\n }\n\n set gameOutputCategory(value: string) {\n mp.voiceChat.gameOutputCategory = value as unknown as number;\n }\n\n getPreprocessingParam(param: string): unknown {\n return mp.voiceChat.getPreprocessingParam(param as unknown as number);\n }\n\n setPreprocessingParam(param: string, value: unknown): void {\n mp.voiceChat.setPreprocessingParam(param as unknown as number, value);\n }\n\n cleanupAndReload(force: boolean, clearTemporary: boolean): void {\n mp.voiceChat.cleanupAndReload(force, clearTemporary, false);\n }\n}\n","import type { INametags } from \"../interfaces/INametags\";\nimport type { NametagsStyle } from \"../types\";\n\nexport class RageMpNametags implements INametags {\n get enabled(): boolean {\n return mp.nametags.enabled;\n }\n\n set enabled(value: boolean) {\n mp.nametags.enabled = value;\n }\n\n set(style: NametagsStyle): void {\n mp.nametags.set({\n ...style,\n veh_offset: style.vehOffset,\n } as any);\n }\n\n useScreen2dCoords(toggle: boolean): void {\n mp.nametags.useScreen2dCoords(toggle);\n }\n\n orderByDistance(toggle: boolean): void {\n mp.nametags.orderByDistance(toggle);\n }\n}\n","import type { IRaycasting } from \"../interfaces/IRaycasting\";\nimport type { RaycastResult, Vector3 } from \"../types\";\n\nexport class RageMpRaycasting implements IRaycasting {\n testPointToPoint(startPos: Vector3, endPos: Vector3, ignoreEntity: number, flags: number): RaycastResult {\n const result = mp.raycasting.testPointToPoint(\n new mp.Vector3(startPos.x, startPos.y, startPos.z),\n new mp.Vector3(endPos.x, endPos.y, endPos.z),\n ignoreEntity as unknown as EntityMp | undefined,\n flags,\n );\n return {\n entity: result.entity as unknown as number,\n position: { x: result.position.x, y: result.position.y, z: result.position.z },\n surfaceNormal: { x: result.surfaceNormal.x, y: result.surfaceNormal.y, z: result.surfaceNormal.z },\n };\n }\n\n async testPointToPointAsync(startPos: Vector3, endPos: Vector3, ignoreEntity: number, flags: number): Promise<RaycastResult> {\n const result = await mp.raycasting.testPointToPointAsync(\n new mp.Vector3(startPos.x, startPos.y, startPos.z),\n new mp.Vector3(endPos.x, endPos.y, endPos.z),\n ignoreEntity as unknown as EntityMp | undefined,\n flags,\n );\n return {\n entity: result.entity as unknown as number,\n position: { x: result.position.x, y: result.position.y, z: result.position.z },\n surfaceNormal: { x: result.surfaceNormal.x, y: result.surfaceNormal.y, z: result.surfaceNormal.z },\n };\n }\n\n testCapsule(startPos: Vector3, endPos: Vector3, radius: number, ignoreEntity: number, flags: number): RaycastResult {\n const result = mp.raycasting.testCapsule(\n new mp.Vector3(startPos.x, startPos.y, startPos.z),\n new mp.Vector3(endPos.x, endPos.y, endPos.z),\n radius,\n ignoreEntity as unknown as EntityMp | undefined,\n flags,\n );\n return {\n entity: result.entity as unknown as number,\n position: { x: result.position.x, y: result.position.y, z: result.position.z },\n surfaceNormal: { x: result.surfaceNormal.x, y: result.surfaceNormal.y, z: result.surfaceNormal.z },\n };\n }\n}\n","import type { IConsole } from \"../interfaces/IConsole\";\n\nexport class RageMpConsole implements IConsole {\n get verbosity(): number {\n return mp.console.verbosity as unknown as number;\n }\n\n set verbosity(value: number) {\n mp.console.verbosity = value as unknown as string;\n }\n\n logInfo(message: string): void {\n mp.console.logInfo(message);\n }\n\n logWarning(message: string): void {\n mp.console.logWarning(message);\n }\n\n logError(message: string): void {\n mp.console.logError(message);\n }\n\n logFatal(message: string): void {\n mp.console.logFatal(message);\n }\n\n clear(): void {\n mp.console.clear();\n }\n\n reset(): void {\n mp.console.reset();\n }\n}\n","import type { IDiscord } from \"../interfaces/IDiscord\";\n\nexport class RageMpDiscord implements IDiscord {\n update(details: string, state: string): void {\n mp.discord.update(details, state);\n }\n\n requestOAuth2(appId: string, scopes: string): Promise<string> {\n return mp.discord.requestOAuth2(appId);\n }\n}\n","import type { ISystem } from \"../interfaces/ISystem\";\nimport type { SystemNotifyArgs } from \"../types\";\n\nexport class RageMpSystem implements ISystem {\n get isFullscreen(): boolean {\n return mp.system.isFullscreen;\n }\n\n get isFocused(): boolean {\n return mp.system.isFocused;\n }\n\n notify(args: SystemNotifyArgs): void {\n mp.system.notify(args);\n }\n}\n","import type { IUser, IUserPreferences } from \"../interfaces/IUser\";\n\nclass RageMpUserPreferences implements IUserPreferences {\n get lowQualityAssets(): boolean {\n return mp.user.preferences.lowQualityAssets;\n }\n\n get language(): string {\n return mp.user.preferences.language;\n }\n\n get serverAddress(): string {\n return mp.user.preferences.serverAddress;\n }\n}\n\nexport class RageMpUser implements IUser {\n readonly preferences: IUserPreferences = new RageMpUserPreferences();\n}\n","import type { INativesBridge } from \"../interfaces/INativesBridge\";\n\nexport class RageMpNativesBridge implements INativesBridge {\n invoke(namespace: string, name: string, ...args: unknown[]): unknown {\n const ns = (mp.game as any)[namespace];\n if (!ns) {\n throw new Error(`Native namespace \"${namespace}\" not found`);\n }\n const fn = ns[name];\n if (typeof fn !== \"function\") {\n throw new Error(`Native \"${namespace}.${name}\" is not a function`);\n }\n return fn(...args);\n }\n}\n","import type { IEngine } from \"../interfaces/IEngine\";\nimport type { IEntityPool, ICreatableEntityPool } from \"../interfaces/IEntity\";\nimport type { IPlayer } from \"../interfaces/IPlayer\";\nimport type { IVehicle } from \"../interfaces/IVehicle\";\nimport type { IPed } from \"../interfaces/IPed\";\nimport type { IObject } from \"../interfaces/IObject\";\nimport type { IBlip } from \"../interfaces/IBlip\";\nimport type { ICheckpoint } from \"../interfaces/ICheckpoint\";\nimport type { IColshape } from \"../interfaces/IColshape\";\nimport type { ICamera } from \"../interfaces/ICamera\";\nimport type { IBrowser } from \"../interfaces/IBrowser\";\nimport type { ITextLabel } from \"../interfaces/ITextLabel\";\nimport type { IMarker } from \"../interfaces/IMarker\";\nimport type { IPickup } from \"../interfaces/IPickup\";\nimport type { IEvents } from \"../interfaces/IEvents\";\nimport type { IGui } from \"../interfaces/IGui\";\nimport type { IKeys } from \"../interfaces/IKeys\";\nimport type { IStorage } from \"../interfaces/IStorage\";\nimport type { IVoiceChat } from \"../interfaces/IVoiceChat\";\nimport type { INametags } from \"../interfaces/INametags\";\nimport type { IRaycasting } from \"../interfaces/IRaycasting\";\nimport type { IConsole } from \"../interfaces/IConsole\";\nimport type { IDiscord } from \"../interfaces/IDiscord\";\nimport type { ISystem } from \"../interfaces/ISystem\";\nimport type { IUser } from \"../interfaces/IUser\";\nimport type { INativesBridge } from \"../interfaces/INativesBridge\";\nimport type {\n BlipCreateOpts,\n BrowserCreateOpts,\n CameraCreateOpts,\n CheckpointCreateOpts,\n ColshapeCreateOpts,\n PedCreateOpts,\n TextLabelCreateOpts,\n} from \"../types\";\n\nimport { RageMpEntityPool, RageMpCreatablePool } from \"./RageMpEntityPool\";\nimport { RageMpPlayer } from \"./RageMpPlayer\";\nimport { RageMpVehicle } from \"./RageMpVehicle\";\nimport { RageMpPed } from \"./RageMpPed\";\nimport { RageMpObject } from \"./RageMpObject\";\nimport { RageMpBlip } from \"./RageMpBlip\";\nimport { RageMpCheckpoint } from \"./RageMpCheckpoint\";\nimport { RageMpColshape } from \"./RageMpColshape\";\nimport { RageMpCamera } from \"./RageMpCamera\";\nimport { RageMpBrowser } from \"./RageMpBrowser\";\nimport { RageMpTextLabel } from \"./RageMpTextLabel\";\nimport { RageMpMarker } from \"./RageMpMarker\";\nimport { RageMpPickup } from \"./RageMpPickup\";\nimport { RageMpEvents } from \"./RageMpEvents\";\nimport { RageMpGui } from \"./RageMpGui\";\nimport { RageMpKeys } from \"./RageMpKeys\";\nimport { RageMpStorage } from \"./RageMpStorage\";\nimport { RageMpVoiceChat } from \"./RageMpVoiceChat\";\nimport { RageMpNametags } from \"./RageMpNametags\";\nimport { RageMpRaycasting } from \"./RageMpRaycasting\";\nimport { RageMpConsole } from \"./RageMpConsole\";\nimport { RageMpDiscord } from \"./RageMpDiscord\";\nimport { RageMpSystem } from \"./RageMpSystem\";\nimport { RageMpUser } from \"./RageMpUser\";\nimport { RageMpNativesBridge } from \"./RageMpNativesBridge\";\n\nexport class RageMpEngine implements IEngine {\n readonly players: IEntityPool<IPlayer>;\n readonly vehicles: IEntityPool<IVehicle>;\n readonly peds: ICreatableEntityPool<IPed, PedCreateOpts>;\n readonly objects: IEntityPool<IObject>;\n readonly blips: ICreatableEntityPool<IBlip, BlipCreateOpts>;\n readonly checkpoints: ICreatableEntityPool<ICheckpoint, CheckpointCreateOpts>;\n readonly colshapes: ICreatableEntityPool<IColshape, ColshapeCreateOpts>;\n readonly cameras: ICreatableEntityPool<ICamera, CameraCreateOpts>;\n readonly browsers: ICreatableEntityPool<IBrowser, BrowserCreateOpts>;\n readonly labels: ICreatableEntityPool<ITextLabel, TextLabelCreateOpts>;\n readonly markers: IEntityPool<IMarker>;\n readonly pickups: IEntityPool<IPickup>;\n readonly events: IEvents;\n readonly gui: IGui;\n readonly keys: IKeys;\n readonly storage: IStorage;\n readonly voiceChat: IVoiceChat;\n readonly nametags: INametags;\n readonly raycasting: IRaycasting;\n readonly console: IConsole;\n readonly discord: IDiscord;\n readonly system: ISystem;\n readonly user: IUser;\n readonly natives: INativesBridge;\n\n private _localPlayer: RageMpPlayer | null = null;\n\n constructor() {\n this.players = new RageMpEntityPool(mp.players, (raw: any) => new RageMpPlayer(raw));\n this.vehicles = new RageMpEntityPool(mp.vehicles, (raw: any) => new RageMpVehicle(raw));\n this.objects = new RageMpEntityPool(mp.objects, (raw: any) => new RageMpObject(raw));\n this.markers = new RageMpEntityPool(mp.markers, (raw: any) => new RageMpMarker(raw));\n this.pickups = new RageMpEntityPool(mp.pickups, (raw: any) => new RageMpPickup(raw));\n\n this.peds = new RageMpCreatablePool(\n mp.peds,\n (raw: any) => new RageMpPed(raw),\n (opts: PedCreateOpts) =>\n mp.peds.new(\n opts.model,\n new mp.Vector3(opts.position.x, opts.position.y, opts.position.z),\n opts.heading,\n opts.dimension ?? 0,\n ),\n );\n\n this.blips = new RageMpCreatablePool(\n mp.blips,\n (raw: any) => new RageMpBlip(raw),\n (opts: BlipCreateOpts) =>\n mp.blips.new(\n opts.sprite,\n new mp.Vector3(opts.position.x, opts.position.y, opts.position.z),\n {\n name: opts.name,\n scale: opts.scale,\n color: opts.color,\n alpha: opts.alpha,\n drawDistance: opts.drawDistance,\n shortRange: opts.shortRange,\n rotation: opts.rotation,\n dimension: opts.dimension,\n },\n ),\n );\n\n this.checkpoints = new RageMpCreatablePool(\n mp.checkpoints,\n (raw: any) => new RageMpCheckpoint(raw),\n (opts: CheckpointCreateOpts) =>\n mp.checkpoints.new(\n opts.type,\n new mp.Vector3(opts.position.x, opts.position.y, opts.position.z),\n opts.radius,\n {\n direction: opts.direction ? new mp.Vector3(opts.direction.x, opts.direction.y, opts.direction.z) : undefined,\n color: opts.color ? [opts.color.r, opts.color.g, opts.color.b, opts.color.a] : undefined,\n visible: opts.visible,\n dimension: opts.dimension,\n },\n ),\n );\n\n this.colshapes = new RageMpCreatablePool(\n mp.colshapes,\n (raw: any) => new RageMpColshape(raw),\n (opts: ColshapeCreateOpts) => {\n switch (opts.shape) {\n case \"sphere\":\n return mp.colshapes.newSphere(opts.x, opts.y, opts.z, opts.radius!, opts.dimension);\n case \"tube\":\n return mp.colshapes.newTube(opts.x, opts.y, opts.z, opts.radius!, opts.height!, opts.dimension);\n case \"circle\":\n return mp.colshapes.newCircle(opts.x, opts.y, opts.radius!, opts.dimension);\n case \"cuboid\":\n return mp.colshapes.newCuboid(opts.x, opts.y, opts.z, opts.width!, opts.height!, opts.depth!, opts.dimension);\n case \"rectangle\":\n return mp.colshapes.newRectangle(opts.x, opts.y, opts.width!, opts.height!, opts.dimension);\n case \"polygon\":\n default:\n return mp.colshapes.newSphere(opts.x, opts.y, opts.z, opts.radius ?? 1, opts.dimension);\n }\n },\n );\n\n this.cameras = new RageMpCreatablePool(\n mp.cameras,\n (raw: any) => new RageMpCamera(raw),\n (opts: CameraCreateOpts) =>\n mp.cameras.new(\n opts.name,\n opts.position ? new mp.Vector3(opts.position.x, opts.position.y, opts.position.z) : undefined,\n opts.rotation ? new mp.Vector3(opts.rotation.x, opts.rotation.y, opts.rotation.z) : undefined,\n opts.fov,\n ),\n );\n\n this.browsers = new RageMpCreatablePool(\n mp.browsers,\n (raw: any) => new RageMpBrowser(raw),\n (opts: BrowserCreateOpts) => mp.browsers.new(opts.url),\n );\n\n this.labels = new RageMpCreatablePool(\n mp.labels,\n (raw: any) => new RageMpTextLabel(raw),\n (opts: TextLabelCreateOpts) =>\n mp.labels.new(\n opts.text,\n new mp.Vector3(opts.position.x, opts.position.y, opts.position.z),\n {\n font: opts.font,\n color: opts.color ? [opts.color.r, opts.color.g, opts.color.b, opts.color.a] : undefined,\n drawDistance: opts.drawDistance,\n los: opts.los,\n dimension: opts.dimension,\n },\n ),\n );\n\n this.events = new RageMpEvents();\n this.gui = new RageMpGui();\n this.keys = new RageMpKeys();\n this.storage = new RageMpStorage();\n this.voiceChat = new RageMpVoiceChat();\n this.nametags = new RageMpNametags();\n this.raycasting = new RageMpRaycasting();\n this.console = new RageMpConsole();\n this.discord = new RageMpDiscord();\n this.system = new RageMpSystem();\n this.user = new RageMpUser();\n this.natives = new RageMpNativesBridge();\n }\n\n get localPlayer(): IPlayer {\n if (!this._localPlayer) {\n this._localPlayer = new RageMpPlayer(mp.players.local);\n }\n return this._localPlayer;\n }\n}\n"]}
1
+ {"version":3,"sources":["/Users/stefan/Repos/RageEngineBridge/dist/ragemp.cjs","../src/ragemp/RageMpEntityPool.ts","../src/ragemp/RageMpEntity.ts","../src/ragemp/RageMpPlayer.ts","../src/ragemp/RageMpVehicle.ts","../src/ragemp/RageMpPed.ts","../src/ragemp/RageMpObject.ts","../src/ragemp/RageMpBlip.ts","../src/ragemp/RageMpCheckpoint.ts","../src/ragemp/RageMpColshape.ts","../src/ragemp/RageMpCamera.ts","../src/ragemp/RageMpBrowser.ts","../src/ragemp/RageMpTextLabel.ts","../src/ragemp/RageMpMarker.ts","../src/ragemp/RageMpPickup.ts","../src/ragemp/RageMpEvents.ts","../src/ragemp/RageMpGui.ts","../src/ragemp/RageMpKeys.ts","../src/ragemp/RageMpStorage.ts","../src/ragemp/RageMpVoiceChat.ts","../src/ragemp/RageMpNametags.ts","../src/ragemp/RageMpRaycasting.ts","../src/ragemp/RageMpConsole.ts","../src/ragemp/RageMpDiscord.ts","../src/ragemp/RageMpSystem.ts","../src/ragemp/RageMpUser.ts","../src/ragemp/RageMpNativesBridge.ts","../src/ragemp/RageMpWeapon.ts","../src/ragemp/RageMpStreaming.ts","../src/ragemp/RageMpWorld.ts","../src/ragemp/RageMpGameplay.ts","../src/ragemp/RageMpHUD.ts","../src/ragemp/RageMpAudio.ts","../src/ragemp/RageMpGraphics.ts","../src/ragemp/RageMpGameplayCamera.ts","../src/ragemp/RageMpControls.ts","../src/ragemp/RageMpEngine.ts"],"names":[],"mappings":"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","file":"/Users/stefan/Repos/RageEngineBridge/dist/ragemp.cjs","sourcesContent":[null,"import type { IEntityPool, ICreatableEntityPool } from \"../interfaces/IEntity\";\nimport type { Vector3 } from \"../types\";\n\nexport class RageMpEntityPool<T, Raw> implements IEntityPool<T> {\n private cache = new WeakMap<object, T>();\n\n constructor(\n protected readonly pool: RageMpPool<Raw>,\n protected readonly wrap: (raw: Raw) => T,\n ) {}\n\n protected getWrapped(raw: Raw): T {\n const key = raw as unknown as object;\n let wrapped = this.cache.get(key);\n if (!wrapped) {\n wrapped = this.wrap(raw);\n this.cache.set(key, wrapped);\n }\n return wrapped;\n }\n\n get length(): number {\n return this.pool.length;\n }\n\n get size(): number {\n return this.pool.length;\n }\n\n get streamed(): T[] {\n return this.pool.streamed.map((raw) => this.getWrapped(raw));\n }\n\n at(id: number): T | undefined {\n const raw = this.pool.at(id);\n return raw ? this.getWrapped(raw) : undefined;\n }\n\n atRemoteId(remoteId: number): T | undefined {\n const raw = this.pool.atRemoteId(remoteId);\n return raw ? this.getWrapped(raw) : undefined;\n }\n\n atHandle(handle: number): T | undefined {\n const raw = this.pool.atHandle(handle);\n return raw ? this.getWrapped(raw) : undefined;\n }\n\n exists(entity: T): boolean {\n return this.pool.exists(entity as unknown as Raw);\n }\n\n forEach(callback: (entity: T) => void): void {\n this.pool.forEach((raw) => callback(this.getWrapped(raw)));\n }\n\n forEachInRange(position: Vector3, range: number, callbackOrDimension: ((entity: T) => void) | number, callback?: (entity: T) => void): void {\n const pos = new mp.Vector3(position.x, position.y, position.z);\n if (typeof callbackOrDimension === \"function\") {\n this.pool.forEachInRange(pos, range, (raw: Raw) => callbackOrDimension(this.getWrapped(raw)));\n } else {\n this.pool.forEachInRange(pos, range, callbackOrDimension, (raw: Raw) => callback!(this.getWrapped(raw)));\n }\n }\n\n forEachInStreamRange(callback: (entity: T) => void): void {\n this.pool.forEachInStreamRange((raw) => callback(this.getWrapped(raw)));\n }\n\n forEachInDimension(dimension: number, callback: (entity: T) => void): void {\n this.pool.forEachInDimension(dimension, (raw) => callback(this.getWrapped(raw)));\n }\n\n getClosest(position: Vector3): T | undefined {\n let closest: T | undefined;\n let closestDist = Infinity;\n this.pool.forEach((raw) => {\n const wrapped = this.getWrapped(raw);\n const entity = wrapped as unknown as { position: Vector3 };\n if (entity.position) {\n const dx = entity.position.x - position.x;\n const dy = entity.position.y - position.y;\n const dz = entity.position.z - position.z;\n const dist = dx * dx + dy * dy + dz * dz;\n if (dist < closestDist) {\n closestDist = dist;\n closest = wrapped;\n }\n }\n });\n return closest;\n }\n\n toArray(): T[] {\n return this.pool.toArray().map((raw) => this.getWrapped(raw));\n }\n}\n\nexport class RageMpCreatablePool<T, Raw, Opts> extends RageMpEntityPool<T, Raw> implements ICreatableEntityPool<T, Opts> {\n constructor(\n pool: RageMpPool<Raw>,\n wrap: (raw: Raw) => T,\n private readonly createFn: (opts: Opts) => Raw,\n ) {\n super(pool, wrap);\n }\n\n create(opts: Opts): T {\n const raw = this.createFn(opts);\n return this.getWrapped(raw);\n }\n}\n\ninterface RageMpPool<T> {\n length: number;\n streamed: T[];\n at(id: number): T;\n atRemoteId(remoteId: number): T;\n atHandle(handle: number): T;\n exists(entity: T): boolean;\n forEach(callback: (entity: T) => void): void;\n forEachInRange(position: any, range: number, callback: (entity: T) => void): void;\n forEachInRange(position: any, range: number, dimension: number, callback: (entity: T) => void): void;\n forEachInStreamRange(callback: (entity: T) => void): void;\n forEachInDimension(dimension: number, callback: (entity: T) => void): void;\n toArray(): T[];\n}\n","import type { IEntity } from \"../interfaces/IEntity\";\nimport type { EntityType, Quaternion, Vector3 } from \"../types\";\n\nexport class RageMpEntity implements IEntity {\n constructor(protected readonly raw: any) {}\n\n get id(): number {\n return this.raw.id;\n }\n\n get remoteId(): number {\n return this.raw.remoteId;\n }\n\n get type(): EntityType {\n return this.raw.type as EntityType;\n }\n\n get handle(): number {\n return this.raw.handle;\n }\n\n get alpha(): number {\n return this.raw.alpha;\n }\n\n set alpha(value: number) {\n this.raw.alpha = value;\n }\n\n get data(): Record<string, unknown> {\n return this.raw.data;\n }\n\n set data(value: Record<string, unknown>) {\n this.raw.data = value;\n }\n\n get dimension(): number {\n return this.raw.dimension;\n }\n\n set dimension(value: number) {\n this.raw.dimension = value;\n }\n\n get model(): number {\n return this.raw.model;\n }\n\n set model(value: number) {\n this.raw.model = value;\n }\n\n get position(): Vector3 {\n const p = this.raw.position;\n return { x: p.x, y: p.y, z: p.z };\n }\n\n set position(value: Vector3) {\n this.raw.position = new mp.Vector3(value.x, value.y, value.z);\n }\n\n get rotation(): Vector3 {\n const r = this.raw.rotation;\n return { x: r.x, y: r.y, z: r.z };\n }\n\n set rotation(value: Vector3) {\n this.raw.rotation = new mp.Vector3(value.x, value.y, value.z);\n }\n\n destroy(): void {\n this.raw.destroy();\n }\n\n doesExist(): boolean {\n return this.raw.doesExist();\n }\n\n dist(position: Vector3): number {\n return this.raw.dist(new mp.Vector3(position.x, position.y, position.z));\n }\n\n distSquared(position: Vector3): number {\n const p = this.position;\n const dx = p.x - position.x;\n const dy = p.y - position.y;\n const dz = p.z - position.z;\n return dx * dx + dy * dy + dz * dz;\n }\n\n getVariable(name: string): unknown {\n return this.raw.getVariable(name);\n }\n\n hasVariable(name: string): boolean {\n return this.raw.hasVariable(name);\n }\n\n setCoords(x: number, y: number, z: number): void {\n mp.game.entity.setCoords(this.raw.handle, x, y, z, false, false, false, false);\n }\n\n setRotation(x: number, y: number, z: number): void {\n mp.game.entity.setRotation(this.raw.handle, x, y, z, 2, true);\n }\n\n freezePosition(toggle: boolean): void {\n mp.game.entity.freezePosition(this.raw.handle, toggle);\n }\n\n setVelocity(x: number, y: number, z: number): void {\n mp.game.entity.setVelocity(this.raw.handle, x, y, z);\n }\n\n getVelocity(): Vector3 {\n const v = mp.game.entity.getVelocity(this.raw.handle);\n return { x: v.x, y: v.y, z: v.z };\n }\n\n setAlpha(alpha: number): void {\n mp.game.entity.setAlpha(this.raw.handle, alpha, false);\n }\n\n setVisible(visible: boolean): void {\n mp.game.entity.setVisible(this.raw.handle, visible, false);\n }\n\n setCollision(toggle: boolean): void {\n mp.game.entity.setCollision(this.raw.handle, toggle, true);\n }\n\n setInvincible(toggle: boolean): void {\n mp.game.entity.setInvincible(this.raw.handle, toggle);\n }\n\n getHealth(): number {\n return mp.game.entity.getHealth(this.raw.handle);\n }\n\n setHealth(health: number): void {\n mp.game.entity.setHealth(this.raw.handle, health, 0);\n }\n\n getMaxHealth(): number {\n return mp.game.entity.getMaxHealth(this.raw.handle);\n }\n\n setMaxHealth(health: number): void {\n mp.game.entity.setMaxHealth(this.raw.handle, health);\n }\n\n getSpeed(): number {\n return mp.game.entity.getSpeed(this.raw.handle);\n }\n\n getForwardVector(): Vector3 {\n const v = mp.game.entity.getForwardVector(this.raw.handle);\n return { x: v.x, y: v.y, z: v.z };\n }\n\n getHeading(): number {\n return mp.game.entity.getHeading(this.raw.handle);\n }\n\n setHeading(heading: number): void {\n mp.game.entity.setHeading(this.raw.handle, heading);\n }\n\n isOnScreen(): boolean {\n return mp.game.entity.isOnScreen(this.raw.handle);\n }\n\n isDead(): boolean {\n return mp.game.entity.isDead(this.raw.handle, false);\n }\n\n isInWater(): boolean {\n return mp.game.entity.isInWater(this.raw.handle);\n }\n\n isInAir(): boolean {\n return mp.game.entity.isInAir(this.raw.handle);\n }\n\n isVisible(): boolean {\n return mp.game.entity.isVisible(this.raw.handle);\n }\n\n // --- Rotation / Transform ---\n\n getRotation(rotationOrder: number = 2): Vector3 {\n const r = mp.game.entity.getRotation(this.raw.handle, rotationOrder);\n return { x: r.x, y: r.y, z: r.z };\n }\n\n getQuaternion(): Quaternion {\n const q = mp.game.entity.getQuaternion(this.raw.handle);\n return { x: q.x, y: q.y, z: q.z, w: q.w };\n }\n\n setQuaternion(x: number, y: number, z: number, w: number): void {\n mp.game.entity.setQuaternion(this.raw.handle, x, y, z, w);\n }\n\n setCoordsNoOffset(\n x: number,\n y: number,\n z: number,\n alive: boolean = false,\n deadFlag: boolean = false,\n ragdollFlag: boolean = false,\n ): void {\n mp.game.entity.setCoordsNoOffset(this.raw.handle, x, y, z, alive, deadFlag, ragdollFlag);\n }\n\n // --- Attachment ---\n\n attachTo(\n entity: number,\n boneIndex: number,\n xPos: number,\n yPos: number,\n zPos: number,\n xRot: number,\n yRot: number,\n zRot: number,\n useSoftPinning: boolean,\n collision: boolean,\n isPed: boolean,\n vertexIndex: number,\n fixedRot: boolean,\n ): void {\n mp.game.entity.attachToEntity(\n this.raw.handle, entity, boneIndex,\n xPos, yPos, zPos, xRot, yRot, zRot,\n false, useSoftPinning, collision, isPed, vertexIndex, fixedRot,\n );\n }\n\n attachToPhysically(\n entity: number,\n boneIndex1: number,\n boneIndex2: number,\n xOff1: number,\n yOff1: number,\n zOff1: number,\n xOff2: number,\n yOff2: number,\n zOff2: number,\n xRot: number,\n yRot: number,\n zRot: number,\n breakForce: number,\n fixedRot: boolean,\n collision: boolean,\n teleport: boolean,\n order: number,\n ): void {\n mp.game.entity.attachToEntityPhysically(\n this.raw.handle, entity, boneIndex1, boneIndex2,\n xOff1, yOff1, zOff1, xOff2, yOff2, zOff2,\n xRot, yRot, zRot, breakForce, fixedRot, false, collision, teleport, order,\n );\n }\n\n detach(dynamic: boolean, collision: boolean): void {\n mp.game.entity.detach(this.raw.handle, dynamic, collision);\n }\n\n isAttached(): boolean {\n return mp.game.entity.isAttached(this.raw.handle);\n }\n\n isAttachedTo(entity: number): boolean {\n return mp.game.entity.isAttachedToEntity(this.raw.handle, entity);\n }\n\n // --- Physics / Forces ---\n\n applyForceTo(\n forceType: number,\n x: number,\n y: number,\n z: number,\n offX: number,\n offY: number,\n offZ: number,\n boneIndex: number,\n isDirectionRel: boolean,\n ignoreUpVec: boolean,\n isForceRel: boolean,\n p12: boolean,\n p13: boolean,\n ): void {\n mp.game.entity.applyForceTo(\n this.raw.handle, forceType, x, y, z,\n offX, offY, offZ, boneIndex,\n isDirectionRel, ignoreUpVec, isForceRel, p12, p13,\n );\n }\n\n applyForceToCenterOfMass(\n forceType: number,\n x: number,\n y: number,\n z: number,\n p5: boolean,\n isDirectionRel: boolean,\n isForceRel: boolean,\n p8: boolean,\n ): void {\n mp.game.entity.applyForceToCenterOfMass(\n this.raw.handle, forceType, x, y, z, p5, isDirectionRel, isForceRel, p8,\n );\n }\n\n setHasGravity(toggle: boolean): void {\n mp.game.entity.setHasGravity(this.raw.handle, toggle);\n }\n\n setDynamic(toggle: boolean): void {\n mp.game.entity.setDynamic(this.raw.handle, toggle);\n }\n\n // --- Collision / Interaction ---\n\n hasCollidedWithAnything(): boolean {\n return mp.game.entity.hasCollidedWithAnything(this.raw.handle);\n }\n\n isTouching(entity: number): boolean {\n return mp.game.entity.isTouchingEntity(this.raw.handle, entity);\n }\n\n isTouchingModel(modelHash: number): boolean {\n return mp.game.entity.isTouchingModel(this.raw.handle, modelHash);\n }\n\n setNoCollision(entity: number, toggle: boolean): void {\n mp.game.entity.setNoCollisionEntity(this.raw.handle, entity, toggle);\n }\n\n // --- Animation ---\n\n isPlayingAnim(animDict: string, animName: string, taskFlag: number): boolean {\n return mp.game.entity.isPlayingAnim(this.raw.handle, animDict, animName, taskFlag);\n }\n\n stopAnim(animDict: string, animName: string, p3: number): void {\n mp.game.entity.stopAnim(this.raw.handle, animDict, animName, p3);\n }\n\n // --- Rendering / LOD ---\n\n setLodDist(value: number): void {\n mp.game.entity.setLodDist(this.raw.handle, value);\n }\n\n getLodDist(): number {\n return mp.game.entity.getLodDist(this.raw.handle);\n }\n\n isOccluded(): boolean {\n return mp.game.entity.isOccluded(this.raw.handle);\n }\n\n setMotionBlur(toggle: boolean): void {\n mp.game.entity.setMotionBlur(this.raw.handle, toggle);\n }\n\n setAlwaysPrerender(toggle: boolean): void {\n mp.game.entity.setAlwaysPrerender(this.raw.handle, toggle);\n }\n\n // --- Proofs ---\n\n setProofs(\n bulletProof: boolean,\n fireProof: boolean,\n explosionProof: boolean,\n collisionProof: boolean,\n meleeProof: boolean,\n p6: boolean,\n p7: boolean,\n drownProof: boolean,\n ): void {\n mp.game.entity.setProofs(\n this.raw.handle, bulletProof, fireProof, explosionProof,\n collisionProof, meleeProof, p6, p7, drownProof,\n );\n }\n\n // --- Height / Submersion ---\n\n getHeightAboveGround(): number {\n return mp.game.entity.getHeightAboveGround(this.raw.handle);\n }\n\n getSubmergedLevel(): number {\n return mp.game.entity.getSubmergedLevel(this.raw.handle);\n }\n\n // --- Rotation Velocity ---\n\n getRotationVelocity(): Vector3 {\n const v = mp.game.entity.getRotationVelocity(this.raw.handle);\n return { x: v.x, y: v.y, z: v.z };\n }\n\n // --- Animation (extended) ---\n\n getAnimCurrentTime(animDict: string, animName: string): number {\n return mp.game.entity.getAnimCurrentTime(this.raw.handle, animDict, animName);\n }\n\n getAnimTotalTime(animDict: string, animName: string): number {\n return mp.game.entity.getAnimTotalTime(this.raw.handle, animDict, animName);\n }\n\n setAnimCurrentTime(animDict: string, animName: string, time: number): void {\n mp.game.entity.setAnimCurrentTime(this.raw.handle, animDict, animName, time);\n }\n\n setAnimSpeed(animDict: string, animName: string, speedMultiplier: number): void {\n mp.game.entity.setAnimSpeed(this.raw.handle, animDict, animName, speedMultiplier);\n }\n\n // --- Damage Tracking ---\n\n hasBeenDamagedByEntity(entity: number, p2: boolean = true): boolean {\n return mp.game.entity.hasBeenDamagedByEntity(this.raw.handle, entity, p2);\n }\n\n clearLastDamageEntity(): void {\n mp.game.entity.clearLastDamageEntity(this.raw.handle);\n }\n\n // --- Line of Sight ---\n\n hasClearLosToEntity(entity: number, traceType: number = 17): boolean {\n return mp.game.entity.hasClearLosToEntity(this.raw.handle, entity, traceType);\n }\n\n // --- Offset / Position ---\n\n getOffsetFromInWorldCoords(offsetX: number, offsetY: number, offsetZ: number): Vector3 {\n const v = mp.game.entity.getOffsetFromInWorldCoords(this.raw.handle, offsetX, offsetY, offsetZ);\n return { x: v.x, y: v.y, z: v.z };\n }\n\n // --- Orientation Checks ---\n\n isUpright(angle: number): boolean {\n return mp.game.entity.isUpright(this.raw.handle, angle);\n }\n\n isUpsidedown(): boolean {\n return mp.game.entity.isUpsidedown(this.raw.handle);\n }\n\n // --- Physics Check ---\n\n doesHavePhysics(): boolean {\n return mp.game.entity.doesHavePhysics(this.raw.handle);\n }\n\n // --- Mission Entity ---\n\n setAsMissionEntity(p1: boolean = true, p2: boolean = false): void {\n mp.game.entity.setAsMissionEntity(this.raw.handle, p1, p2);\n }\n}\n","import type { IPlayer } from \"../interfaces/IPlayer\";\nimport type { Vector3 } from \"../types\";\nimport { RageMpEntity } from \"./RageMpEntity\";\n\nexport class RageMpPlayer extends RageMpEntity implements IPlayer {\n get armour(): number {\n return this.raw.armour;\n }\n\n get eyeColour(): number {\n return this.raw.eyeColour;\n }\n\n get hairColour(): number {\n return this.raw.hairColour;\n }\n\n get hairHighlightColour(): number {\n return this.raw.hairHighlightColour;\n }\n\n get heading(): number {\n return this.raw.heading;\n }\n\n get health(): number {\n return this.raw.health;\n }\n\n get name(): string {\n return this.raw.name;\n }\n\n get weapon(): number {\n return this.raw.weapon;\n }\n\n get weaponAmmo(): number {\n return this.raw.weaponAmmo;\n }\n\n get action(): string {\n return this.raw.action;\n }\n\n get aimTarget(): number {\n return this.raw.aimTarget;\n }\n\n get ip(): string {\n return this.raw.ip;\n }\n\n get isTypingInTextChat(): boolean {\n return this.raw.isTypingInTextChat;\n }\n\n get isVoiceActive(): boolean {\n return this.raw.isVoiceActive;\n }\n\n get ping(): number {\n return this.raw.ping;\n }\n\n get vehicle(): number | null {\n return this.raw.vehicle?.handle ?? null;\n }\n\n setComponentVariation(component: number, drawable: number, texture: number, palette: number): void {\n mp.game.ped.setComponentVariation(this.raw.handle, component, drawable, texture, palette);\n }\n\n setHeadBlendData(\n shapeFirst: number, shapeSecond: number, shapeThird: number,\n skinFirst: number, skinSecond: number, skinThird: number,\n shapeMix: number, skinMix: number, thirdMix: number,\n ): void {\n mp.game.ped.setHeadBlendData(this.raw.handle, shapeFirst, shapeSecond, shapeThird, skinFirst, skinSecond, skinThird, shapeMix, skinMix, thirdMix, false);\n }\n\n setHeadOverlay(overlayId: number, index: number, opacity: number, firstColor?: number, secondColor?: number): void {\n mp.game.ped.setHeadOverlay(this.raw.handle, overlayId, index, opacity);\n if (firstColor !== undefined && secondColor !== undefined) {\n (mp.game.ped as any).setHeadOverlayTint(this.raw.handle, overlayId, 1, firstColor, secondColor);\n }\n }\n\n setHairColor(color: number, highlight: number): void {\n (mp.game.ped as any).setHairTint(this.raw.handle, color, highlight);\n }\n\n setEyeColor(color: number): void {\n mp.game.ped.setEyeColor(this.raw.handle, color);\n }\n\n setFaceFeature(index: number, scale: number): void {\n mp.game.ped.setFaceFeature(this.raw.handle, index, scale);\n }\n\n setPropIndex(propId: number, drawableId: number, textureId: number, attach: boolean): void {\n mp.game.ped.setPropIndex(this.raw.handle, propId, drawableId, textureId, attach);\n }\n\n clearProp(propId: number): void {\n mp.game.ped.clearProp(this.raw.handle, propId);\n }\n\n getDrawableVariation(component: number): number {\n return mp.game.ped.getDrawableVariation(this.raw.handle, component);\n }\n\n getTextureVariation(component: number): number {\n return mp.game.ped.getTextureVariation(this.raw.handle, component);\n }\n\n getPropIndex(propId: number): number {\n return mp.game.ped.getPropIndex(this.raw.handle, propId);\n }\n\n getPropTextureIndex(propId: number): number {\n return mp.game.ped.getPropTextureIndex(this.raw.handle, propId);\n }\n\n getBonePosition(boneId: number): Vector3 {\n const p = mp.game.ped.getBoneCoords(this.raw.handle, boneId, 0, 0, 0);\n return { x: p.x, y: p.y, z: p.z };\n }\n\n getWorldPositionOfBone(boneIndex: number): Vector3 {\n const p = mp.game.entity.getWorldPositionOfBone(this.raw.handle, boneIndex);\n return { x: p.x, y: p.y, z: p.z };\n }\n\n getBoneIndex(boneName: string): number {\n return mp.game.ped.getBoneIndex(this.raw.handle, boneName as unknown as number);\n }\n\n giveWeapon(hash: number, ammo: number): void {\n (mp.game.weapon as any).giveWeaponToPed(this.raw.handle, hash, ammo, false, true);\n }\n\n removeAllWeapons(): void {\n mp.game.weapon.removeAllPedS(this.raw.handle, true);\n }\n\n getAmmoInClip(weapon: number): number {\n return mp.game.weapon.getAmmoInClip(this.raw.handle, weapon);\n }\n\n setAmmoInClip(weapon: number, ammo: number): void {\n mp.game.weapon.setAmmoInClip(this.raw.handle, weapon, ammo);\n }\n\n getWeaponTintIndex(weapon: number): number {\n return mp.game.weapon.getPedTintIndex(this.raw.handle, weapon);\n }\n\n isJumping(): boolean {\n return mp.game.ped.isJumping(this.raw.handle);\n }\n\n isFalling(): boolean {\n return mp.game.ped.isFalling(this.raw.handle);\n }\n\n isShooting(): boolean {\n return mp.game.ped.isShooting(this.raw.handle);\n }\n\n isReloading(): boolean {\n return mp.game.ped.isReloading(this.raw.handle);\n }\n\n isSprinting(): boolean {\n return (mp.game.ped as any).isSprinting(this.raw.handle);\n }\n\n isSwimming(): boolean {\n return mp.game.ped.isSwimming(this.raw.handle);\n }\n\n isSwimmingUnderWater(): boolean {\n return mp.game.ped.isSwimmingUnderWater(this.raw.handle);\n }\n\n isClimbing(): boolean {\n return mp.game.ped.isClimbing(this.raw.handle);\n }\n\n isGettingIntoVehicle(): boolean {\n return mp.game.ped.isGettingIntoAVehicle(this.raw.handle);\n }\n\n isDiving(): boolean {\n return mp.game.ped.isDiving(this.raw.handle);\n }\n\n isParachuting(): boolean {\n return (mp.game.ped as any).isParachuting(this.raw.handle);\n }\n\n isInAnyVehicle(): boolean {\n return mp.game.ped.isInAnyVehicle(this.raw.handle, false);\n }\n\n isSittingInVehicle(vehicle: number): boolean {\n return mp.game.ped.isSittingInVehicle(this.raw.handle, vehicle);\n }\n\n setIntoVehicle(vehicle: number, seat: number): void {\n mp.game.ped.setIntoVehicle(this.raw.handle, vehicle, seat);\n }\n\n setArmour(armour: number): void {\n mp.game.ped.setArmour(this.raw.handle, armour);\n }\n\n getArmour(): number {\n return mp.game.ped.getArmour(this.raw.handle);\n }\n\n taskPlayAnim(\n dict: string, name: string, blendInSpeed: number, blendOutSpeed: number,\n duration: number, flag: number, playbackRate: number,\n lockX: boolean, lockY: boolean, lockZ: boolean,\n ): void {\n mp.game.task.playAnim(this.raw.handle, dict, name, blendInSpeed, blendOutSpeed, duration, flag, playbackRate, lockX, lockY, lockZ);\n }\n\n clearTasks(): void {\n (mp.game.task as any).clearTasks(this.raw.handle);\n }\n\n clearTasksImmediately(): void {\n mp.game.task.clearPedTasksImmediately(this.raw.handle);\n }\n\n canRagdoll(): boolean {\n return mp.game.ped.canRagdoll(this.raw.handle);\n }\n\n setCanRagdoll(toggle: boolean): void {\n mp.game.ped.setCanRagdoll(this.raw.handle, toggle);\n }\n\n setRagdollOnCollision(toggle: boolean): void {\n mp.game.ped.setRagdollOnCollision(this.raw.handle, toggle);\n }\n\n // --- Wanted Level ---\n\n setWantedLevel(level: number): void {\n (mp.game.player as any).setWantedLevel(level, false);\n }\n\n getWantedLevel(): number {\n return (mp.game.player as any).getWantedLevel();\n }\n\n clearWantedLevel(): void {\n (mp.game.player as any).clearWantedLevel();\n }\n\n // --- Control ---\n\n setControl(toggle: boolean, flags: number = 0): void {\n (mp.game.player as any).setControl(toggle, flags);\n }\n\n isControlOn(): boolean {\n return (mp.game.player as any).isControlOn();\n }\n\n // --- Ignore ---\n\n setEveryoneIgnore(toggle: boolean): void {\n (mp.game.player as any).setEveryoneIgnore(toggle);\n }\n\n setPoliceIgnore(toggle: boolean): void {\n (mp.game.player as any).setPoliceIgnore(toggle);\n }\n\n // --- Damage Modifiers ---\n\n setWeaponDamageModifier(modifier: number): void {\n (mp.game.player as any).setWeaponDamageModifier(modifier);\n }\n\n setVehicleDamageModifier(modifier: number): void {\n (mp.game.player as any).setVehicleDamageModifier(modifier);\n }\n\n setMeleeWeaponDamageModifier(modifier: number): void {\n (mp.game.player as any).setMeleeWeaponDamageModifier(modifier, false);\n }\n\n // --- Abilities ---\n\n resetStamina(): void {\n (mp.game.player as any).resetStamina();\n }\n\n setCanDoDriveBy(toggle: boolean): void {\n (mp.game.player as any).setCanDoDriveBy(toggle);\n }\n\n setCanUseCover(toggle: boolean): void {\n (mp.game.player as any).setCanUseCover(toggle);\n }\n\n // --- Armour (extended) ---\n\n getMaxArmour(): number {\n return (mp.game.player as any).getMaxArmour();\n }\n\n setMaxArmour(value: number): void {\n (mp.game.player as any).setMaxArmour(value);\n }\n\n // --- Misc ---\n\n getInvincible(): boolean {\n return (mp.game.player as any).getInvincible();\n }\n\n setParachuteTintIndex(tintIndex: number): void {\n (mp.game.player as any).setParachuteTintIndex(tintIndex);\n }\n\n getParachuteTintIndex(): number {\n return (mp.game.player as any).getParachuteTintIndex();\n }\n\n // --- Wanted Level (extended) ---\n\n setMaxWantedLevel(maxWantedLevel: number): void {\n (mp.game.player as any).setMaxWantedLevel(maxWantedLevel);\n }\n\n setWantedLevelNow(p1: boolean = false): void {\n (mp.game.player as any).setWantedLevelNow(p1);\n }\n\n // --- Police ---\n\n setDispatchCopsFor(toggle: boolean): void {\n (mp.game.player as any).setDispatchCopsFor(toggle);\n }\n\n setAllRandomPedsFlee(toggle: boolean): void {\n (mp.game.player as any).setAllRandomPedsFlee(toggle);\n }\n\n setAllRandomPedsFleeThisFrame(): void {\n (mp.game.player as any).setAllRandomPedsFleeThisFrame();\n }\n\n // --- Aiming / Targeting ---\n\n isFreeAiming(): boolean {\n return (mp.game.player as any).isFreeAiming();\n }\n\n isFreeAimingAtEntity(entity: number): boolean {\n return (mp.game.player as any).isFreeAimingAtEntity(entity);\n }\n\n getTargetEntity(): number {\n return (mp.game.player as any).getTargetEntity();\n }\n\n // --- Movement Multipliers ---\n\n setRunSprintMultiplierFor(multiplier: number): void {\n (mp.game.player as any).setRunSprintMultiplierFor(multiplier);\n }\n\n setSwimMultiplierFor(multiplier: number): void {\n (mp.game.player as any).setSwimMultiplierFor(multiplier);\n }\n\n // --- Health Regen ---\n\n setHealthRechargeMultiplier(regenRate: number): void {\n (mp.game.player as any).setHealthRechargeMultiplier(regenRate);\n }\n\n getHealthRechargeLimit(): number {\n return (mp.game.player as any).getHealthRechargeLimit();\n }\n\n setHealthRechargeLimit(limit: number): void {\n (mp.game.player as any).setHealthRechargeLimit(limit);\n }\n\n // --- Defense Modifiers ---\n\n setWeaponDefenseModifier(modifier: number): void {\n (mp.game.player as any).setWeaponDefenseModifier(modifier);\n }\n\n setMeleeWeaponDefenseModifier(modifier: number): void {\n (mp.game.player as any).setMeleeWeaponDefenseModifier(modifier);\n }\n\n setVehicleDefenseModifier(modifier: number): void {\n (mp.game.player as any).setVehicleDefenseModifier(modifier);\n }\n\n // --- Firing ---\n\n disableFiring(toggle: boolean): void {\n (mp.game.player as any).disableFiring(toggle);\n }\n\n setForcedAim(toggle: boolean): void {\n (mp.game.player as any).setForcedAim(toggle);\n }\n\n // --- Timestamps ---\n\n getTimeSinceLastArrest(): number {\n return (mp.game.player as any).getTimeSinceLastArrest();\n }\n\n getTimeSinceLastDeath(): number {\n return (mp.game.player as any).getTimeSinceLastDeath();\n }\n\n // --- Vehicle / Group ---\n\n getPlayersLastVehicle(): number {\n return (mp.game.player as any).getPlayersLastVehicle();\n }\n\n getGroup(): number {\n return (mp.game.player as any).getGroup();\n }\n}\n","import type { IVehicle } from \"../interfaces/IVehicle\";\nimport type { RGB, Vector3 } from \"../types\";\nimport { RageMpEntity } from \"./RageMpEntity\";\n\nexport class RageMpVehicle extends RageMpEntity implements IVehicle {\n get gear(): number {\n return this.raw.gear;\n }\n\n get rpm(): number {\n return this.raw.rpm;\n }\n\n get steeringAngle(): number {\n return this.raw.steeringAngle;\n }\n\n get isPositionFrozen(): boolean {\n return this.raw.isPositionFrozen;\n }\n\n set isPositionFrozen(value: boolean) {\n this.raw.isPositionFrozen = value;\n }\n\n get gravity(): number {\n return this.raw.gravity;\n }\n\n set gravity(value: number) {\n this.raw.gravity = value;\n }\n\n setEngineOn(toggle: boolean, instantly: boolean, noAutoTurnOn: boolean): void {\n mp.game.vehicle.setEngineOn(this.raw.handle, toggle, instantly, noAutoTurnOn);\n }\n\n isEngineRunning(): boolean {\n return mp.game.vehicle.getIsEngineRunning(this.raw.handle);\n }\n\n getEngineHealth(): number {\n return mp.game.vehicle.getEngineHealth(this.raw.handle);\n }\n\n setEngineHealth(health: number): void {\n mp.game.vehicle.setEngineHealth(this.raw.handle, health);\n }\n\n setEnginePowerMultiplier(multiplier: number): void {\n (mp.game.vehicle as any).setEnginePowerMultiplier(this.raw.handle, multiplier);\n }\n\n setEngineTorqueMultiplier(multiplier: number): void {\n (mp.game.vehicle as any).setEngineTorqueMultiplier(this.raw.handle, multiplier);\n }\n\n getBodyHealth(): number {\n return mp.game.vehicle.getBodyHealth(this.raw.handle);\n }\n\n setBodyHealth(health: number): void {\n mp.game.vehicle.setBodyHealth(this.raw.handle, health);\n }\n\n getPetrolTankHealth(): number {\n return mp.game.vehicle.getPetrolTankHealth(this.raw.handle);\n }\n\n setPetrolTankHealth(health: number): void {\n mp.game.vehicle.setPetrolTankHealth(this.raw.handle, health);\n }\n\n setDirtLevel(level: number): void {\n mp.game.vehicle.setDirtLevel(this.raw.handle, level);\n }\n\n setCustomPrimaryColour(r: number, g: number, b: number): void {\n mp.game.vehicle.setCustomPrimaryColour(this.raw.handle, r, g, b);\n }\n\n setCustomSecondaryColour(r: number, g: number, b: number): void {\n mp.game.vehicle.setCustomSecondaryColour(this.raw.handle, r, g, b);\n }\n\n getCustomPrimaryColour(): RGB {\n const c = mp.game.vehicle.getCustomPrimaryColour(this.raw.handle) as any;\n return { r: c.r ?? c[0], g: c.g ?? c[1], b: c.b ?? c[2] };\n }\n\n getCustomSecondaryColour(): RGB {\n const c = mp.game.vehicle.getCustomSecondaryColour(this.raw.handle) as any;\n return { r: c.r ?? c[0], g: c.g ?? c[1], b: c.b ?? c[2] };\n }\n\n setColours(primary: number, secondary: number): void {\n mp.game.vehicle.setColours(this.raw.handle, primary, secondary);\n }\n\n setNeonLightEnabled(index: number, toggle: boolean): void {\n mp.game.vehicle.setNeonLightEnabled(this.raw.handle, index, toggle);\n }\n\n isNeonLightEnabled(index: number): boolean {\n return mp.game.vehicle.isNeonLightEnabled(this.raw.handle, index);\n }\n\n setNeonLightsColour(r: number, g: number, b: number): void {\n mp.game.vehicle.setNeonLightsColour(this.raw.handle, r, g, b);\n }\n\n getNeonLightsColour(): RGB {\n const c = mp.game.vehicle.getNeonLightsColour(this.raw.handle) as any;\n return { r: c.r ?? c[0], g: c.g ?? c[1], b: c.b ?? c[2] };\n }\n\n setMod(modType: number, modIndex: number): void {\n mp.game.vehicle.setMod(this.raw.handle, modType, modIndex, false);\n }\n\n getMod(modType: number): number {\n return mp.game.vehicle.getMod(this.raw.handle, modType);\n }\n\n setModKit(modKit: number): void {\n mp.game.vehicle.setModKit(this.raw.handle, modKit);\n }\n\n getModKit(): number {\n return mp.game.vehicle.getModKit(this.raw.handle);\n }\n\n getNumMods(modType: number): number {\n return mp.game.vehicle.getNumMods(this.raw.handle, modType);\n }\n\n setWindowTint(tint: number): void {\n mp.game.vehicle.setWindowTint(this.raw.handle, tint);\n }\n\n getWindowTint(): number {\n return mp.game.vehicle.getWindowTint(this.raw.handle);\n }\n\n setNumberPlateText(text: string): void {\n mp.game.vehicle.setNumberPlateText(this.raw.handle, text);\n }\n\n getNumberPlateText(): string {\n return mp.game.vehicle.getNumberPlateText(this.raw.handle);\n }\n\n setNumberPlateTextIndex(index: number): void {\n mp.game.vehicle.setNumberPlateTextIndex(this.raw.handle, index);\n }\n\n getNumberPlateTextIndex(): number {\n return mp.game.vehicle.getNumberPlateTextIndex(this.raw.handle);\n }\n\n setTyreBurst(index: number, onRim: boolean, p2: number): void {\n mp.game.vehicle.setTyreBurst(this.raw.handle, index, onRim, p2);\n }\n\n isTyreBurst(wheelId: number): boolean {\n return mp.game.vehicle.isTyreBurst(this.raw.handle, wheelId, false);\n }\n\n setTyresCanBurst(toggle: boolean): void {\n mp.game.vehicle.setTyresCanBurst(this.raw.handle, toggle);\n }\n\n getTyresCanBurst(): boolean {\n return mp.game.vehicle.getTyresCanBurst(this.raw.handle);\n }\n\n setTyreFixed(index: number): void {\n mp.game.vehicle.setTyreFixed(this.raw.handle, index);\n }\n\n setDoorOpen(doorIndex: number, loose: boolean, openInstantly: boolean): void {\n mp.game.vehicle.setDoorOpen(this.raw.handle, doorIndex, loose, openInstantly);\n }\n\n setDoorShut(doorIndex: number, closeInstantly: boolean): void {\n mp.game.vehicle.setDoorShut(this.raw.handle, doorIndex, closeInstantly);\n }\n\n setDoorBroken(doorIndex: number, deleteDoor: boolean): void {\n mp.game.vehicle.setDoorBroken(this.raw.handle, doorIndex, deleteDoor);\n }\n\n isDoorDamaged(doorIndex: number): boolean {\n return mp.game.vehicle.isDoorDamaged(this.raw.handle, doorIndex);\n }\n\n isDoorFullyOpen(doorIndex: number): boolean {\n return mp.game.vehicle.isDoorFullyOpen(this.raw.handle, doorIndex);\n }\n\n getDoorAngleRatio(doorIndex: number): number {\n return mp.game.vehicle.getDoorAngleRatio(this.raw.handle, doorIndex);\n }\n\n setLight(lightIndex: number, toggle: boolean): void {\n mp.game.vehicle.setLights(this.raw.handle, lightIndex);\n }\n\n setLights(toggle: boolean): void {\n mp.game.vehicle.setLights(this.raw.handle, toggle ? 2 : 1);\n }\n\n getLightsState(): boolean {\n return mp.game.vehicle.getLightsState(this.raw.handle) as unknown as boolean;\n }\n\n setXenonHeadlights(toggle: boolean): void {\n mp.game.vehicle.toggleMod(this.raw.handle, 22, toggle);\n }\n\n isXenonHeadlightsEnabled(): boolean {\n return mp.game.vehicle.isToggleModOn(this.raw.handle, 22);\n }\n\n setExtra(extraId: number, toggle: boolean): void {\n mp.game.vehicle.setExtra(this.raw.handle, extraId, (toggle ? 0 : 1) as unknown as boolean);\n }\n\n doesExtraExist(extraId: number): boolean {\n return mp.game.vehicle.doesExtraExist(this.raw.handle, extraId);\n }\n\n isExtraTurnedOn(extraId: number): boolean {\n return mp.game.vehicle.isExtraTurnedOn(this.raw.handle, extraId);\n }\n\n isSeatFree(seatIndex: number): boolean {\n return mp.game.vehicle.isSeatFree(this.raw.handle, seatIndex, false);\n }\n\n getPedInSeat(seatIndex: number): number {\n return mp.game.vehicle.getPedInSeat(this.raw.handle, seatIndex, false);\n }\n\n getMaxNumberOfPassengers(): number {\n return mp.game.vehicle.getMaxNumberOfPassengers(this.raw.handle);\n }\n\n setFixed(): void {\n mp.game.vehicle.setFixed(this.raw.handle);\n }\n\n setUndriveable(toggle: boolean): void {\n mp.game.vehicle.setUndriveable(this.raw.handle, toggle);\n }\n\n setCanBeDamaged(toggle: boolean): void {\n (mp.game.vehicle as any).setCanBeDamaged(this.raw.handle, toggle);\n }\n\n setCanBeVisiblyDamaged(toggle: boolean): void {\n mp.game.vehicle.setCanBeVisiblyDamaged(this.raw.handle, toggle);\n }\n\n getWheelType(): number {\n return mp.game.vehicle.getWheelType(this.raw.handle);\n }\n\n setWheelType(type: number): void {\n mp.game.vehicle.setWheelType(this.raw.handle, type);\n }\n\n setLivery(livery: number): void {\n mp.game.vehicle.setLivery(this.raw.handle, livery);\n }\n\n getLivery(): number {\n return mp.game.vehicle.getLivery(this.raw.handle);\n }\n\n getLiveryCount(): number {\n return mp.game.vehicle.getLiveryCount(this.raw.handle);\n }\n\n setRoofOpened(toggle: boolean): void {\n if (toggle) {\n (mp.game.vehicle as any).openRoof(this.raw.handle);\n } else {\n (mp.game.vehicle as any).closeRoof(this.raw.handle);\n }\n }\n\n isRoofOpened(): boolean {\n return (mp.game.vehicle as any).isRoofOpened(this.raw.handle);\n }\n\n setHandling(field: string, value: number): void {\n this.raw.setHandling(field, value);\n }\n\n getHandling(field: string): number {\n return this.raw.getHandling(field);\n }\n\n resetHandling(): void {\n this.raw.resetHandling();\n }\n\n setSuspensionHeight(height: number): void {\n (mp.game.vehicle as any).setSuspensionHeight(this.raw.handle, height);\n }\n\n // --- Windows ---\n\n smashWindow(index: number): void {\n mp.game.vehicle.smashWindow(this.raw.handle, index);\n }\n\n fixWindow(index: number): void {\n mp.game.vehicle.fixWindow(this.raw.handle, index);\n }\n\n removeWindow(index: number): void {\n mp.game.vehicle.removeWindow(this.raw.handle, index);\n }\n\n rollDownWindow(index: number): void {\n mp.game.vehicle.rollDownWindow(this.raw.handle, index);\n }\n\n rollUpWindow(index: number): void {\n mp.game.vehicle.rollUpWindow(this.raw.handle, index);\n }\n\n rollDownWindows(): void {\n mp.game.vehicle.rollDownWindows(this.raw.handle);\n }\n\n isWindowIntact(index: number): boolean {\n return mp.game.vehicle.isWindowIntact(this.raw.handle, index);\n }\n\n areAllWindowsIntact(): boolean {\n return mp.game.vehicle.areAllWindowsIntact(this.raw.handle);\n }\n\n // --- Door Locking ---\n\n setDoorsLocked(lockStatus: number): void {\n mp.game.vehicle.setDoorsLocked(this.raw.handle, lockStatus);\n }\n\n getDoorLockStatus(): number {\n return mp.game.vehicle.getDoorLockStatus(this.raw.handle);\n }\n\n setDoorControl(doorIndex: number, speed: number, angle: number): void {\n mp.game.vehicle.setDoorControl(this.raw.handle, doorIndex, speed, angle);\n }\n\n setDoorsShut(closeInstantly: boolean): void {\n mp.game.vehicle.setDoorsShut(this.raw.handle, closeInstantly);\n }\n\n // --- Siren / Alarm ---\n\n isSirenOn(): boolean {\n return mp.game.vehicle.isSirenOn(this.raw.handle);\n }\n\n setSiren(toggle: boolean): void {\n mp.game.vehicle.setSiren(this.raw.handle, toggle);\n }\n\n isAlarmActivated(): boolean {\n return mp.game.vehicle.isAlarmActivated(this.raw.handle);\n }\n\n setAlarm(toggle: boolean): void {\n mp.game.vehicle.setAlarm(this.raw.handle, toggle);\n }\n\n // --- Convertible ---\n\n isConvertible(): boolean {\n return mp.game.vehicle.isAConvertible(this.raw.handle, false);\n }\n\n lowerConvertibleRoof(instantly: boolean = false): void {\n mp.game.vehicle.lowerConvertibleRoof(this.raw.handle, instantly);\n }\n\n raiseConvertibleRoof(instantly: boolean = false): void {\n mp.game.vehicle.raiseConvertibleRoof(this.raw.handle, instantly);\n }\n\n // --- Speed / Movement ---\n\n setForwardSpeed(speed: number): void {\n mp.game.vehicle.setForwardSpeed(this.raw.handle, speed);\n }\n\n setMaxSpeed(maxSpeed: number): void {\n mp.game.vehicle.setMaxSpeed(this.raw.handle, maxSpeed);\n }\n\n setHandbrake(toggle: boolean): void {\n mp.game.vehicle.setHandbrake(this.raw.handle, toggle);\n }\n\n // --- Lights (extended) ---\n\n setIndicatorLights(index: number, toggle: boolean): void {\n mp.game.vehicle.setIndicatorLights(this.raw.handle, index, toggle);\n }\n\n setInteriorLight(toggle: boolean): void {\n (mp.game.vehicle as any).setInteriorlight(this.raw.handle, toggle);\n }\n\n setFullbeam(toggle: boolean): void {\n mp.game.vehicle.setFullbeam(this.raw.handle, toggle);\n }\n\n setSearchlight(toggle: boolean, canBeUsedByAI: boolean): void {\n mp.game.vehicle.setSearchlight(this.raw.handle, toggle, canBeUsedByAI);\n }\n\n setLightMultiplier(multiplier: number): void {\n mp.game.vehicle.setLightMultiplier(this.raw.handle, multiplier);\n }\n\n // --- Colours (extended) ---\n\n setExtraColours(pearlescent: number, wheel: number): void {\n mp.game.vehicle.setExtraColours(this.raw.handle, pearlescent, wheel);\n }\n\n getExtraColours(): { pearlescent: number; wheel: number } {\n const c = mp.game.vehicle.getExtraColours(this.raw.handle) as any;\n return { pearlescent: c.pearlescentColor ?? c[0], wheel: c.wheelColor ?? c[1] };\n }\n\n setTyreSmokeColor(r: number, g: number, b: number): void {\n mp.game.vehicle.setTyreSmokeColor(this.raw.handle, r, g, b);\n }\n\n getTyreSmokeColor(): RGB {\n const c = mp.game.vehicle.getTyreSmokeColor(this.raw.handle) as any;\n return { r: c.r ?? c[0], g: c.g ?? c[1], b: c.b ?? c[2] };\n }\n\n // --- Vehicle State ---\n\n getClass(): number {\n return mp.game.vehicle.getClass(this.raw.handle);\n }\n\n explode(isAudible: boolean, isInvisible: boolean): void {\n mp.game.vehicle.explode(this.raw.handle, isAudible, isInvisible);\n }\n\n isDamaged(): boolean {\n return mp.game.vehicle.isDamaged(this.raw.handle);\n }\n\n isStolen(): boolean {\n return mp.game.vehicle.isStolen(this.raw.handle);\n }\n\n setIsStolen(toggle: boolean): void {\n mp.game.vehicle.setIsStolen(this.raw.handle, toggle);\n }\n\n isStopped(): boolean {\n return mp.game.vehicle.isStopped(this.raw.handle);\n }\n\n setOnGroundProperly(): boolean {\n return mp.game.vehicle.setOnGroundProperly(this.raw.handle, 5.0);\n }\n\n setDeformationFixed(): void {\n mp.game.vehicle.setDeformationFixed(this.raw.handle);\n }\n\n isBumperBrokenOff(front: boolean): boolean {\n return mp.game.vehicle.isBumperBrokenOff(this.raw.handle, front);\n }\n\n // --- Towing ---\n\n attachToTowTruck(towTruck: number, rear: boolean, hookOffsetX: number, hookOffsetY: number, hookOffsetZ: number): void {\n mp.game.vehicle.attachToTowTruck(towTruck, this.raw.handle, rear, hookOffsetX, hookOffsetY, hookOffsetZ);\n }\n\n detachFromTowTruck(towTruck: number): void {\n mp.game.vehicle.detachFromTowTruck(towTruck, this.raw.handle);\n }\n\n detachFromAnyTowTruck(): void {\n mp.game.vehicle.detachFromAnyTowTruck(this.raw.handle);\n }\n\n // --- Cargobob ---\n\n attachToCargobob(cargobob: number, p1: number, x: number, y: number, z: number): void {\n mp.game.vehicle.attachToCargobob(this.raw.handle, cargobob, p1, x, y, z);\n }\n\n detachFromCargobob(cargobob: number): void {\n mp.game.vehicle.detachFromCargobob(this.raw.handle, cargobob);\n }\n\n detachFromAnyCargobob(): void {\n mp.game.vehicle.detachFromAnyCargobob(this.raw.handle);\n }\n\n // --- Train ---\n\n setTrainSpeed(speed: number): void {\n mp.game.vehicle.setTrainSpeed(this.raw.handle, speed);\n }\n\n setTrainCruiseSpeed(speed: number): void {\n mp.game.vehicle.setTrainCruiseSpeed(this.raw.handle, speed);\n }\n\n // --- Performance Stats ---\n\n getAcceleration(): number {\n return mp.game.vehicle.getAcceleration(this.raw.handle);\n }\n\n getMaxBraking(): number {\n return mp.game.vehicle.getMaxBraking(this.raw.handle);\n }\n\n getMaxTraction(): number {\n return mp.game.vehicle.getMaxTraction(this.raw.handle);\n }\n\n // --- Headlight Damage ---\n\n getIsLeftHeadlightDamaged(): boolean {\n return mp.game.vehicle.getIsLeftHeadlightDamaged(this.raw.handle);\n }\n\n getIsRightHeadlightDamaged(): boolean {\n return mp.game.vehicle.getIsRightHeadlightDamaged(this.raw.handle);\n }\n\n // --- Mod Colors ---\n\n getModColor1(): { paintType: number; color: number; pearlescentColor: number } {\n const c = mp.game.vehicle.getModColor1(this.raw.handle) as any;\n return { paintType: c.paintType ?? c[0], color: c.color ?? c[1], pearlescentColor: c.pearlescentColor ?? c[2] };\n }\n\n getModColor2(): { paintType: number; color: number } {\n const c = mp.game.vehicle.getModColor2(this.raw.handle) as any;\n return { paintType: c.paintType ?? c[0], color: c.color ?? c[1] };\n }\n\n // --- Convertible (extended) ---\n\n getConvertibleRoofState(): number {\n return mp.game.vehicle.getConvertibleRoofState(this.raw.handle);\n }\n\n // --- Wheel Contact / Driveable ---\n\n isOnAllWheels(): boolean {\n return mp.game.vehicle.isOnAllWheels(this.raw.handle);\n }\n\n isDriveable(isOnFireCheck: boolean = false): boolean {\n return mp.game.vehicle.isDriveable(this.raw.handle, isOnFireCheck);\n }\n\n // --- Trailer ---\n\n detachFromTrailer(): void {\n mp.game.vehicle.detachFromTrailer(this.raw.handle);\n }\n\n isAttachedToTrailer(): boolean {\n return mp.game.vehicle.isAttachedToTrailer(this.raw.handle);\n }\n\n getTrailerVehicle(): number {\n return mp.game.vehicle.getTrailerVehicle(this.raw.handle);\n }\n\n // --- Helicopter ---\n\n getHeliMainRotorHealth(): number {\n return mp.game.vehicle.getHeliMainRotorHealth(this.raw.handle);\n }\n\n getHeliTailRotorHealth(): number {\n return mp.game.vehicle.getHeliTailRotorHealth(this.raw.handle);\n }\n\n // --- Landing Gear ---\n\n getLandingGearState(): number {\n return mp.game.vehicle.getLandingGearState(this.raw.handle);\n }\n\n // --- Deformation ---\n\n getDeformationAtPos(offsetX: number, offsetY: number, offsetZ: number): Vector3 {\n const v = mp.game.vehicle.getDeformationAtPos(this.raw.handle, offsetX, offsetY, offsetZ) as any;\n return { x: v.x, y: v.y, z: v.z };\n }\n\n // --- Boat ---\n\n setBoatAnchor(toggle: boolean): void {\n mp.game.vehicle.setBoatAnchor(this.raw.handle, toggle);\n }\n\n isBoatAnchoredAndFrozen(): boolean {\n return mp.game.vehicle.isBoatAnchoredAndFrozen(this.raw.handle);\n }\n\n // --- Vehicle Info ---\n\n getLayoutHash(): number {\n return mp.game.vehicle.getLayoutHash(this.raw.handle);\n }\n\n isBig(): boolean {\n return mp.game.vehicle.isBig(this.raw.handle);\n }\n\n isInBurnout(): boolean {\n return mp.game.vehicle.isInBurnout(this.raw.handle);\n }\n\n doesHaveRoof(): boolean {\n return mp.game.vehicle.doesHaveRoof(this.raw.handle);\n }\n}\n","import type { IPed } from \"../interfaces/IPed\";\nimport type { Vector3 } from \"../types\";\nimport { RageMpEntity } from \"./RageMpEntity\";\n\nexport class RageMpPed extends RageMpEntity implements IPed {\n get isDynamic(): boolean {\n return this.raw.isDynamic;\n }\n\n get spawnPosition(): Vector3 {\n const p = this.raw.spawnPosition;\n return { x: p.x, y: p.y, z: p.z };\n }\n\n get weapon(): number {\n return this.raw.weapon;\n }\n\n get weaponAmmo(): number {\n return this.raw.weaponAmmo;\n }\n\n setComponentVariation(component: number, drawable: number, texture: number, palette: number): void {\n mp.game.ped.setComponentVariation(this.raw.handle, component, drawable, texture, palette);\n }\n\n setHeadBlendData(\n shapeFirst: number, shapeSecond: number, shapeThird: number,\n skinFirst: number, skinSecond: number, skinThird: number,\n shapeMix: number, skinMix: number, thirdMix: number,\n ): void {\n mp.game.ped.setHeadBlendData(this.raw.handle, shapeFirst, shapeSecond, shapeThird, skinFirst, skinSecond, skinThird, shapeMix, skinMix, thirdMix, false);\n }\n\n setHeadOverlay(overlayId: number, index: number, opacity: number, firstColor?: number, secondColor?: number): void {\n mp.game.ped.setHeadOverlay(this.raw.handle, overlayId, index, opacity);\n if (firstColor !== undefined && secondColor !== undefined) {\n (mp.game.ped as any).setHeadOverlayTint(this.raw.handle, overlayId, 1, firstColor, secondColor);\n }\n }\n\n setHairColor(color: number, highlight: number): void {\n (mp.game.ped as any).setHairTint(this.raw.handle, color, highlight);\n }\n\n setEyeColor(color: number): void {\n mp.game.ped.setEyeColor(this.raw.handle, color);\n }\n\n setFaceFeature(index: number, scale: number): void {\n mp.game.ped.setFaceFeature(this.raw.handle, index, scale);\n }\n\n setPropIndex(propId: number, drawableId: number, textureId: number, attach: boolean): void {\n mp.game.ped.setPropIndex(this.raw.handle, propId, drawableId, textureId, attach);\n }\n\n clearProp(propId: number): void {\n mp.game.ped.clearProp(this.raw.handle, propId);\n }\n\n getDrawableVariation(component: number): number {\n return mp.game.ped.getDrawableVariation(this.raw.handle, component);\n }\n\n getTextureVariation(component: number): number {\n return mp.game.ped.getTextureVariation(this.raw.handle, component);\n }\n\n getPropIndex(propId: number): number {\n return mp.game.ped.getPropIndex(this.raw.handle, propId);\n }\n\n getPropTextureIndex(propId: number): number {\n return mp.game.ped.getPropTextureIndex(this.raw.handle, propId);\n }\n\n getBonePosition(boneId: number): Vector3 {\n const p = mp.game.ped.getBoneCoords(this.raw.handle, boneId, 0, 0, 0);\n return { x: p.x, y: p.y, z: p.z };\n }\n\n getWorldPositionOfBone(boneIndex: number): Vector3 {\n const p = mp.game.entity.getWorldPositionOfBone(this.raw.handle, boneIndex);\n return { x: p.x, y: p.y, z: p.z };\n }\n\n getBoneIndex(boneName: string): number {\n return mp.game.ped.getBoneIndex(this.raw.handle, boneName as unknown as number);\n }\n\n giveWeapon(hash: number, ammo: number): void {\n (mp.game.weapon as any).giveWeaponToPed(this.raw.handle, hash, ammo, false, true);\n }\n\n removeAllWeapons(): void {\n mp.game.weapon.removeAllPedS(this.raw.handle, true);\n }\n\n getAmmoInClip(weapon: number): number {\n return mp.game.weapon.getAmmoInClip(this.raw.handle, weapon);\n }\n\n setAmmoInClip(weapon: number, ammo: number): void {\n mp.game.weapon.setAmmoInClip(this.raw.handle, weapon, ammo);\n }\n\n taskPlayAnim(\n dict: string, name: string, blendInSpeed: number, blendOutSpeed: number,\n duration: number, flag: number, playbackRate: number,\n lockX: boolean, lockY: boolean, lockZ: boolean,\n ): void {\n mp.game.task.playAnim(this.raw.handle, dict, name, blendInSpeed, blendOutSpeed, duration, flag, playbackRate, lockX, lockY, lockZ);\n }\n\n clearTasks(): void {\n (mp.game.task as any).clearTasks(this.raw.handle);\n }\n\n clearTasksImmediately(): void {\n mp.game.task.clearPedTasksImmediately(this.raw.handle);\n }\n\n canRagdoll(): boolean {\n return mp.game.ped.canRagdoll(this.raw.handle);\n }\n\n setCanRagdoll(toggle: boolean): void {\n mp.game.ped.setCanRagdoll(this.raw.handle, toggle);\n }\n\n setRagdollOnCollision(toggle: boolean): void {\n mp.game.ped.setRagdollOnCollision(this.raw.handle, toggle);\n }\n\n // --- State Checks ---\n\n isDucking(): boolean {\n return mp.game.ped.isDucking(this.raw.handle);\n }\n\n isProne(): boolean {\n return mp.game.ped.isProne(this.raw.handle);\n }\n\n isOnFoot(): boolean {\n return (mp.game.ped as any).isOnFoot(this.raw.handle);\n }\n\n isRunning(): boolean {\n return (mp.game.ped as any).isRunning(this.raw.handle);\n }\n\n isWalking(): boolean {\n return (mp.game.ped as any).isWalking(this.raw.handle);\n }\n\n isSprinting(): boolean {\n return (mp.game.ped as any).isSprinting(this.raw.handle);\n }\n\n isStopped(): boolean {\n return (mp.game.ped as any).isStopped(this.raw.handle);\n }\n\n // --- Combat Tasks ---\n\n taskCombat(targetPed: number, p2: number = 0, p3: number = 16): void {\n mp.game.task.combatPed(this.raw.handle, targetPed, p2, p3);\n }\n\n taskCombatHatedTargetsInArea(x: number, y: number, z: number, radius: number, p5: number = 0): void {\n (mp.game.task as any).combatHatedTargetsInArea(this.raw.handle, x, y, z, radius, p5);\n }\n\n taskAimGunAtCoord(x: number, y: number, z: number, time: number, p5: boolean = false, p6: boolean = false): void {\n mp.game.task.aimGunAtCoord(this.raw.handle, x, y, z, time, p5, p6);\n }\n\n taskAimGunAtEntity(entity: number, duration: number, p3: boolean = false): void {\n mp.game.task.aimGunAtEntity(this.raw.handle, entity, duration, p3);\n }\n\n // --- Movement Tasks ---\n\n taskFollowNavMeshToCoord(\n x: number, y: number, z: number,\n speed: number, timeout: number, stoppingRange: number,\n persistFollowing: boolean, unk: number,\n ): void {\n mp.game.task.followNavMeshToCoord(this.raw.handle, x, y, z, speed, timeout, stoppingRange, persistFollowing, unk);\n }\n\n taskGoToCoordAnyMeans(\n x: number, y: number, z: number,\n speed: number, p5: number, p6: boolean,\n walkingStyle: number, p8: number,\n ): void {\n mp.game.task.goToCoordAnyMeans(this.raw.handle, x, y, z, speed, p5, p6, walkingStyle, p8);\n }\n\n // --- Vehicle Tasks ---\n\n taskEnterVehicle(vehicle: number, timeout: number, seat: number, speed: number, p5: number, p6: number): void {\n mp.game.task.enterVehicle(this.raw.handle, vehicle, timeout, seat, speed, p5, p6);\n }\n\n taskLeaveVehicle(vehicle: number, flags: number): void {\n mp.game.task.leaveVehicle(this.raw.handle, vehicle, flags);\n }\n\n // --- Scenario Tasks ---\n\n taskStartScenarioAtPosition(\n scenarioName: string, x: number, y: number, z: number,\n heading: number, duration: number, sittingScenario: boolean, teleport: boolean,\n ): void {\n mp.game.task.startScenarioAtPosition(this.raw.handle, scenarioName, x, y, z, heading, duration, sittingScenario, teleport);\n }\n\n taskStartScenarioInPlace(scenarioName: string, unkDelay: number, playEnterAnim: boolean): void {\n mp.game.task.startScenarioInPlace(this.raw.handle, scenarioName, unkDelay, playEnterAnim);\n }\n\n // --- Look Tasks ---\n\n taskLookAtCoord(x: number, y: number, z: number, duration: number, p5: number, p6: number): void {\n mp.game.task.lookAtCoord(this.raw.handle, x, y, z, duration, p5, p6);\n }\n\n taskLookAtEntity(entity: number, duration: number, p3: number, p4: number): void {\n mp.game.task.lookAtEntity(this.raw.handle, entity, duration, p3, p4);\n }\n\n // --- Relationship Groups ---\n\n setRelationshipGroupHash(groupHash: number): void {\n mp.game.ped.setRelationshipGroupHash(this.raw.handle, groupHash);\n }\n\n getRelationshipGroupHash(): number {\n return mp.game.ped.getRelationshipGroupHash(this.raw.handle);\n }\n\n // --- Decorations / Blood ---\n\n addDecorationFromHashes(collection: number, overlay: number): void {\n (mp.game.ped as any).addDecorationFromHashes(this.raw.handle, collection, overlay);\n }\n\n clearDecorations(): void {\n (mp.game.ped as any).clearDecorations(this.raw.handle);\n }\n\n applyBlood(boneIndex: number, xRot: number, yRot: number, zRot: number, woundType: string): void {\n (mp.game.ped as any).applyBlood(this.raw.handle, boneIndex, xRot, yRot, zRot, woundType);\n }\n\n clearBloodDamage(): void {\n mp.game.ped.clearBloodDamage(this.raw.handle);\n }\n\n applyDamageTo(damageAmount: number, p2: boolean, p3: number): void {\n (mp.game.ped as any).applyDamageTo(this.raw.handle, damageAmount, p2, p3);\n }\n\n // --- Ragdoll (extended) ---\n\n setToRagdoll(time1: number, time2: number, ragdollType: number, p4: boolean, p5: boolean, p6: boolean): boolean {\n return mp.game.ped.setToRagdoll(this.raw.handle, time1, time2, ragdollType, p4, p5, p6);\n }\n\n isRagdoll(): boolean {\n return mp.game.ped.isRagdoll(this.raw.handle);\n }\n\n // --- Cover / Combat State ---\n\n isInCover(exceptUseWeapon: boolean = false): boolean {\n return mp.game.ped.isInCover(this.raw.handle, exceptUseWeapon);\n }\n\n isGoingIntoCover(): boolean {\n return mp.game.ped.isGoingIntoCover(this.raw.handle);\n }\n\n isInMeleeCombat(): boolean {\n return mp.game.ped.isInMeleeCombat(this.raw.handle);\n }\n\n isDoingDriveby(): boolean {\n return mp.game.ped.isDoingDriveby(this.raw.handle);\n }\n\n isFleeing(): boolean {\n return mp.game.ped.isFleeing(this.raw.handle);\n }\n\n // --- Injury / Death ---\n\n isFatallyInjured(): boolean {\n return mp.game.ped.isFatallyInjured(this.raw.handle);\n }\n\n isInjured(): boolean {\n return mp.game.ped.isInjured(this.raw.handle);\n }\n\n isDeadOrDying(p1: boolean = true): boolean {\n return mp.game.ped.isDeadOrDying(this.raw.handle, p1);\n }\n\n getSourceOfDeath(): number {\n return mp.game.ped.getSourceOfDeath(this.raw.handle);\n }\n\n getCauseOfDeath(): number {\n return mp.game.ped.getCauseOfDeath(this.raw.handle);\n }\n\n getLastDamageBone(): number {\n return mp.game.ped.getLastDamageBone(this.raw.handle);\n }\n\n clearLastDamageBone(): void {\n mp.game.ped.clearLastDamageBone(this.raw.handle);\n }\n\n // --- Accuracy / Firing ---\n\n setAccuracy(accuracy: number): void {\n mp.game.ped.setAccuracy(this.raw.handle, accuracy);\n }\n\n getAccuracy(): number {\n return mp.game.ped.getAccuracy(this.raw.handle);\n }\n\n setFiringPattern(patternHash: number): void {\n mp.game.ped.setFiringPattern(this.raw.handle, patternHash);\n }\n\n setShootRate(shootRate: number): void {\n mp.game.ped.setShootRate(this.raw.handle, shootRate);\n }\n\n // --- Targeting ---\n\n setCanBeTargetted(toggle: boolean): void {\n mp.game.ped.setCanBeTargetted(this.raw.handle, toggle);\n }\n\n setCanBeTargettedByTeam(team: number, toggle: boolean): void {\n mp.game.ped.setCanBeTargettedByTeam(this.raw.handle, team, toggle);\n }\n\n setCanBeTargettedByPlayer(player: number, toggle: boolean): void {\n mp.game.ped.setCanBeTargettedByPlayer(this.raw.handle, player, toggle);\n }\n\n // --- Damage Conditions ---\n\n setSuffersCriticalHits(toggle: boolean): void {\n mp.game.ped.setSuffersCriticalHits(this.raw.handle, toggle);\n }\n\n setDiesInWater(toggle: boolean): void {\n mp.game.ped.setDiesInWater(this.raw.handle, toggle);\n }\n\n setDiesInSinkingVehicle(toggle: boolean): void {\n mp.game.ped.setDiesInSinkingVehicle(this.raw.handle, toggle);\n }\n\n // --- Type Checks ---\n\n isMale(): boolean {\n return mp.game.ped.isMale(this.raw.handle);\n }\n\n isHuman(): boolean {\n return mp.game.ped.isHuman(this.raw.handle);\n }\n\n // --- Perception ---\n\n setSeeingRange(value: number): void {\n mp.game.ped.setSeeingRange(this.raw.handle, value);\n }\n\n setHearingRange(value: number): void {\n mp.game.ped.setHearingRange(this.raw.handle, value);\n }\n\n // --- Ducking ---\n\n setDucking(toggle: boolean): void {\n mp.game.ped.setDucking(this.raw.handle, toggle);\n }\n\n // --- Money ---\n\n getMoney(): number {\n return mp.game.ped.getMoney(this.raw.handle);\n }\n\n setMoney(amount: number): void {\n mp.game.ped.setMoney(this.raw.handle, amount);\n }\n\n // --- Stealth ---\n\n setStealthMovement(p1: boolean, action: string): void {\n mp.game.ped.setStealthMovement(this.raw.handle, p1, action);\n }\n\n getStealthMovement(): boolean {\n return mp.game.ped.getStealthMovement(this.raw.handle);\n }\n\n // --- Vehicle Intent ---\n\n getSeatIsTryingToEnter(): number {\n return mp.game.ped.getSeatIsTryingToEnter(this.raw.handle);\n }\n\n getVehicleIsTryingToEnter(): number {\n return mp.game.ped.getVehicleIsTryingToEnter(this.raw.handle);\n }\n\n getVehicleIsUsing(): number {\n return mp.game.ped.getVehicleIsUsing(this.raw.handle);\n }\n\n // --- Group System ---\n\n setAsGroupLeader(groupId: number): void {\n mp.game.ped.setAsGroupLeader(this.raw.handle, groupId);\n }\n\n setAsGroupMember(groupId: number): void {\n mp.game.ped.setAsGroupMember(this.raw.handle, groupId);\n }\n\n removeFromGroup(): void {\n mp.game.ped.removeFromGroup(this.raw.handle);\n }\n\n isGroupMember(groupId: number): boolean {\n return mp.game.ped.isGroupMember(this.raw.handle, groupId);\n }\n\n isInGroup(): boolean {\n return mp.game.ped.isInGroup(this.raw.handle);\n }\n\n // --- Additional Tasks ---\n\n taskStandStill(time: number): void {\n mp.game.task.standStill(this.raw.handle, time);\n }\n\n taskWanderStandard(p1: number = 10.0, p2: number = 10): void {\n mp.game.task.wanderStandard(this.raw.handle, p1, p2);\n }\n\n taskWanderInArea(x: number, y: number, z: number, radius: number, minimalLength: number, timeBetweenWalks: number): void {\n mp.game.task.wanderInArea(this.raw.handle, x, y, z, radius, minimalLength, timeBetweenWalks);\n }\n\n taskSmartFleeCoord(x: number, y: number, z: number, distance: number, time: number, p6: boolean = false, p7: boolean = false): void {\n mp.game.task.smartFleeCoord(this.raw.handle, x, y, z, distance, time, p6, p7);\n }\n\n taskPatrol(p1: string, p2: number, p3: boolean, p4: boolean): void {\n mp.game.task.patrol(this.raw.handle, p1, p2, p3, p4);\n }\n\n taskHandsUp(duration: number, facingPed: number, p3: number, p4: boolean): void {\n mp.game.task.handsUp(this.raw.handle, duration, facingPed, p3, p4);\n }\n\n taskPlayPhoneGestureAnimation(animDict: string, animation: string, boneMaskType: string, p4: number, p5: number, p6: boolean, p7: boolean): void {\n mp.game.task.playPhoneGestureAnimation(this.raw.handle, animDict, animation, boneMaskType, p4, p5, p6, p7);\n }\n\n taskStopPhoneGestureAnimation(p1: number = 0): void {\n mp.game.task.stopPhoneGestureAnimation(this.raw.handle, p1);\n }\n\n taskClimbLadder(p1: number): void {\n mp.game.task.climbLadder(this.raw.handle, p1);\n }\n\n taskSwapWeapon(p1: boolean): void {\n mp.game.task.swapWeapon(this.raw.handle, p1);\n }\n\n taskReloadWeapon(unused: boolean): void {\n mp.game.task.reloadWeapon(this.raw.handle, unused);\n }\n\n taskUseMobilePhone(p1: number, p2: number = 0): void {\n mp.game.task.useMobilePhone(this.raw.handle, p1, p2);\n }\n\n taskUseMobilePhoneTimed(duration: number): void {\n mp.game.task.useMobilePhoneTimed(this.raw.handle, duration);\n }\n\n // --- Movement Blend ---\n\n setMaxMoveBlendRatio(value: number): void {\n mp.game.ped.setMaxMoveBlendRatio(this.raw.handle, value);\n }\n\n // --- Resurrect ---\n\n resurrect(): void {\n mp.game.ped.resurrect(this.raw.handle);\n }\n\n // --- Secondary Task ---\n\n clearSecondaryTask(): void {\n (mp.game.ped as any).clearSecondaryTask(this.raw.handle);\n }\n}\n","import type { IObject } from \"../interfaces/IObject\";\nimport { RageMpEntity } from \"./RageMpEntity\";\n\nexport class RageMpObject extends RageMpEntity implements IObject {\n setActivatePhysicsAsSoonAsItIsUnfrozen(toggle: boolean): void {\n mp.game.object.setActivatePhysicsAsSoonAsItIsUnfrozen(this.raw.handle, toggle);\n }\n\n hasBeenBroken(): boolean {\n return mp.game.object.hasBeenBroken(this.raw.handle, 0);\n }\n\n placeOnGroundProperly(): boolean {\n return mp.game.object.placeOnGroundProperly(this.raw.handle);\n }\n\n slide(toX: number, toY: number, toZ: number, speedX: number, speedY: number, speedZ: number): boolean {\n return mp.game.object.slide(this.raw.handle, toX, toY, toZ, speedX, speedY, speedZ, false);\n }\n\n setTargetable(targetable: boolean): void {\n mp.game.object.setTargettable(this.raw.handle, targetable);\n }\n\n // --- Physics ---\n\n setPhysicsParams(\n weight: number, p1: number, p2: number, p3: number, p4: number,\n gravity: number, p6: number, p7: number, p8: number, p9: number,\n buoyancy: number,\n ): void {\n (mp.game.object as any).setPhysicsParams(\n this.raw.handle, weight, p1, p2, p3, p4, gravity, p6, p7, p8, p9, buoyancy,\n );\n }\n\n // --- Lifecycle ---\n\n markForDeletion(): void {\n (mp.game.object as any).markForDeletion(this.raw.handle);\n }\n}\n","import type { IBlip } from \"../interfaces/IBlip\";\nimport type { Vector3 } from \"../types\";\n\nexport class RageMpBlip implements IBlip {\n constructor(private readonly raw: any) {}\n\n get id(): number {\n return this.raw.id;\n }\n\n get remoteId(): number {\n return this.raw.remoteId;\n }\n\n get type(): string {\n return this.raw.type;\n }\n\n get handle(): number {\n return this.raw.handle;\n }\n\n get dimension(): number {\n return this.raw.dimension;\n }\n\n set dimension(value: number) {\n this.raw.dimension = value;\n }\n\n get position(): Vector3 {\n const p = this.raw.position;\n return { x: p.x, y: p.y, z: p.z };\n }\n\n set position(value: Vector3) {\n this.raw.position = new mp.Vector3(value.x, value.y, value.z);\n }\n\n destroy(): void {\n this.raw.destroy();\n }\n\n setSprite(sprite: number): void {\n mp.game.ui.setBlipSprite(this.raw.handle, sprite);\n }\n\n getSprite(): number {\n return mp.game.ui.getBlipSprite(this.raw.handle);\n }\n\n setColour(colour: number): void {\n mp.game.ui.setBlipColour(this.raw.handle, colour);\n }\n\n getColour(): number {\n return mp.game.ui.getBlipColour(this.raw.handle);\n }\n\n setScale(scale: number): void {\n mp.game.ui.setBlipScale(this.raw.handle, scale);\n }\n\n getScale(): number {\n return (mp.game.ui as any).getBlipScale(this.raw.handle);\n }\n\n setAlpha(alpha: number): void {\n mp.game.ui.setBlipAlpha(this.raw.handle, alpha);\n }\n\n getAlpha(): number {\n return mp.game.ui.getBlipAlpha(this.raw.handle);\n }\n\n setRotation(rotation: number): void {\n mp.game.ui.setBlipRotation(this.raw.handle, rotation);\n }\n\n getRotation(): number {\n return mp.game.ui.getBlipRotation(this.raw.handle);\n }\n\n setName(name: string): void {\n mp.game.ui.setBlipNameFromTextFile(this.raw.handle, name);\n }\n\n getName(): string {\n return (mp.game.ui as any).getBlipName(this.raw.handle);\n }\n\n setRoute(toggle: boolean): void {\n mp.game.ui.setBlipRoute(this.raw.handle, toggle);\n }\n\n setRouteColour(colour: number): void {\n mp.game.ui.setBlipRouteColour(this.raw.handle, colour);\n }\n\n setFlashes(toggle: boolean): void {\n mp.game.ui.setBlipFlashes(this.raw.handle, toggle);\n }\n\n setFlashTimer(duration: number): void {\n mp.game.ui.setBlipFlashTimer(this.raw.handle, duration);\n }\n\n setFlashInterval(interval: number): void {\n mp.game.ui.setBlipFlashInterval(this.raw.handle, interval);\n }\n\n setCategory(category: number): void {\n mp.game.ui.setBlipCategory(this.raw.handle, category);\n }\n\n setPriority(priority: number): void {\n mp.game.ui.setBlipPriority(this.raw.handle, priority);\n }\n\n setDisplay(display: number): void {\n mp.game.ui.setBlipDisplay(this.raw.handle, display);\n }\n\n setAsShortRange(toggle: boolean): void {\n mp.game.ui.setBlipAsShortRange(this.raw.handle, toggle);\n }\n\n setHighDetail(toggle: boolean): void {\n mp.game.ui.setBlipHighDetail(this.raw.handle, toggle);\n }\n\n setBright(toggle: boolean): void {\n mp.game.ui.setBlipBright(this.raw.handle, toggle);\n }\n\n setAsFriendly(toggle: boolean): void {\n mp.game.ui.setBlipAsFriendly(this.raw.handle, toggle);\n }\n\n setShowCone(toggle: boolean): void {\n mp.game.ui.setBlipShowCone(this.raw.handle, toggle, 0);\n }\n\n setShowHeadingIndicator(toggle: boolean): void {\n mp.game.ui.showHeadingIndicatorOnBlip(this.raw.handle, toggle);\n }\n\n setSecondaryColour(r: number, g: number, b: number): void {\n mp.game.ui.setBlipSecondaryColour(this.raw.handle, r, g, b);\n }\n\n pulse(): void {\n mp.game.ui.pulseBlip(this.raw.handle);\n }\n\n setFade(opacity: number, duration: number): void {\n mp.game.ui.setBlipFade(this.raw.handle, opacity, duration);\n }\n}\n","import type { ICheckpoint } from \"../interfaces/ICheckpoint\";\nimport { RageMpEntity } from \"./RageMpEntity\";\n\nexport class RageMpCheckpoint extends RageMpEntity implements ICheckpoint {\n get visible(): boolean {\n return this.raw.visible;\n }\n\n set visible(value: boolean) {\n this.raw.visible = value;\n }\n}\n","import type { IColshape } from \"../interfaces/IColshape\";\nimport { RageMpEntity } from \"./RageMpEntity\";\n\nexport class RageMpColshape extends RageMpEntity implements IColshape {\n get triggered(): boolean {\n return this.raw.triggered;\n }\n\n set triggered(value: boolean) {\n this.raw.triggered = value;\n }\n}\n","import type { ICamera } from \"../interfaces/ICamera\";\nimport type { Vector3 } from \"../types\";\n\nexport class RageMpCamera implements ICamera {\n constructor(private readonly raw: any) {}\n\n get handle(): number {\n return this.raw.handle;\n }\n\n getCoord(): Vector3 {\n const p = mp.game.cam.getCoord(this.raw.handle);\n return { x: p.x, y: p.y, z: p.z };\n }\n\n setCoord(x: number, y: number, z: number): void {\n mp.game.cam.setCoord(this.raw.handle, x, y, z);\n }\n\n getRot(): Vector3 {\n const r = mp.game.cam.getRot(this.raw.handle, 2);\n return { x: r.x, y: r.y, z: r.z };\n }\n\n setRot(x: number, y: number, z: number, rotationOrder: number): void {\n mp.game.cam.setRot(this.raw.handle, x, y, z, rotationOrder);\n }\n\n getFov(): number {\n return mp.game.cam.getFov(this.raw.handle);\n }\n\n setFov(fov: number): void {\n mp.game.cam.setFov(this.raw.handle, fov);\n }\n\n isActive(): boolean {\n return mp.game.cam.isActive(this.raw.handle);\n }\n\n setActive(toggle: boolean): void {\n mp.game.cam.setActive(this.raw.handle, toggle);\n }\n\n setActiveWithInterp(camFrom: number, duration: number, easeLocation: number, easeRotation: number): void {\n mp.game.cam.setActiveWithInterp(this.raw.handle, camFrom, duration, easeLocation, easeRotation);\n }\n\n pointAtCoord(x: number, y: number, z: number): void {\n mp.game.cam.pointAtCoord(this.raw.handle, x, y, z);\n }\n\n pointAt(entity: number): void {\n mp.game.cam.pointAtEntity(this.raw.handle, entity, 0, 0, 0, true);\n }\n\n stopPointing(): void {\n mp.game.cam.stopPointing(this.raw.handle);\n }\n\n shake(type: string, amplitude: number): void {\n mp.game.cam.shake(this.raw.handle, type, amplitude);\n }\n\n isShaking(): boolean {\n return mp.game.cam.isShaking(this.raw.handle);\n }\n\n setShakeAmplitude(amplitude: number): void {\n mp.game.cam.setShakeAmplitude(this.raw.handle, amplitude);\n }\n\n stopShaking(p0: boolean): void {\n mp.game.cam.stopShaking(this.raw.handle, p0);\n }\n\n isRendering(): boolean {\n return mp.game.cam.isRendering(this.raw.handle);\n }\n\n isInterpolating(): boolean {\n return mp.game.cam.isInterpolating(this.raw.handle);\n }\n\n setFarClip(farClip: number): void {\n mp.game.cam.setFarClip(this.raw.handle, farClip);\n }\n\n setNearClip(nearClip: number): void {\n mp.game.cam.setNearClip(this.raw.handle, nearClip);\n }\n\n setFarDof(farDof: number): void {\n mp.game.cam.setFarDof(this.raw.handle, farDof);\n }\n\n setNearDof(nearDof: number): void {\n mp.game.cam.setNearDof(this.raw.handle, nearDof);\n }\n\n setDofStrength(strength: number): void {\n mp.game.cam.setDofStrength(this.raw.handle, strength);\n }\n\n setUseShallowDofMode(toggle: boolean): void {\n mp.game.cam.setUseShallowDofMode(this.raw.handle, toggle);\n }\n\n setMotionBlurStrength(strength: number): void {\n mp.game.cam.setMotionBlurStrength(this.raw.handle, strength);\n }\n\n attachTo(entity: number, xOffset: number, yOffset: number, zOffset: number, isRelative: boolean): void {\n mp.game.cam.attachToEntity(this.raw.handle, entity, xOffset, yOffset, zOffset, isRelative);\n }\n\n detach(): void {\n mp.game.cam.detach(this.raw.handle);\n }\n\n destroy(): void {\n mp.game.cam.destroy(this.raw.handle, false);\n }\n}\n","import type { IBrowser } from \"../interfaces/IBrowser\";\n\nexport class RageMpBrowser implements IBrowser {\n constructor(private readonly raw: any) {}\n\n get active(): boolean {\n return this.raw.active;\n }\n\n set active(value: boolean) {\n this.raw.active = value;\n }\n\n get url(): string {\n return this.raw.url;\n }\n\n set url(value: string) {\n this.raw.url = value;\n }\n\n get inputEnabled(): boolean {\n return this.raw.inputEnabled;\n }\n\n set inputEnabled(value: boolean) {\n this.raw.inputEnabled = value;\n }\n\n get orderId(): number {\n return this.raw.orderId;\n }\n\n set orderId(value: number) {\n this.raw.orderId = value;\n }\n\n destroy(): void {\n this.raw.destroy();\n }\n\n execute(code: string): void {\n this.raw.execute(code);\n }\n\n executeCached(code: string): void {\n this.raw.executeCached(code);\n }\n\n call(eventName: string, ...args: unknown[]): void {\n this.raw.call(eventName, ...args);\n }\n\n callProc(procName: string, ...args: unknown[]): Promise<unknown> {\n return this.raw.callProc(procName, ...args);\n }\n\n reload(ignoreCache: boolean): void {\n this.raw.reload(ignoreCache);\n }\n\n sendMouseMoveEvent(x: number, y: number): void {\n this.raw.sendMouseMoveEvent(x, y);\n }\n\n sendMouseClickEvent(x: number, y: number, button: number, isUp: boolean): void {\n this.raw.sendMouseClickEvent(x, y, button, isUp);\n }\n}\n","import type { ITextLabel } from \"../interfaces/ITextLabel\";\nimport type { RGBA } from \"../types\";\nimport { RageMpEntity } from \"./RageMpEntity\";\n\nexport class RageMpTextLabel extends RageMpEntity implements ITextLabel {\n get color(): RGBA {\n return this.raw.color;\n }\n\n set color(value: RGBA) {\n this.raw.color = value;\n }\n\n get drawDistance(): number {\n return this.raw.drawDistance;\n }\n\n set drawDistance(value: number) {\n this.raw.drawDistance = value;\n }\n\n get los(): boolean {\n return this.raw.los;\n }\n\n set los(value: boolean) {\n this.raw.los = value;\n }\n\n get text(): string {\n return this.raw.text;\n }\n\n set text(value: string) {\n this.raw.text = value;\n }\n}\n","import type { IMarker } from \"../interfaces/IMarker\";\nimport { RageMpEntity } from \"./RageMpEntity\";\n\nexport class RageMpMarker extends RageMpEntity implements IMarker {}\n","import type { IPickup } from \"../interfaces/IPickup\";\nimport { RageMpEntity } from \"./RageMpEntity\";\n\nexport class RageMpPickup extends RageMpEntity implements IPickup {}\n","import type { IEvents } from \"../interfaces/IEvents\";\n\nexport class RageMpEvents implements IEvents {\n add(eventNameOrEvents: string | Record<string, (...args: unknown[]) => void>, callback?: (...args: unknown[]) => void): void {\n if (typeof eventNameOrEvents === \"string\") {\n mp.events.add(eventNameOrEvents, callback!);\n } else {\n for (const [name, cb] of Object.entries(eventNameOrEvents)) {\n mp.events.add(name, cb);\n }\n }\n }\n\n remove(eventName: string, callback?: (...args: unknown[]) => void): void {\n mp.events.remove(eventName, callback);\n }\n\n call(eventName: string, ...args: unknown[]): void {\n mp.events.call(eventName, ...args);\n }\n\n callRemote(eventName: string, ...args: unknown[]): void {\n mp.events.callRemote(eventName, ...args);\n }\n\n callRemoteProc(procName: string, ...args: unknown[]): Promise<unknown> {\n return mp.events.callRemoteProc(procName, ...args);\n }\n\n callRemoteUnreliable(eventName: string, ...args: unknown[]): void {\n mp.events.callRemoteUnreliable(eventName, ...args);\n }\n\n addProc(procName: string, callback: (...args: unknown[]) => unknown): void {\n mp.events.addProc(procName, callback);\n }\n\n addDataHandler(key: string, callback: (entity: unknown, value: unknown, oldValue: unknown) => void): void {\n mp.events.addDataHandler(key, callback);\n }\n\n cancelPendingProc(procName: string): void {\n mp.events.cancelPendingProc(procName);\n }\n\n hasPendingProc(procName: string): boolean {\n return mp.events.hasPendingProc(procName);\n }\n}\n","import type { IGui, IGuiChat, IGuiCursor } from \"../interfaces/IGui\";\nimport type { Array2d } from \"../types\";\n\nclass RageMpGuiChat implements IGuiChat {\n get colors(): boolean {\n return mp.gui.chat.colors;\n }\n\n set colors(value: boolean) {\n mp.gui.chat.colors = value;\n }\n\n get safeMode(): boolean {\n return mp.gui.chat.safeMode;\n }\n\n set safeMode(value: boolean) {\n mp.gui.chat.safeMode = value;\n }\n\n activate(toggle: boolean): void {\n mp.gui.chat.activate(toggle);\n }\n\n push(text: string): void {\n mp.gui.chat.push(text);\n }\n\n show(toggle: boolean): void {\n mp.gui.chat.show(toggle);\n }\n}\n\nclass RageMpGuiCursor implements IGuiCursor {\n get position(): Array2d {\n return mp.gui.cursor.position;\n }\n\n set position(value: Array2d) {\n (mp.gui.cursor as any).position = value;\n }\n\n get visible(): boolean {\n return mp.gui.cursor.visible;\n }\n\n set visible(value: boolean) {\n mp.gui.cursor.visible = value;\n }\n\n show(freezeControls: boolean, toggle: boolean): void {\n mp.gui.cursor.show(freezeControls, toggle);\n }\n}\n\nexport class RageMpGui implements IGui {\n readonly chat: IGuiChat = new RageMpGuiChat();\n readonly cursor: IGuiCursor = new RageMpGuiCursor();\n\n get isGpuRenderingEnabled(): boolean {\n return mp.gui.isGpuRenderingEnabled;\n }\n\n takeScreenshot(name: string, type: number, quality: number, compressionQuality: number): void {\n mp.gui.takeScreenshot(name, type, quality, compressionQuality);\n }\n\n execute(code: string): void {\n mp.gui.execute(code);\n }\n}\n","import type { IKeys } from \"../interfaces/IKeys\";\n\nexport class RageMpKeys implements IKeys {\n bind(keyCode: number, keyHold: boolean, callback: () => void): void {\n mp.keys.bind(keyCode, keyHold, callback);\n }\n\n unbind(keyCode: number, keyHold: boolean, callback?: () => void): void {\n mp.keys.unbind(keyCode, keyHold, callback);\n }\n\n isUp(keyCode: number): boolean {\n return mp.keys.isUp(keyCode);\n }\n\n isDown(keyCode: number): boolean {\n return mp.keys.isDown(keyCode);\n }\n}\n","import type { IStorage } from \"../interfaces/IStorage\";\n\nexport class RageMpStorage implements IStorage {\n get data(): Record<string, unknown> {\n return mp.storage.data as Record<string, unknown>;\n }\n\n set data(value: Record<string, unknown>) {\n mp.storage.data = value;\n }\n\n get sessionData(): Record<string, unknown> {\n return mp.storage.sessionData as Record<string, unknown>;\n }\n\n set sessionData(value: Record<string, unknown>) {\n mp.storage.sessionData = value;\n }\n\n flush(): void {\n mp.storage.flush();\n }\n}\n","import type { IVoiceChat } from \"../interfaces/IVoiceChat\";\n\nexport class RageMpVoiceChat implements IVoiceChat {\n get isAllowed(): boolean {\n return mp.voiceChat.isAllowed;\n }\n\n get lastVad(): number {\n return mp.voiceChat.lastVad;\n }\n\n get muted(): boolean {\n return mp.voiceChat.muted;\n }\n\n set muted(value: boolean) {\n mp.voiceChat.muted = value;\n }\n\n get minVad(): number {\n return mp.voiceChat.minVad;\n }\n\n set minVad(value: number) {\n mp.voiceChat.minVad = value;\n }\n\n get advancedNoiseSuppression(): boolean {\n return mp.voiceChat.advancedNoiseSuppression;\n }\n\n set advancedNoiseSuppression(value: boolean) {\n mp.voiceChat.advancedNoiseSuppression = value;\n }\n\n get networkOptimisations(): boolean {\n return mp.voiceChat.networkOptimisations;\n }\n\n set networkOptimisations(value: boolean) {\n mp.voiceChat.networkOptimisations = value;\n }\n\n get bitrate(): number {\n return mp.voiceChat.bitrate;\n }\n\n set bitrate(value: number) {\n mp.voiceChat.bitrate = value;\n }\n\n get defaultVolume(): number {\n return mp.voiceChat.defaultVolume;\n }\n\n set defaultVolume(value: number) {\n mp.voiceChat.defaultVolume = value;\n }\n\n get gameOutputEnabled(): boolean {\n return mp.voiceChat.gameOutputEnabled;\n }\n\n set gameOutputEnabled(value: boolean) {\n mp.voiceChat.gameOutputEnabled = value;\n }\n\n get gameOutputCategory(): string {\n return mp.voiceChat.gameOutputCategory as unknown as string;\n }\n\n set gameOutputCategory(value: string) {\n mp.voiceChat.gameOutputCategory = value as unknown as number;\n }\n\n getPreprocessingParam(param: string): unknown {\n return mp.voiceChat.getPreprocessingParam(param as unknown as number);\n }\n\n setPreprocessingParam(param: string, value: unknown): void {\n mp.voiceChat.setPreprocessingParam(param as unknown as number, value);\n }\n\n cleanupAndReload(force: boolean, clearTemporary: boolean): void {\n mp.voiceChat.cleanupAndReload(force, clearTemporary, false);\n }\n}\n","import type { INametags } from \"../interfaces/INametags\";\nimport type { NametagsStyle } from \"../types\";\n\nexport class RageMpNametags implements INametags {\n get enabled(): boolean {\n return mp.nametags.enabled;\n }\n\n set enabled(value: boolean) {\n mp.nametags.enabled = value;\n }\n\n set(style: NametagsStyle): void {\n mp.nametags.set({\n ...style,\n veh_offset: style.vehOffset,\n } as any);\n }\n\n useScreen2dCoords(toggle: boolean): void {\n mp.nametags.useScreen2dCoords(toggle);\n }\n\n orderByDistance(toggle: boolean): void {\n mp.nametags.orderByDistance(toggle);\n }\n}\n","import type { IRaycasting } from \"../interfaces/IRaycasting\";\nimport type { RaycastResult, Vector3 } from \"../types\";\n\nexport class RageMpRaycasting implements IRaycasting {\n testPointToPoint(startPos: Vector3, endPos: Vector3, ignoreEntity: number, flags: number): RaycastResult {\n const result = mp.raycasting.testPointToPoint(\n new mp.Vector3(startPos.x, startPos.y, startPos.z),\n new mp.Vector3(endPos.x, endPos.y, endPos.z),\n ignoreEntity as unknown as EntityMp | undefined,\n flags,\n );\n return {\n entity: result.entity as unknown as number,\n position: { x: result.position.x, y: result.position.y, z: result.position.z },\n surfaceNormal: { x: result.surfaceNormal.x, y: result.surfaceNormal.y, z: result.surfaceNormal.z },\n };\n }\n\n async testPointToPointAsync(startPos: Vector3, endPos: Vector3, ignoreEntity: number, flags: number): Promise<RaycastResult> {\n const result = await mp.raycasting.testPointToPointAsync(\n new mp.Vector3(startPos.x, startPos.y, startPos.z),\n new mp.Vector3(endPos.x, endPos.y, endPos.z),\n ignoreEntity as unknown as EntityMp | undefined,\n flags,\n );\n return {\n entity: result.entity as unknown as number,\n position: { x: result.position.x, y: result.position.y, z: result.position.z },\n surfaceNormal: { x: result.surfaceNormal.x, y: result.surfaceNormal.y, z: result.surfaceNormal.z },\n };\n }\n\n testCapsule(startPos: Vector3, endPos: Vector3, radius: number, ignoreEntity: number, flags: number): RaycastResult {\n const result = mp.raycasting.testCapsule(\n new mp.Vector3(startPos.x, startPos.y, startPos.z),\n new mp.Vector3(endPos.x, endPos.y, endPos.z),\n radius,\n ignoreEntity as unknown as EntityMp | undefined,\n flags,\n );\n return {\n entity: result.entity as unknown as number,\n position: { x: result.position.x, y: result.position.y, z: result.position.z },\n surfaceNormal: { x: result.surfaceNormal.x, y: result.surfaceNormal.y, z: result.surfaceNormal.z },\n };\n }\n}\n","import type { IConsole } from \"../interfaces/IConsole\";\n\nexport class RageMpConsole implements IConsole {\n get verbosity(): number {\n return mp.console.verbosity as unknown as number;\n }\n\n set verbosity(value: number) {\n mp.console.verbosity = value as unknown as string;\n }\n\n logInfo(message: string): void {\n mp.console.logInfo(message);\n }\n\n logWarning(message: string): void {\n mp.console.logWarning(message);\n }\n\n logError(message: string): void {\n mp.console.logError(message);\n }\n\n logFatal(message: string): void {\n mp.console.logFatal(message);\n }\n\n clear(): void {\n mp.console.clear();\n }\n\n reset(): void {\n mp.console.reset();\n }\n}\n","import type { IDiscord } from \"../interfaces/IDiscord\";\n\nexport class RageMpDiscord implements IDiscord {\n update(details: string, state: string): void {\n mp.discord.update(details, state);\n }\n\n requestOAuth2(appId: string, scopes: string): Promise<string> {\n return mp.discord.requestOAuth2(appId);\n }\n}\n","import type { ISystem } from \"../interfaces/ISystem\";\nimport type { SystemNotifyArgs } from \"../types\";\n\nexport class RageMpSystem implements ISystem {\n get isFullscreen(): boolean {\n return mp.system.isFullscreen;\n }\n\n get isFocused(): boolean {\n return mp.system.isFocused;\n }\n\n notify(args: SystemNotifyArgs): void {\n mp.system.notify(args);\n }\n}\n","import type { IUser, IUserPreferences } from \"../interfaces/IUser\";\n\nclass RageMpUserPreferences implements IUserPreferences {\n get lowQualityAssets(): boolean {\n return mp.user.preferences.lowQualityAssets;\n }\n\n get language(): string {\n return mp.user.preferences.language;\n }\n\n get serverAddress(): string {\n return mp.user.preferences.serverAddress;\n }\n}\n\nexport class RageMpUser implements IUser {\n readonly preferences: IUserPreferences = new RageMpUserPreferences();\n}\n","import type { INativesBridge } from \"../interfaces/INativesBridge\";\n\nexport class RageMpNativesBridge implements INativesBridge {\n invoke(namespace: string, name: string, ...args: unknown[]): unknown {\n const ns = (mp.game as any)[namespace];\n if (!ns) {\n throw new Error(`Native namespace \"${namespace}\" not found`);\n }\n const fn = ns[name];\n if (typeof fn !== \"function\") {\n throw new Error(`Native \"${namespace}.${name}\" is not a function`);\n }\n return fn(...args);\n }\n}\n","import type { IWeapon } from \"../interfaces/IWeapon\";\n\nexport class RageMpWeapon implements IWeapon {\n // --- Give / Remove ---\n\n giveComponentToPed(ped: number, weaponHash: number, componentHash: number): void {\n mp.game.weapon.giveComponentToPed(ped, weaponHash, componentHash);\n }\n\n removeComponentFromPed(ped: number, weaponHash: number, componentHash: number): void {\n mp.game.weapon.removeComponentFromPed(ped, weaponHash, componentHash);\n }\n\n hasPedGotComponent(ped: number, weaponHash: number, componentHash: number): boolean {\n return mp.game.weapon.hasPedGotComponent(ped, weaponHash, componentHash);\n }\n\n isPedComponentActive(ped: number, weaponHash: number, componentHash: number): boolean {\n return mp.game.weapon.isPedComponentActive(ped, weaponHash, componentHash);\n }\n\n removeFromPed(ped: number, weaponHash: number): void {\n mp.game.weapon.removeFromPed(ped, weaponHash);\n }\n\n // --- Ammo ---\n\n setPedInfiniteAmmo(ped: number, toggle: boolean, weaponHash: number): void {\n mp.game.weapon.setPedInfiniteAmmo(ped, toggle, weaponHash);\n }\n\n setPedInfiniteAmmoClip(ped: number, toggle: boolean): void {\n mp.game.weapon.setPedInfiniteAmmoClip(ped, toggle);\n }\n\n getMaxAmmo(ped: number, weaponHash: number): number {\n return mp.game.weapon.getMaxAmmo(ped, weaponHash);\n }\n\n getMaxAmmoInClip(ped: number, weaponHash: number, p2: boolean = false): number {\n return mp.game.weapon.getMaxAmmoInClip(ped, weaponHash, p2);\n }\n\n getClipSize(weaponHash: number): number {\n return mp.game.weapon.getClipSize(weaponHash);\n }\n\n getAmmoInPed(ped: number, weaponHash: number): number {\n return mp.game.weapon.getAmmoInPed(ped, weaponHash);\n }\n\n addAmmoToPed(ped: number, weaponHash: number, ammo: number): void {\n mp.game.weapon.addAmmoToPed(ped, weaponHash, ammo);\n }\n\n setPedAmmo(ped: number, weaponHash: number, ammo: number, p3: boolean = false): void {\n mp.game.weapon.setPedAmmo(ped, weaponHash, ammo, p3);\n }\n\n // --- Current Weapon ---\n\n getCurrentPed(ped: number, p2: boolean = true): number {\n return mp.game.weapon.getCurrentPed(ped, p2);\n }\n\n setCurrentPed(ped: number, weaponHash: number, bForceInHand: boolean = true): void {\n mp.game.weapon.setCurrentPed(ped, weaponHash, bForceInHand);\n }\n\n // --- Tint ---\n\n setPedTintIndex(ped: number, weaponHash: number, tintIndex: number): void {\n mp.game.weapon.setPedTintIndex(ped, weaponHash, tintIndex);\n }\n\n getPedTintIndex(ped: number, weaponHash: number): number {\n return mp.game.weapon.getPedTintIndex(ped, weaponHash);\n }\n\n // --- Damage ---\n\n hasPedBeenDamagedBy(ped: number, weaponHash: number, weaponType: number): boolean {\n return mp.game.weapon.hasPedBeenDamagedBy(ped, weaponHash, weaponType);\n }\n\n clearPedLastDamage(ped: number): void {\n mp.game.weapon.clearPedLastDamage(ped);\n }\n\n getDamage(weaponHash: number, componentHash: number): number {\n return mp.game.weapon.getDamage(weaponHash, componentHash);\n }\n\n getTimeBetweenShots(weaponHash: number): number {\n return mp.game.weapon.getTimeBetweenShots(weaponHash);\n }\n\n // --- Drops ---\n\n setPedDropsWeaponsWhenDead(ped: number, toggle: boolean): void {\n mp.game.weapon.setPedDropsWeaponsWhenDead(ped, toggle);\n }\n\n setPedDrops(ped: number): void {\n mp.game.weapon.setPedDrops(ped);\n }\n\n // --- Actions ---\n\n makePedReload(ped: number): boolean {\n return mp.game.weapon.makePedReload(ped);\n }\n\n isPedArmed(ped: number, typeFlags: number): boolean {\n return mp.game.weapon.isPedArmed(ped, typeFlags);\n }\n\n // --- Weapon Info ---\n\n hasPedGot(ped: number, weaponHash: number, p2: boolean = false): boolean {\n return mp.game.weapon.hasPedGot(ped, weaponHash, p2);\n }\n\n getWeapontypeGroup(weaponHash: number): number {\n return mp.game.weapon.getWeapontypeGroup(weaponHash);\n }\n\n setCurrentDamageEventAmount(amount: number): void {\n mp.game.weapon.setCurrentDamageEventAmount(amount);\n }\n}\n","import type { IStreaming } from \"../interfaces/IStreaming\";\n\nexport class RageMpStreaming implements IStreaming {\n // --- Model Loading ---\n\n requestModel(model: number): void {\n mp.game.streaming.requestModel(model);\n }\n\n hasModelLoaded(model: number): boolean {\n return mp.game.streaming.hasModelLoaded(model);\n }\n\n setModelAsNoLongerNeeded(model: number): void {\n mp.game.streaming.setModelAsNoLongerNeeded(model);\n }\n\n isModelValid(model: number): boolean {\n return mp.game.streaming.isModelValid(model);\n }\n\n isModelAPed(model: number): boolean {\n return mp.game.streaming.isModelAPed(model);\n }\n\n isModelAVehicle(model: number): boolean {\n return mp.game.streaming.isModelAVehicle(model);\n }\n\n // --- Animation Dicts ---\n\n requestAnimDict(animDict: string): void {\n mp.game.streaming.requestAnimDict(animDict);\n }\n\n hasAnimDictLoaded(animDict: string): boolean {\n return mp.game.streaming.hasAnimDictLoaded(animDict);\n }\n\n removeAnimDict(animDict: string): void {\n mp.game.streaming.removeAnimDict(animDict);\n }\n\n // --- Animation Sets ---\n\n requestAnimSet(animSet: string): void {\n mp.game.streaming.requestAnimSet(animSet);\n }\n\n hasAnimSetLoaded(animSet: string): boolean {\n return mp.game.streaming.hasAnimSetLoaded(animSet);\n }\n\n removeAnimSet(animSet: string): void {\n mp.game.streaming.removeAnimSet(animSet);\n }\n\n // --- Clip Sets ---\n\n requestClipSet(clipSet: string): void {\n mp.game.streaming.requestClipSet(clipSet);\n }\n\n hasClipSetLoaded(clipSet: string): boolean {\n return mp.game.streaming.hasClipSetLoaded(clipSet);\n }\n\n removeClipSet(clipSet: string): void {\n mp.game.streaming.removeClipSet(clipSet);\n }\n\n // --- IPL ---\n\n requestIpl(iplName: string): void {\n mp.game.streaming.requestIpl(iplName);\n }\n\n removeIpl(iplName: string): void {\n mp.game.streaming.removeIpl(iplName);\n }\n\n isIplActive(iplName: string): boolean {\n return mp.game.streaming.isIplActive(iplName);\n }\n\n // --- Particle Effects ---\n\n requestNamedPtfxAsset(fxName: string): void {\n mp.game.streaming.requestNamedPtfxAsset(fxName);\n }\n\n hasNamedPtfxAssetLoaded(fxName: string): boolean {\n return mp.game.streaming.hasNamedPtfxAssetLoaded(fxName);\n }\n\n removeNamedPtfxAsset(fxName: string): void {\n mp.game.streaming.removeNamedPtfxAsset(fxName);\n }\n\n // --- Collision ---\n\n requestCollisionAtCoord(x: number, y: number, z: number): void {\n mp.game.streaming.requestCollisionAtCoord(x, y, z);\n }\n\n hasCollisionForModelLoaded(model: number): boolean {\n return mp.game.streaming.hasCollisionForModelLoaded(model);\n }\n}\n","import type { IWorld } from \"../interfaces/IWorld\";\nimport type { Vector3 } from \"../types\";\n\nexport class RageMpWorld implements IWorld {\n // --- Clock ---\n\n setClockTime(hour: number, minute: number, second: number): void {\n mp.game.clock.setTime(hour, minute, second);\n }\n\n getClockHours(): number {\n return mp.game.clock.getHours();\n }\n\n getClockMinutes(): number {\n return mp.game.clock.getMinutes();\n }\n\n getClockSeconds(): number {\n return mp.game.clock.getSeconds();\n }\n\n setClockDate(day: number, month: number, year: number): void {\n mp.game.clock.setDate(day, month, year);\n }\n\n getClockDayOfWeek(): number {\n return mp.game.clock.getDayOfWeek();\n }\n\n getClockDayOfMonth(): number {\n return mp.game.clock.getDayOfMonth();\n }\n\n getClockMonth(): number {\n return mp.game.clock.getMonth();\n }\n\n getClockYear(): number {\n return mp.game.clock.getYear();\n }\n\n pauseClock(toggle: boolean): void {\n mp.game.clock.pause(toggle);\n }\n\n advanceClockTimeTo(hour: number, minute: number, second: number): void {\n mp.game.clock.advanceTimeTo(hour, minute, second);\n }\n\n addToClockTime(hours: number, minutes: number, seconds: number): void {\n mp.game.clock.addToTime(hours, minutes, seconds);\n }\n\n getMillisecondsPerGameMinute(): number {\n return mp.game.clock.getMillisecondsPerGameMinute();\n }\n\n // --- Fire ---\n\n addExplosion(\n x: number, y: number, z: number,\n explosionType: number, damageScale: number,\n isAudible: boolean, isInvisible: boolean,\n cameraShake: number, noDamage: boolean,\n ): void {\n mp.game.fire.addExplosion(x, y, z, explosionType, damageScale, isAudible, isInvisible, cameraShake, noDamage);\n }\n\n addOwnedExplosion(\n ped: number, x: number, y: number, z: number,\n explosionType: number, damageScale: number,\n isAudible: boolean, isInvisible: boolean,\n cameraShake: number,\n ): void {\n mp.game.fire.addOwnedExplosion(ped, x, y, z, explosionType, damageScale, isAudible, isInvisible, cameraShake);\n }\n\n startEntityFire(entity: number): number {\n return mp.game.fire.startEntity(entity);\n }\n\n stopEntityFire(entity: number): void {\n mp.game.fire.stopEntity(entity);\n }\n\n isEntityOnFire(entity: number): boolean {\n return mp.game.fire.isEntityOn(entity);\n }\n\n getNumberOfFiresInRange(x: number, y: number, z: number, radius: number): number {\n return mp.game.fire.getNumberOfFiresInRange(x, y, z, radius);\n }\n\n stopFireInRange(x: number, y: number, z: number, radius: number): void {\n mp.game.fire.stopInRange(x, y, z, radius);\n }\n\n isExplosionInArea(explosionType: number, x1: number, y1: number, z1: number, x2: number, y2: number, z2: number): boolean {\n return mp.game.fire.isExplosionInArea(explosionType, x1, y1, z1, x2, y2, z2);\n }\n\n isExplosionInSphere(explosionType: number, x: number, y: number, z: number, radius: number): boolean {\n return mp.game.fire.isExplosionInSphere(explosionType, x, y, z, radius);\n }\n\n // --- Water ---\n\n getWaterHeight(x: number, y: number, z: number): number {\n return mp.game.water.getHeight(x, y, z);\n }\n\n getWaterHeightNoWaves(x: number, y: number, z: number): number {\n return mp.game.water.getHeightNoWaves(x, y, z);\n }\n\n testVerticalProbeAgainstAllWater(x: number, y: number, z: number, p3: number): number {\n return mp.game.water.testVerticalProbeAgainstAll(x, y, z, p3);\n }\n\n // --- Interior ---\n\n getInteriorAtCoords(x: number, y: number, z: number): number {\n return mp.game.interior.getAtCoords(x, y, z);\n }\n\n getInteriorAtCoordsWithType(x: number, y: number, z: number, interiorType: string): number {\n return mp.game.interior.getAtCoordsWithType(x, y, z, interiorType);\n }\n\n getInteriorFromEntity(entity: number): number {\n return mp.game.interior.getFromEntity(entity);\n }\n\n activateInteriorEntitySet(interior: number, entitySetName: string): void {\n mp.game.interior.activateEntitySet(interior, entitySetName);\n }\n\n deactivateInteriorEntitySet(interior: number, entitySetName: string): void {\n mp.game.interior.deactivateEntitySet(interior, entitySetName);\n }\n\n isInteriorEntitySetActive(interior: number, entitySetName: string): boolean {\n return mp.game.interior.isEntitySetActive(interior, entitySetName);\n }\n\n pinInteriorInMemory(interior: number): void {\n mp.game.interior.pinInMemory(interior);\n }\n\n unpinInterior(interior: number): void {\n mp.game.interior.unpin(interior);\n }\n\n isInteriorReady(interior: number): boolean {\n return mp.game.interior.isReady(interior);\n }\n\n refreshInterior(interior: number): void {\n mp.game.interior.refresh(interior);\n }\n\n // --- Zone ---\n\n getZoneAtCoords(x: number, y: number, z: number): number {\n return mp.game.zone.getAtCoords(x, y, z);\n }\n\n getZoneFromNameId(zoneName: string): number {\n return mp.game.zone.getFromNameId(zoneName);\n }\n\n getNameOfZone(x: number, y: number, z: number): string {\n return mp.game.zone.getNameOf(x, y, z);\n }\n\n // --- Weather ---\n\n setWeatherTypeNow(weatherType: string): void {\n mp.game.misc.setWeatherTypeNow(weatherType);\n }\n\n setWeatherTypePersist(weatherType: string): void {\n mp.game.misc.setWeatherTypePersist(weatherType);\n }\n\n setWeatherTypeOverTime(weatherType: string, time: number): void {\n mp.game.misc.setWeatherTypeOverTime(weatherType, time);\n }\n\n clearWeatherTypePersist(): void {\n mp.game.misc.clearWeatherTypePersist();\n }\n\n setOverrideWeather(weatherType: string): void {\n mp.game.misc.setOverrideWeather(weatherType);\n }\n\n clearOverrideWeather(): void {\n mp.game.misc.clearOverrideWeather();\n }\n\n setWindSpeed(speed: number): void {\n mp.game.misc.setWindSpeed(speed);\n }\n\n getWindSpeed(): number {\n return mp.game.misc.getWindSpeed();\n }\n\n getWindDirection(): Vector3 {\n const v = mp.game.misc.getWindDirection() as any;\n return { x: v.x, y: v.y, z: v.z };\n }\n\n getRainLevel(): number {\n return mp.game.misc.getRainLevel();\n }\n\n getSnowLevel(): number {\n return mp.game.misc.getSnowLevel();\n }\n\n // --- Water (extended) ---\n\n setDeepOceanScaler(intensity: number): void {\n mp.game.water.setDeepOceanScaler(intensity);\n }\n\n // --- Interior (extended) ---\n\n enableInteriorProp(interior: number, propName: string): void {\n (mp.game.interior as any).enableInteriorProp(interior, propName);\n }\n\n // --- Scenario ---\n\n setScenarioTypeEnabled(scenarioType: string, toggle: boolean): void {\n mp.game.task.setScenarioTypeEnabled(scenarioType, toggle);\n }\n\n // --- GXT ---\n\n setGxtEntry(labelNameOrHash: string, newLabelValue: string): void {\n mp.game.gxt.set(labelNameOrHash, newLabelValue);\n }\n\n // --- Stats ---\n\n statSetInt(statName: number, value: number, save: boolean = true): boolean {\n return mp.game.stats.statSetInt(statName, value, save);\n }\n\n // --- Object Natives ---\n\n createObject(modelHash: number, x: number, y: number, z: number, isNetwork: boolean, bScriptHostObj: boolean, dynamic: boolean): number {\n return mp.game.object.createObject(modelHash, x, y, z, isNetwork, bScriptHostObj, dynamic);\n }\n\n deleteObject(object: number): void {\n mp.game.object.deleteObject(object);\n }\n\n getObjectOffsetFromCoords(xPos: number, yPos: number, zPos: number, heading: number, xOffset: number, yOffset: number, zOffset: number): Vector3 {\n const v = mp.game.object.getObjectOffsetFromCoords(xPos, yPos, zPos, heading, xOffset, yOffset, zOffset) as any;\n return { x: v.x, y: v.y, z: v.z };\n }\n\n // --- Shapetest ---\n\n startShapeTestLosProbe(x1: number, y1: number, z1: number, x2: number, y2: number, z2: number, flags: number, entity: number, p8: number): number {\n return mp.game.shapetest.startExpensiveSynchronousShapeTestLosProbe(x1, y1, z1, x2, y2, z2, flags, entity, p8);\n }\n\n getShapeTestResult(shapeTestHandle: number): { hit: boolean; endCoords: Vector3; surfaceNormal: Vector3; entityHit: number; result: number } {\n const r = mp.game.shapetest.getShapeTestResult(shapeTestHandle) as any;\n return {\n hit: r.hit ?? false,\n endCoords: { x: r.endCoords?.x ?? 0, y: r.endCoords?.y ?? 0, z: r.endCoords?.z ?? 0 },\n surfaceNormal: { x: r.surfaceNormal?.x ?? 0, y: r.surfaceNormal?.y ?? 0, z: r.surfaceNormal?.z ?? 0 },\n entityHit: r.entityHit ?? 0,\n result: r.result ?? 0,\n };\n }\n\n // --- Graphics ---\n\n getScreenCoordFromWorldCoord(worldX: number, worldY: number, worldZ: number): { success: boolean; screenX: number; screenY: number } {\n const result = mp.game.graphics.getScreenCoordFromWorldCoord(worldX, worldY, worldZ) as any;\n if (typeof result === \"boolean\") {\n return { success: false, screenX: 0, screenY: 0 };\n }\n return { success: true, screenX: result.x ?? result[0], screenY: result.y ?? result[1] };\n }\n\n getActiveScreenResolution(): { x: number; y: number } {\n const r = mp.game.graphics.getActiveScreenResolution() as any;\n return { x: r.x ?? r[0], y: r.y ?? r[1] };\n }\n\n getScreenResolution(): { x: number; y: number } {\n const r = mp.game.graphics.getScreenResolution() as any;\n return { x: r.x ?? r[0], y: r.y ?? r[1] };\n }\n}\n","import type { IGameplay } from \"../interfaces/IGameplay\";\n\nexport class RageMpGameplay implements IGameplay {\n // --- Hashing ---\n\n getHashKey(string: string): number {\n return mp.game.misc.getHashKey(string);\n }\n\n // --- Distance ---\n\n getDistanceBetweenCoords(x1: number, y1: number, z1: number, x2: number, y2: number, z2: number, useZ: boolean): number {\n return mp.game.misc.getDistanceBetweenCoords(x1, y1, z1, x2, y2, z2, useZ);\n }\n\n // --- Ground ---\n\n getGroundZFor3dCoord(x: number, y: number, z: number, ignoreWater: boolean = false, p5: boolean = false): number {\n return mp.game.misc.getGroundZFor3dCoord(x, y, z, ignoreWater, p5);\n }\n\n // --- Timer ---\n\n getGameTimer(): number {\n return mp.game.misc.getGameTimer();\n }\n\n getFrameTime(): number {\n return mp.game.misc.getFrameTime();\n }\n\n getFrameCount(): number {\n return mp.game.misc.getFrameCount();\n }\n\n // --- Bullets ---\n\n shootSingleBulletBetweenCoords(\n x1: number, y1: number, z1: number,\n x2: number, y2: number, z2: number,\n damage: number, p7: boolean, weaponHash: number, ownerPed: number,\n isAudible: boolean, isInvisible: boolean, speed: number,\n ): void {\n mp.game.misc.shootSingleBulletBetweenCoords(x1, y1, z1, x2, y2, z2, damage, p7, weaponHash, ownerPed, isAudible, isInvisible, speed);\n }\n\n // --- Clear Area ---\n\n clearAreaOfEverything(x: number, y: number, z: number, radius: number, p4: boolean = false, p5: boolean = false, p6: boolean = false, p7: boolean = false): void {\n mp.game.misc.clearAreaOfEverything(x, y, z, radius, p4, p5, p6, p7);\n }\n\n clearAreaOfVehicles(x: number, y: number, z: number, radius: number, p4: boolean = false, p5: boolean = false, p6: boolean = false, p7: boolean = false, p8: boolean = false, p9: boolean = false): void {\n mp.game.misc.clearAreaOfVehicles(x, y, z, radius, p4, p5, p6, p7, p8, p9);\n }\n\n clearAreaOfPeds(x: number, y: number, z: number, radius: number, flags: number = 0): void {\n mp.game.misc.clearAreaOfPeds(x, y, z, radius, flags);\n }\n\n clearAreaOfObjects(x: number, y: number, z: number, radius: number, flags: number = 0): void {\n mp.game.misc.clearAreaOfObjects(x, y, z, radius, flags);\n }\n\n // --- Heading ---\n\n getHeadingFromVector2d(dx: number, dy: number): number {\n return mp.game.misc.getHeadingFromVector2d(dx, dy);\n }\n\n // --- Death ---\n\n setFadeOutAfterDeath(toggle: boolean): void {\n mp.game.misc.setFadeOutAfterDeath(toggle);\n }\n\n // --- Random Events ---\n\n setRandomEventFlag(toggle: boolean): void {\n mp.game.misc.setRandomEventFlag(toggle);\n }\n}\n","import type { IHUD } from \"../interfaces/IHUD\";\n\nexport class RageMpHUD implements IHUD {\n // --- Display Control ---\n\n displayHud(toggle: boolean): void {\n mp.game.hud.displayHud(toggle);\n }\n\n displayRadar(toggle: boolean): void {\n mp.game.hud.displayRadar(toggle);\n }\n\n isRadarHidden(): boolean {\n return mp.game.hud.isRadarHidden();\n }\n\n isMinimapRendering(): boolean {\n return mp.game.hud.isMinimapRendering();\n }\n\n setRadarBigmapEnabled(toggleBigMap: boolean, showFullMap: boolean): void {\n mp.game.hud.setRadarBigmapEnabled(toggleBigMap, showFullMap);\n }\n\n // --- HUD Components ---\n\n isHudComponentActive(id: number): boolean {\n return mp.game.hud.isHudComponentActive(id);\n }\n\n hideHudComponentThisFrame(id: number): void {\n mp.game.hud.hideHudComponentThisFrame(id);\n }\n\n showHudComponentThisFrame(id: number): void {\n mp.game.hud.showHudComponentThisFrame(id);\n }\n\n // --- Waypoint ---\n\n isWaypointActive(): boolean {\n return mp.game.hud.isWaypointActive();\n }\n\n deleteWaypoint(): void {\n mp.game.hud.deleteWaypoint();\n }\n\n setNewWaypoint(x: number, y: number): void {\n mp.game.hud.setNewWaypoint(x, y);\n }\n\n // --- Text Rendering ---\n\n beginTextCommandDisplayText(text: string): void {\n mp.game.hud.beginTextCommandDisplayText(text);\n }\n\n endTextCommandDisplayText(x: number, y: number, p2: number = 0): void {\n mp.game.hud.endTextCommandDisplayText(x, y, p2);\n }\n\n addTextComponentSubstringPlayerName(text: string): void {\n mp.game.hud.addTextComponentSubstringPlayerName(text);\n }\n\n setTextScale(scale: number, size: number): void {\n mp.game.hud.setTextScale(scale, size);\n }\n\n setTextFont(fontType: number): void {\n mp.game.hud.setTextFont(fontType);\n }\n\n setTextColour(red: number, green: number, blue: number, alpha: number): void {\n mp.game.hud.setTextColour(red, green, blue, alpha);\n }\n\n setTextCentre(align: boolean): void {\n mp.game.hud.setTextCentre(align);\n }\n\n setTextDropShadow(): void {\n mp.game.hud.setTextDropShadow();\n }\n\n setTextOutline(): void {\n mp.game.hud.setTextOutline();\n }\n\n setTextWrap(start: number, end: number): void {\n mp.game.hud.setTextWrap(start, end);\n }\n\n // --- Notifications ---\n\n beginTextCommandThefeedPost(text: string): void {\n mp.game.hud.beginTextCommandThefeedPost(text);\n }\n\n endTextCommandThefeedPostMessagetext(\n txdName: string, textureName: string, flash: boolean,\n iconType: number, sender: string, subject: string,\n ): number {\n return mp.game.hud.endTextCommandThefeedPostMessagetext(txdName, textureName, flash, iconType, sender, subject);\n }\n\n endTextCommandThefeedPostMessagetextTu(\n txdName: string, textureName: string, flash: boolean,\n iconType: number, sender: string, subject: string, duration: number,\n ): number {\n return mp.game.hud.endTextCommandThefeedPostMessagetextTu(txdName, textureName, flash, iconType, sender, subject, duration);\n }\n\n // --- Labels ---\n\n getLabelText(labelName: string): string {\n return mp.game.hud.getLabelText(labelName);\n }\n\n // --- Text (extended) ---\n\n setTextJustification(justifyType: number): void {\n mp.game.hud.setTextJustification(justifyType);\n }\n\n setTextRightJustify(toggle: boolean): void {\n mp.game.hud.setTextRightJustify(toggle);\n }\n\n // --- HUD Colours ---\n\n replaceColour(hudColorIndex: number, hudColorIndex2: number): void {\n mp.game.hud.replaceColour(hudColorIndex, hudColorIndex2);\n }\n}\n","import type { IAudio } from \"../interfaces/IAudio\";\n\nexport class RageMpAudio implements IAudio {\n // --- Sound IDs ---\n\n getSoundId(): number {\n return mp.game.audio.getSoundId();\n }\n\n releaseSoundId(soundId: number): void {\n mp.game.audio.releaseSoundId(soundId);\n }\n\n // --- Sound Playback ---\n\n playSoundFrontend(soundId: number, audioName: string, audioRef: string, p3: boolean = false): void {\n mp.game.audio.playSoundFrontend(soundId, audioName, audioRef, p3);\n }\n\n playSound(soundId: number, audioName: string, audioRef: string, p3: boolean = false, p4: number = 0, p5: boolean = false): void {\n mp.game.audio.playSound(soundId, audioName, audioRef, p3, p4, p5);\n }\n\n stopSound(soundId: number): void {\n mp.game.audio.stopSound(soundId);\n }\n\n hasSoundFinished(soundId: number): boolean {\n return mp.game.audio.hasSoundFinished(soundId);\n }\n\n // --- Speech ---\n\n playAmbientSpeechWithVoice(ped: number, speechName: string, voiceName: string, speechParam: string, p4: boolean = false): void {\n mp.game.audio.playAmbientSpeechWithVoice(ped, speechName, voiceName, speechParam, p4);\n }\n\n // --- Audio Banks ---\n\n requestScriptAudioBank(p0: string, p1: boolean = false, p2: number = -1): boolean {\n return mp.game.audio.requestScriptAudioBank(p0, p1, p2);\n }\n\n releaseNamedScriptAudioBank(audioBank: string): void {\n mp.game.audio.releaseNamedScriptAudioBank(audioBank);\n }\n\n // --- Audio Scenes ---\n\n startAudioScene(scene: string): boolean {\n return mp.game.audio.startAudioScene(scene);\n }\n\n stopAudioScene(scene: string): void {\n mp.game.audio.stopAudioScene(scene);\n }\n\n isAudioSceneActive(scene: string): boolean {\n return mp.game.audio.isAudioSceneActive(scene);\n }\n\n // --- Audio Flags ---\n\n setAudioFlag(flagName: string, toggle: boolean): void {\n mp.game.audio.setAudioFlag(flagName, toggle);\n }\n\n // --- Ringtones ---\n\n playPedRingtone(ringtoneName: string, ped: number, p2: boolean = false): void {\n mp.game.audio.playPedRingtone(ringtoneName, ped, p2);\n }\n\n stopPedRingtone(ped: number): void {\n mp.game.audio.stopPedRingtone(ped);\n }\n\n // --- Ambient Zones ---\n\n setAmbientZoneListStatePersistent(ambientZone: string, p1: boolean, p2: boolean): void {\n mp.game.audio.setAmbientZoneListStatePersistent(ambientZone, p1, p2);\n }\n\n setAmbientZoneState(zoneName: string, p1: boolean, p2: boolean): void {\n mp.game.audio.setAmbientZoneState(zoneName, p1, p2);\n }\n\n setStaticEmitterEnabled(emitterName: string, toggle: boolean): void {\n mp.game.audio.setStaticEmitterEnabled(emitterName, toggle);\n }\n}\n","import type { IGraphics } from \"../interfaces/IGraphics\";\n\nexport class RageMpGraphics implements IGraphics {\n // --- Particle Effects ---\n\n useParticleFxAsset(name: string): void {\n mp.game.graphics.useParticleFxAsset(name);\n }\n\n startParticleFxNonLoopedAtCoord(\n effectName: string, xPos: number, yPos: number, zPos: number,\n xRot: number, yRot: number, zRot: number, scale: number,\n xAxis: boolean = false, yAxis: boolean = false, zAxis: boolean = false,\n ): number {\n return mp.game.graphics.startParticleFxNonLoopedAtCoord(effectName, xPos, yPos, zPos, xRot, yRot, zRot, scale, xAxis, yAxis, zAxis);\n }\n\n startParticleFxNonLoopedOnEntity(\n effectName: string, entity: number,\n offsetX: number, offsetY: number, offsetZ: number,\n rotX: number, rotY: number, rotZ: number, scale: number,\n axisX: boolean = false, axisY: boolean = false, axisZ: boolean = false,\n ): boolean {\n return mp.game.graphics.startParticleFxNonLoopedOnEntity(effectName, entity, offsetX, offsetY, offsetZ, rotX, rotY, rotZ, scale, axisX, axisY, axisZ);\n }\n\n startParticleFxLoopedAtCoord(\n effectName: string, x: number, y: number, z: number,\n xRot: number, yRot: number, zRot: number, scale: number,\n xAxis: boolean = false, yAxis: boolean = false, zAxis: boolean = false, p11: boolean = false,\n ): number {\n return mp.game.graphics.startParticleFxLoopedAtCoord(effectName, x, y, z, xRot, yRot, zRot, scale, xAxis, yAxis, zAxis, p11);\n }\n\n startParticleFxLoopedOnEntity(\n effectName: string, entity: number,\n xOffset: number, yOffset: number, zOffset: number,\n xRot: number, yRot: number, zRot: number, scale: number,\n xAxis: boolean = false, yAxis: boolean = false, zAxis: boolean = false,\n ): number {\n return mp.game.graphics.startParticleFxLoopedOnEntity(effectName, entity, xOffset, yOffset, zOffset, xRot, yRot, zRot, scale, xAxis, yAxis, zAxis);\n }\n\n stopParticleFxLooped(ptfxHandle: number, p1: boolean = false): void {\n mp.game.graphics.stopParticleFxLooped(ptfxHandle, p1);\n }\n\n removeParticleFx(ptfxHandle: number, p1: boolean = false): void {\n mp.game.graphics.removeParticleFx(ptfxHandle, p1);\n }\n\n doesParticleFxLoopedExist(ptfxHandle: number): boolean {\n return mp.game.graphics.doesParticleFxLoopedExist(ptfxHandle);\n }\n\n setParticleFxLoopedColour(ptfxHandle: number, r: number, g: number, b: number, p4: boolean = false): void {\n mp.game.graphics.setParticleFxLoopedColour(ptfxHandle, r, g, b, p4);\n }\n\n setParticleFxLoopedAlpha(ptfxHandle: number, alpha: number): void {\n mp.game.graphics.setParticleFxLoopedAlpha(ptfxHandle, alpha);\n }\n\n setParticleFxLoopedScale(ptfxHandle: number, scale: number): void {\n mp.game.graphics.setParticleFxLoopedScale(ptfxHandle, scale);\n }\n\n // --- Drawing ---\n\n drawLine(x1: number, y1: number, z1: number, x2: number, y2: number, z2: number, red: number, green: number, blue: number, alpha: number): void {\n mp.game.graphics.drawLine(x1, y1, z1, x2, y2, z2, red, green, blue, alpha);\n }\n\n drawPoly(\n x1: number, y1: number, z1: number,\n x2: number, y2: number, z2: number,\n x3: number, y3: number, z3: number,\n red: number, green: number, blue: number, alpha: number,\n ): void {\n mp.game.graphics.drawPoly(x1, y1, z1, x2, y2, z2, x3, y3, z3, red, green, blue, alpha);\n }\n\n drawRect(x: number, y: number, width: number, height: number, r: number, g: number, b: number, a: number, p8: boolean = false): void {\n mp.game.graphics.drawRect(x, y, width, height, r, g, b, a, p8);\n }\n\n drawSprite(\n textureDict: string, textureName: string,\n screenX: number, screenY: number, width: number, height: number, heading: number,\n red: number, green: number, blue: number, alpha: number, p11: boolean = false,\n ): void {\n mp.game.graphics.drawSprite(textureDict, textureName, screenX, screenY, width, height, heading, red, green, blue, alpha, p11);\n }\n\n // --- Screen Effects ---\n\n animpostfxPlay(effectName: string, duration: number, looped: boolean): void {\n mp.game.graphics.animpostfxPlay(effectName, duration, looped);\n }\n\n animpostfxStop(effectName: string): void {\n mp.game.graphics.animpostfxStop(effectName);\n }\n\n animpostfxIsRunning(effectName: string): boolean {\n return mp.game.graphics.animpostfxIsRunning(effectName);\n }\n\n animpostfxStopAll(): void {\n mp.game.graphics.animpostfxStopAll();\n }\n\n // --- Timecycle ---\n\n setTimecycleModifier(modifierName: string): void {\n mp.game.graphics.setTimecycleModifier(modifierName);\n }\n\n setTimecycleModifierStrength(strength: number): void {\n mp.game.graphics.setTimecycleModifierStrength(strength);\n }\n\n clearTimecycleModifier(): void {\n mp.game.graphics.clearTimecycleModifier();\n }\n\n // --- Markers ---\n\n drawMarker(\n type: number, posX: number, posY: number, posZ: number,\n dirX: number, dirY: number, dirZ: number,\n rotX: number, rotY: number, rotZ: number,\n scaleX: number, scaleY: number, scaleZ: number,\n red: number, green: number, blue: number, alpha: number,\n bobUpAndDown: boolean, faceCamera: boolean, p19: number,\n rotate: boolean, textureDict: string | null, textureName: string | null, drawOnEnts: boolean,\n ): void {\n mp.game.graphics.drawMarker(type, posX, posY, posZ, dirX, dirY, dirZ, rotX, rotY, rotZ, scaleX, scaleY, scaleZ, red, green, blue, alpha, bobUpAndDown, faceCamera, p19, rotate, textureDict, textureName, drawOnEnts);\n }\n\n // --- Screen ---\n\n getAspectRatio(b: boolean = false): number {\n return mp.game.graphics.getAspectRatio(b);\n }\n\n getSafeZoneSize(): number {\n return mp.game.graphics.getSafeZoneSize();\n }\n\n // --- Scaleform ---\n\n requestScaleformMovie(scaleformName: string): number {\n return mp.game.graphics.requestScaleformMovie(scaleformName);\n }\n\n beginScaleformMovieMethod(scaleform: number, methodName: string): boolean {\n return mp.game.graphics.beginScaleformMovieMethod(scaleform, methodName);\n }\n\n endScaleformMovieMethod(): void {\n mp.game.graphics.endScaleformMovieMethod();\n }\n\n scaleformMovieMethodAddParamInt(value: number): void {\n mp.game.graphics.scaleformMovieMethodAddParamInt(value);\n }\n\n // --- Textures ---\n\n requestStreamedTextureDict(textureDict: string, p1: boolean = false): void {\n mp.game.graphics.requestStreamedTextureDict(textureDict, p1);\n }\n\n hasStreamedTextureDictLoaded(textureDict: string): boolean {\n return mp.game.graphics.hasStreamedTextureDictLoaded(textureDict);\n }\n}\n","import type { IGameplayCamera } from \"../interfaces/IGameplayCamera\";\nimport type { Vector3 } from \"../types\";\n\nexport class RageMpGameplayCamera implements IGameplayCamera {\n // --- Position / Rotation / FOV ---\n\n getCoord(): Vector3 {\n const v = mp.game.cam.getGameplayCoord() as any;\n return { x: v.x, y: v.y, z: v.z };\n }\n\n getRot(rotationOrder: number = 2): Vector3 {\n const v = mp.game.cam.getGameplayRot(rotationOrder) as any;\n return { x: v.x, y: v.y, z: v.z };\n }\n\n getFov(): number {\n return mp.game.cam.getGameplayFov();\n }\n\n // --- Relative Heading/Pitch ---\n\n getRelativeHeading(): number {\n return mp.game.cam.getGameplayCamRelativeHeading();\n }\n\n setRelativeHeading(heading: number): void {\n mp.game.cam.setGameplayCamRelativeHeading(heading);\n }\n\n getRelativePitch(): number {\n return (mp.game.cam as any).getGameplayCamRelativePitch();\n }\n\n setRelativePitch(angle: number, scalingFactor: number = 1.0): void {\n mp.game.cam.setGameplayCamRelativePitch(angle, scalingFactor);\n }\n\n // --- Shaking ---\n\n shake(shakeName: string, intensity: number): void {\n mp.game.cam.shakeGameplayCam(shakeName, intensity);\n }\n\n isShaking(): boolean {\n return mp.game.cam.isGameplayShaking();\n }\n\n setShakeAmplitude(amplitude: number): void {\n mp.game.cam.setGameplayCamShakeAmplitude(amplitude);\n }\n\n stopShaking(p0: boolean = true): void {\n mp.game.cam.stopGameplayCamShaking(p0);\n }\n\n // --- Script Camera Rendering ---\n\n renderScriptCams(render: boolean, ease: boolean, easeTime: number, p3: boolean, p4: boolean): void {\n mp.game.cam.renderScriptCams(render, ease, easeTime, p3, p4);\n }\n\n stopRenderingScriptCamsUsingCatchUp(render: boolean, p1: number, p2: number, p3: number): void {\n mp.game.cam.stopRenderingScriptCamsUsingCatchUp(render, p1, p2, p3);\n }\n\n // --- Final Rendered Camera ---\n\n getFinalRenderedCoord(): Vector3 {\n const v = mp.game.cam.getFinalRenderedCoord() as any;\n return { x: v.x, y: v.y, z: v.z };\n }\n\n getFinalRenderedRot(rotationOrder: number = 2): Vector3 {\n const v = mp.game.cam.getFinalRenderedRot(rotationOrder) as any;\n return { x: v.x, y: v.y, z: v.z };\n }\n\n getFinalRenderedFov(): number {\n return mp.game.cam.getFinalRenderedFov();\n }\n}\n","import type { IControls } from \"../interfaces/IControls\";\n\nexport class RageMpControls implements IControls {\n disableAllControlActions(padIndex: number): void {\n mp.game.controls.disableAllControlActions(padIndex);\n }\n\n disableControlAction(padIndex: number, control: number, disable: boolean): void {\n mp.game.controls.disableControlAction(padIndex, control, disable);\n }\n\n enableControlAction(padIndex: number, control: number, enable: boolean): void {\n mp.game.controls.enableControlAction(padIndex, control, enable);\n }\n\n isControlPressed(padIndex: number, control: number): boolean {\n return mp.game.controls.isControlPressed(padIndex, control);\n }\n\n isDisabledControlJustPressed(padIndex: number, control: number): boolean {\n return mp.game.controls.isDisabledControlJustPressed(padIndex, control);\n }\n\n isDisabledControlPressed(padIndex: number, control: number): boolean {\n return mp.game.controls.isDisabledControlPressed(padIndex, control);\n }\n\n getDisabledControlNormal(padIndex: number, control: number): number {\n return mp.game.controls.getDisabledControlNormal(padIndex, control);\n }\n}\n","import type { IEngine } from \"../interfaces/IEngine\";\nimport type { IEntityPool, ICreatableEntityPool } from \"../interfaces/IEntity\";\nimport type { IPlayer } from \"../interfaces/IPlayer\";\nimport type { IVehicle } from \"../interfaces/IVehicle\";\nimport type { IPed } from \"../interfaces/IPed\";\nimport type { IObject } from \"../interfaces/IObject\";\nimport type { IBlip } from \"../interfaces/IBlip\";\nimport type { ICheckpoint } from \"../interfaces/ICheckpoint\";\nimport type { IColshape } from \"../interfaces/IColshape\";\nimport type { ICamera } from \"../interfaces/ICamera\";\nimport type { IBrowser } from \"../interfaces/IBrowser\";\nimport type { ITextLabel } from \"../interfaces/ITextLabel\";\nimport type { IMarker } from \"../interfaces/IMarker\";\nimport type { IPickup } from \"../interfaces/IPickup\";\nimport type { IEvents } from \"../interfaces/IEvents\";\nimport type { IGui } from \"../interfaces/IGui\";\nimport type { IKeys } from \"../interfaces/IKeys\";\nimport type { IStorage } from \"../interfaces/IStorage\";\nimport type { IVoiceChat } from \"../interfaces/IVoiceChat\";\nimport type { INametags } from \"../interfaces/INametags\";\nimport type { IRaycasting } from \"../interfaces/IRaycasting\";\nimport type { IConsole } from \"../interfaces/IConsole\";\nimport type { IDiscord } from \"../interfaces/IDiscord\";\nimport type { ISystem } from \"../interfaces/ISystem\";\nimport type { IUser } from \"../interfaces/IUser\";\nimport type { INativesBridge } from \"../interfaces/INativesBridge\";\nimport type { IWeapon } from \"../interfaces/IWeapon\";\nimport type { IStreaming } from \"../interfaces/IStreaming\";\nimport type { IWorld } from \"../interfaces/IWorld\";\nimport type { IGameplay } from \"../interfaces/IGameplay\";\nimport type { IHUD } from \"../interfaces/IHUD\";\nimport type { IAudio } from \"../interfaces/IAudio\";\nimport type { IGraphics } from \"../interfaces/IGraphics\";\nimport type { IGameplayCamera } from \"../interfaces/IGameplayCamera\";\nimport type { IControls } from \"../interfaces/IControls\";\nimport type {\n BlipCreateOpts,\n BrowserCreateOpts,\n CameraCreateOpts,\n CheckpointCreateOpts,\n ColshapeCreateOpts,\n PedCreateOpts,\n TextLabelCreateOpts,\n} from \"../types\";\n\nimport { RageMpEntityPool, RageMpCreatablePool } from \"./RageMpEntityPool\";\nimport { RageMpPlayer } from \"./RageMpPlayer\";\nimport { RageMpVehicle } from \"./RageMpVehicle\";\nimport { RageMpPed } from \"./RageMpPed\";\nimport { RageMpObject } from \"./RageMpObject\";\nimport { RageMpBlip } from \"./RageMpBlip\";\nimport { RageMpCheckpoint } from \"./RageMpCheckpoint\";\nimport { RageMpColshape } from \"./RageMpColshape\";\nimport { RageMpCamera } from \"./RageMpCamera\";\nimport { RageMpBrowser } from \"./RageMpBrowser\";\nimport { RageMpTextLabel } from \"./RageMpTextLabel\";\nimport { RageMpMarker } from \"./RageMpMarker\";\nimport { RageMpPickup } from \"./RageMpPickup\";\nimport { RageMpEvents } from \"./RageMpEvents\";\nimport { RageMpGui } from \"./RageMpGui\";\nimport { RageMpKeys } from \"./RageMpKeys\";\nimport { RageMpStorage } from \"./RageMpStorage\";\nimport { RageMpVoiceChat } from \"./RageMpVoiceChat\";\nimport { RageMpNametags } from \"./RageMpNametags\";\nimport { RageMpRaycasting } from \"./RageMpRaycasting\";\nimport { RageMpConsole } from \"./RageMpConsole\";\nimport { RageMpDiscord } from \"./RageMpDiscord\";\nimport { RageMpSystem } from \"./RageMpSystem\";\nimport { RageMpUser } from \"./RageMpUser\";\nimport { RageMpNativesBridge } from \"./RageMpNativesBridge\";\nimport { RageMpWeapon } from \"./RageMpWeapon\";\nimport { RageMpStreaming } from \"./RageMpStreaming\";\nimport { RageMpWorld } from \"./RageMpWorld\";\nimport { RageMpGameplay } from \"./RageMpGameplay\";\nimport { RageMpHUD } from \"./RageMpHUD\";\nimport { RageMpAudio } from \"./RageMpAudio\";\nimport { RageMpGraphics } from \"./RageMpGraphics\";\nimport { RageMpGameplayCamera } from \"./RageMpGameplayCamera\";\nimport { RageMpControls } from \"./RageMpControls\";\n\nexport class RageMpEngine implements IEngine {\n readonly players: IEntityPool<IPlayer>;\n readonly vehicles: IEntityPool<IVehicle>;\n readonly peds: ICreatableEntityPool<IPed, PedCreateOpts>;\n readonly objects: IEntityPool<IObject>;\n readonly blips: ICreatableEntityPool<IBlip, BlipCreateOpts>;\n readonly checkpoints: ICreatableEntityPool<ICheckpoint, CheckpointCreateOpts>;\n readonly colshapes: ICreatableEntityPool<IColshape, ColshapeCreateOpts>;\n readonly cameras: ICreatableEntityPool<ICamera, CameraCreateOpts>;\n readonly browsers: ICreatableEntityPool<IBrowser, BrowserCreateOpts>;\n readonly labels: ICreatableEntityPool<ITextLabel, TextLabelCreateOpts>;\n readonly markers: IEntityPool<IMarker>;\n readonly pickups: IEntityPool<IPickup>;\n readonly events: IEvents;\n readonly gui: IGui;\n readonly keys: IKeys;\n readonly storage: IStorage;\n readonly voiceChat: IVoiceChat;\n readonly nametags: INametags;\n readonly raycasting: IRaycasting;\n readonly console: IConsole;\n readonly discord: IDiscord;\n readonly system: ISystem;\n readonly user: IUser;\n readonly natives: INativesBridge;\n readonly weapon: IWeapon;\n readonly streaming: IStreaming;\n readonly world: IWorld;\n readonly gameplay: IGameplay;\n readonly hud: IHUD;\n readonly audio: IAudio;\n readonly graphics: IGraphics;\n readonly gameplayCamera: IGameplayCamera;\n readonly controls: IControls;\n\n private _localPlayer: RageMpPlayer | null = null;\n\n constructor() {\n this.players = new RageMpEntityPool(mp.players, (raw: any) => new RageMpPlayer(raw));\n this.vehicles = new RageMpEntityPool(mp.vehicles, (raw: any) => new RageMpVehicle(raw));\n this.objects = new RageMpEntityPool(mp.objects, (raw: any) => new RageMpObject(raw));\n this.markers = new RageMpEntityPool(mp.markers, (raw: any) => new RageMpMarker(raw));\n this.pickups = new RageMpEntityPool(mp.pickups, (raw: any) => new RageMpPickup(raw));\n\n this.peds = new RageMpCreatablePool(\n mp.peds,\n (raw: any) => new RageMpPed(raw),\n (opts: PedCreateOpts) =>\n mp.peds.new(\n opts.model,\n new mp.Vector3(opts.position.x, opts.position.y, opts.position.z),\n opts.heading,\n opts.dimension ?? 0,\n ),\n );\n\n this.blips = new RageMpCreatablePool(\n mp.blips,\n (raw: any) => new RageMpBlip(raw),\n (opts: BlipCreateOpts) =>\n mp.blips.new(\n opts.sprite,\n new mp.Vector3(opts.position.x, opts.position.y, opts.position.z),\n {\n name: opts.name,\n scale: opts.scale,\n color: opts.color,\n alpha: opts.alpha,\n drawDistance: opts.drawDistance,\n shortRange: opts.shortRange,\n rotation: opts.rotation,\n dimension: opts.dimension,\n },\n ),\n );\n\n this.checkpoints = new RageMpCreatablePool(\n mp.checkpoints,\n (raw: any) => new RageMpCheckpoint(raw),\n (opts: CheckpointCreateOpts) =>\n mp.checkpoints.new(\n opts.type,\n new mp.Vector3(opts.position.x, opts.position.y, opts.position.z),\n opts.radius,\n {\n direction: opts.direction ? new mp.Vector3(opts.direction.x, opts.direction.y, opts.direction.z) : undefined,\n color: opts.color ? [opts.color.r, opts.color.g, opts.color.b, opts.color.a] : undefined,\n visible: opts.visible,\n dimension: opts.dimension,\n },\n ),\n );\n\n this.colshapes = new RageMpCreatablePool(\n mp.colshapes,\n (raw: any) => new RageMpColshape(raw),\n (opts: ColshapeCreateOpts) => {\n switch (opts.shape) {\n case \"sphere\":\n return mp.colshapes.newSphere(opts.x, opts.y, opts.z, opts.radius!, opts.dimension);\n case \"tube\":\n return mp.colshapes.newTube(opts.x, opts.y, opts.z, opts.radius!, opts.height!, opts.dimension);\n case \"circle\":\n return mp.colshapes.newCircle(opts.x, opts.y, opts.radius!, opts.dimension);\n case \"cuboid\":\n return mp.colshapes.newCuboid(opts.x, opts.y, opts.z, opts.width!, opts.height!, opts.depth!, opts.dimension);\n case \"rectangle\":\n return mp.colshapes.newRectangle(opts.x, opts.y, opts.width!, opts.height!, opts.dimension);\n case \"polygon\":\n default:\n return mp.colshapes.newSphere(opts.x, opts.y, opts.z, opts.radius ?? 1, opts.dimension);\n }\n },\n );\n\n this.cameras = new RageMpCreatablePool(\n mp.cameras,\n (raw: any) => new RageMpCamera(raw),\n (opts: CameraCreateOpts) =>\n mp.cameras.new(\n opts.name,\n opts.position ? new mp.Vector3(opts.position.x, opts.position.y, opts.position.z) : undefined,\n opts.rotation ? new mp.Vector3(opts.rotation.x, opts.rotation.y, opts.rotation.z) : undefined,\n opts.fov,\n ),\n );\n\n this.browsers = new RageMpCreatablePool(\n mp.browsers,\n (raw: any) => new RageMpBrowser(raw),\n (opts: BrowserCreateOpts) => mp.browsers.new(opts.url),\n );\n\n this.labels = new RageMpCreatablePool(\n mp.labels,\n (raw: any) => new RageMpTextLabel(raw),\n (opts: TextLabelCreateOpts) =>\n mp.labels.new(\n opts.text,\n new mp.Vector3(opts.position.x, opts.position.y, opts.position.z),\n {\n font: opts.font,\n color: opts.color ? [opts.color.r, opts.color.g, opts.color.b, opts.color.a] : undefined,\n drawDistance: opts.drawDistance,\n los: opts.los,\n dimension: opts.dimension,\n },\n ),\n );\n\n this.events = new RageMpEvents();\n this.gui = new RageMpGui();\n this.keys = new RageMpKeys();\n this.storage = new RageMpStorage();\n this.voiceChat = new RageMpVoiceChat();\n this.nametags = new RageMpNametags();\n this.raycasting = new RageMpRaycasting();\n this.console = new RageMpConsole();\n this.discord = new RageMpDiscord();\n this.system = new RageMpSystem();\n this.user = new RageMpUser();\n this.natives = new RageMpNativesBridge();\n this.weapon = new RageMpWeapon();\n this.streaming = new RageMpStreaming();\n this.world = new RageMpWorld();\n this.gameplay = new RageMpGameplay();\n this.hud = new RageMpHUD();\n this.audio = new RageMpAudio();\n this.graphics = new RageMpGraphics();\n this.gameplayCamera = new RageMpGameplayCamera();\n this.controls = new RageMpControls();\n }\n\n get localPlayer(): IPlayer {\n if (!this._localPlayer) {\n this._localPlayer = new RageMpPlayer(mp.players.local);\n }\n return this._localPlayer;\n }\n}\n"]}