@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":["../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"],"sourcesContent":["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"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../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"],"sourcesContent":["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"],"mappings":"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","names":[]}