@schmoker/rageenginebridge 0.1.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.
- package/README.md +1 -0
- package/dist/IEngine-BSo5z5Jl.d.cts +598 -0
- package/dist/IEngine-BSo5z5Jl.d.ts +598 -0
- package/dist/index.cjs +38 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +8 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +38 -0
- package/dist/index.js.map +1 -0
- package/dist/ragemp.cjs +1613 -0
- package/dist/ragemp.cjs.map +1 -0
- package/dist/ragemp.d.cts +426 -0
- package/dist/ragemp.d.ts +426 -0
- package/dist/ragemp.js +1613 -0
- package/dist/ragemp.js.map +1 -0
- package/package.json +70 -0
|
@@ -0,0 +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":[]}
|
package/package.json
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@schmoker/rageenginebridge",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Engine-agnostic abstraction layer over RAGEMP Client-API. Swap RAGEMP for alt:V, FiveM or a mock without changing feature code.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.cjs",
|
|
7
|
+
"module": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"import": {
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
13
|
+
"default": "./dist/index.js"
|
|
14
|
+
},
|
|
15
|
+
"require": {
|
|
16
|
+
"types": "./dist/index.d.cts",
|
|
17
|
+
"default": "./dist/index.cjs"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"./ragemp": {
|
|
21
|
+
"import": {
|
|
22
|
+
"types": "./dist/ragemp.d.ts",
|
|
23
|
+
"default": "./dist/ragemp.js"
|
|
24
|
+
},
|
|
25
|
+
"require": {
|
|
26
|
+
"types": "./dist/ragemp.d.cts",
|
|
27
|
+
"default": "./dist/ragemp.cjs"
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"files": [
|
|
32
|
+
"dist"
|
|
33
|
+
],
|
|
34
|
+
"scripts": {
|
|
35
|
+
"build": "tsup",
|
|
36
|
+
"dev": "tsup --watch",
|
|
37
|
+
"test": "vitest run",
|
|
38
|
+
"lint": "eslint src/",
|
|
39
|
+
"format": "prettier --write src/",
|
|
40
|
+
"typecheck": "tsc --noEmit",
|
|
41
|
+
"prepublishOnly": "npm run typecheck && npm run test && npm run build"
|
|
42
|
+
},
|
|
43
|
+
"keywords": [
|
|
44
|
+
"ragemp",
|
|
45
|
+
"rage-mp",
|
|
46
|
+
"gta",
|
|
47
|
+
"gtav",
|
|
48
|
+
"fivem",
|
|
49
|
+
"altv",
|
|
50
|
+
"multiplayer",
|
|
51
|
+
"abstraction",
|
|
52
|
+
"engine-bridge",
|
|
53
|
+
"typescript"
|
|
54
|
+
],
|
|
55
|
+
"author": "kilypso",
|
|
56
|
+
"license": "MIT",
|
|
57
|
+
"devDependencies": {
|
|
58
|
+
"@ragempcommunity/types-client": "^2.1.9",
|
|
59
|
+
"@typescript-eslint/eslint-plugin": "^8.0.0",
|
|
60
|
+
"@typescript-eslint/parser": "^8.0.0",
|
|
61
|
+
"eslint": "^9.0.0",
|
|
62
|
+
"prettier": "^3.3.0",
|
|
63
|
+
"tsup": "^8.0.0",
|
|
64
|
+
"typescript": "^5.5.0",
|
|
65
|
+
"vitest": "^2.0.0"
|
|
66
|
+
},
|
|
67
|
+
"publishConfig": {
|
|
68
|
+
"access": "public"
|
|
69
|
+
}
|
|
70
|
+
}
|