@nativewrappers/fivem 0.0.87 → 0.0.88

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.
Files changed (45) hide show
  1. package/Blip.d.ts +2 -2
  2. package/Blip.js +2 -2
  3. package/Camera.d.ts +1 -1
  4. package/Camera.js +6 -7
  5. package/GameConstants.d.ts +7 -0
  6. package/GameConstants.js +24 -0
  7. package/Model.js +1 -2
  8. package/Tasks.d.ts +4 -4
  9. package/Tasks.js +21 -14
  10. package/World.d.ts +5 -5
  11. package/World.js +7 -10
  12. package/common/Command.d.ts +25 -0
  13. package/common/Command.js +28 -2
  14. package/index.d.ts +5 -1
  15. package/index.js +5 -1
  16. package/models/BaseEntity.d.ts +12 -14
  17. package/models/BaseEntity.js +3 -24
  18. package/models/BaseEntityBone.d.ts +12 -0
  19. package/models/BaseEntityBone.js +32 -0
  20. package/models/BaseEntityBoneCollection.d.ts +9 -0
  21. package/models/BaseEntityBoneCollection.js +19 -0
  22. package/models/Entity.d.ts +4 -0
  23. package/models/EntityBone.d.ts +2 -9
  24. package/models/EntityBone.js +3 -21
  25. package/models/EntityBoneCollection.d.ts +2 -3
  26. package/models/EntityBoneCollection.js +3 -6
  27. package/models/Ped.d.ts +8 -6
  28. package/models/Ped.js +23 -16
  29. package/models/PedBone.d.ts +3 -3
  30. package/models/PedBone.js +3 -4
  31. package/models/PedBoneCollection.d.ts +2 -2
  32. package/models/PedBoneCollection.js +2 -2
  33. package/models/Player.d.ts +4 -4
  34. package/models/Player.js +4 -4
  35. package/models/Prop.d.ts +5 -0
  36. package/models/Prop.js +12 -0
  37. package/models/Vehicle.d.ts +12 -7
  38. package/models/Vehicle.js +21 -7
  39. package/models/index.d.ts +5 -0
  40. package/models/index.js +5 -0
  41. package/package.json +1 -1
  42. package/utils/GetEntityFromEntityIds.d.ts +2 -0
  43. package/utils/GetEntityFromEntityIds.js +23 -0
  44. package/Events.d.ts +0 -11
  45. package/Events.js +0 -80
@@ -0,0 +1,19 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ class BaseEntityBoneCollection {
4
+ static {
5
+ __name(this, "BaseEntityBoneCollection");
6
+ }
7
+ owner;
8
+ constructor(owner) {
9
+ this.owner = owner;
10
+ }
11
+ hasBone(name) {
12
+ return GetEntityBoneIndexByName(this.owner.Handle, name) !== -1;
13
+ }
14
+ // return new EntityBone(this.owner, -1);
15
+ // }
16
+ }
17
+ export {
18
+ BaseEntityBoneCollection
19
+ };
@@ -0,0 +1,4 @@
1
+ import type { Ped } from "./Ped";
2
+ import type { Prop } from "./Prop";
3
+ import type { Vehicle } from "./Vehicle";
4
+ export type Entity = Vehicle | Ped | Prop | null;
@@ -1,12 +1,5 @@
1
- import { Vector3 } from "../common/utils/Vector";
2
1
  import type { BaseEntity } from "./BaseEntity";
3
- export declare class EntityBone {
4
- get Index(): number;
5
- get Owner(): BaseEntity;
6
- get Position(): Vector3;
7
- get Rotation(): Vector3;
8
- get IsValid(): boolean;
9
- protected readonly owner: BaseEntity;
10
- protected readonly index: number;
2
+ import { BaseEntityBone } from "./BaseEntityBone";
3
+ export declare class EntityBone extends BaseEntityBone {
11
4
  constructor(owner: BaseEntity, boneIndex?: number, boneName?: string);
12
5
  }
@@ -1,30 +1,12 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- import { Vector3 } from "../common/utils/Vector";
4
- class EntityBone {
3
+ import { BaseEntityBone } from "./BaseEntityBone";
4
+ class EntityBone extends BaseEntityBone {
5
5
  static {
6
6
  __name(this, "EntityBone");
7
7
  }
8
- get Index() {
9
- return this.index;
10
- }
11
- get Owner() {
12
- return this.owner;
13
- }
14
- get Position() {
15
- return Vector3.fromArray(GetWorldPositionOfEntityBone(this.owner.Handle, this.index));
16
- }
17
- get Rotation() {
18
- return Vector3.fromArray(GetEntityBoneRotation(this.owner.Handle, this.index));
19
- }
20
- get IsValid() {
21
- return this.owner.exists() && this.index !== -1;
22
- }
23
- owner;
24
- index;
25
8
  constructor(owner, boneIndex, boneName) {
26
- this.owner = owner;
27
- this.index = boneIndex ? boneIndex : GetEntityBoneIndexByName(this.owner.Handle, boneName ?? "");
9
+ super(owner, boneIndex, boneName);
28
10
  }
29
11
  }
30
12
  export {
@@ -1,9 +1,8 @@
1
1
  import type { BaseEntity } from "./BaseEntity";
2
+ import { BaseEntityBoneCollection } from "./BaseEntityBoneCollection";
2
3
  import { EntityBone } from "./EntityBone";
3
- export declare class EntityBoneCollection {
4
- protected readonly owner: BaseEntity;
4
+ export declare class EntityBoneCollection extends BaseEntityBoneCollection {
5
5
  constructor(owner: BaseEntity);
6
- hasBone(name: string): boolean;
7
6
  getBone(boneIndex?: number, boneName?: string): EntityBone;
8
7
  get Core(): EntityBone;
9
8
  }
@@ -1,16 +1,13 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { BaseEntityBoneCollection } from "./BaseEntityBoneCollection";
3
4
  import { EntityBone } from "./EntityBone";
4
- class EntityBoneCollection {
5
+ class EntityBoneCollection extends BaseEntityBoneCollection {
5
6
  static {
6
7
  __name(this, "EntityBoneCollection");
7
8
  }
8
- owner;
9
9
  constructor(owner) {
10
- this.owner = owner;
11
- }
12
- hasBone(name) {
13
- return GetEntityBoneIndexByName(this.owner.Handle, name) !== -1;
10
+ super(owner);
14
11
  }
15
12
  getBone(boneIndex, boneName) {
16
13
  return new EntityBone(
package/models/Ped.d.ts CHANGED
@@ -1,7 +1,6 @@
1
- import { WeaponCollection } from "../weapon/WeaponCollection";
2
1
  import { ClassTypes } from "../common/utils/ClassTypes";
3
- import { BaseEntity } from "./BaseEntity";
4
2
  import { Vector3 } from "../common/utils/Vector";
3
+ import { Tasks } from "../Tasks";
5
4
  import type { DrivingStyle } from "../enums/Driving";
6
5
  import type { FiringPattern } from "../enums/FiringPattern";
7
6
  import { Gender } from "../enums/Gender";
@@ -10,16 +9,18 @@ import { RagdollType } from "../enums/RagdollType";
10
9
  import { SpeechModifier } from "../enums/SpeechModifier";
11
10
  import { VehicleSeat } from "../enums/Vehicle";
12
11
  import type { WeaponHash } from "../hashes/WeaponHash";
13
- import { Tasks } from "../Tasks";
12
+ import { WeaponCollection } from "../weapon/WeaponCollection";
13
+ import { BaseEntity } from "./BaseEntity";
14
+ import type { Entity } from "./Entity";
14
15
  import { PedBoneCollection } from "./PedBoneCollection";
15
- import { Vehicle } from "./Vehicle";
16
16
  import { Player } from "./Player";
17
+ import { Vehicle } from "./Vehicle";
17
18
  export declare class Ped extends BaseEntity {
18
19
  static exists(ped: Ped): boolean;
19
20
  static fromHandle(handle: number): Ped | null;
20
21
  static fromNetworkId(networkId: number): Ped | null;
21
22
  protected type: ClassTypes;
22
- private pedBones?;
23
+ protected bones?: PedBoneCollection;
23
24
  private weapons?;
24
25
  private static readonly speechModifierNames;
25
26
  private tasks;
@@ -129,7 +130,7 @@ export declare class Ped extends BaseEntity {
129
130
  getJacker(): Ped;
130
131
  getJackTarget(): Ped;
131
132
  getMeleeTarget(): Ped;
132
- getKiller(): BaseEntity | null;
133
+ getKiller(): Entity | null;
133
134
  kill(): void;
134
135
  resurrect(): void;
135
136
  resetVisibleDamage(): void;
@@ -204,4 +205,5 @@ export declare class Ped extends BaseEntity {
204
205
  getHeadBlend(): [number, number, number, number, number, number, number, number, number, boolean] | null;
205
206
  finalizeHeadBlend(): void;
206
207
  hasHeadBlendFinished(): boolean;
208
+ getEntityAttachedTo(): Entity;
207
209
  }
package/models/Ped.js CHANGED
@@ -1,17 +1,18 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- import { WeaponCollection } from "../weapon/WeaponCollection";
4
3
  import { ClassTypes } from "../common/utils/ClassTypes";
5
- import { BaseEntity } from "./BaseEntity";
6
4
  import { Vector3 } from "../common/utils/Vector";
5
+ import { Tasks } from "../Tasks";
7
6
  import { Gender } from "../enums/Gender";
8
7
  import { RagdollType } from "../enums/RagdollType";
9
8
  import { SpeechModifier } from "../enums/SpeechModifier";
10
9
  import { VehicleSeat } from "../enums/Vehicle";
11
- import { Tasks } from "../Tasks";
10
+ import { GetEntityClassFromId } from "../utils/GetEntityFromEntityIds";
11
+ import { WeaponCollection } from "../weapon/WeaponCollection";
12
+ import { BaseEntity } from "./BaseEntity";
12
13
  import { PedBoneCollection } from "./PedBoneCollection";
13
- import { Vehicle } from "./Vehicle";
14
14
  import { Player } from "./Player";
15
+ import { Vehicle } from "./Vehicle";
15
16
  class Ped extends BaseEntity {
16
17
  static {
17
18
  __name(this, "Ped");
@@ -20,6 +21,9 @@ class Ped extends BaseEntity {
20
21
  return typeof ped !== "undefined" && ped.exists();
21
22
  }
22
23
  static fromHandle(handle) {
24
+ if (handle === 0 || !DoesEntityExist(handle)) {
25
+ return null;
26
+ }
23
27
  return new Ped(handle);
24
28
  }
25
29
  static fromNetworkId(networkId) {
@@ -29,7 +33,7 @@ class Ped extends BaseEntity {
29
33
  return new Ped(NetworkGetEntityFromNetworkId(networkId));
30
34
  }
31
35
  type = ClassTypes.Ped;
32
- pedBones;
36
+ bones;
33
37
  weapons;
34
38
  static speechModifierNames = [
35
39
  "SPEECH_PARAMS_STANDARD",
@@ -139,23 +143,23 @@ class Ped extends BaseEntity {
139
143
  if (!this.CurrentVehicle) return VehicleSeat.None;
140
144
  const numberOfSeats = GetVehicleModelNumberOfSeats(this.CurrentVehicle.Model.Hash);
141
145
  for (let seat = -1; seat < numberOfSeats; seat++) {
142
- if (this.CurrentVehicle.getPedOnSeat(seat).Handle === this.handle) {
146
+ if (this.CurrentVehicle.getPedOnSeat(seat)?.Handle === this.handle) {
143
147
  return seat;
144
148
  }
145
149
  }
146
150
  return VehicleSeat.None;
147
151
  }
148
152
  get CurrentVehicle() {
149
- const veh = new Vehicle(GetVehiclePedIsIn(this.handle, false));
150
- return veh.exists() ? veh : null;
153
+ const veh = Vehicle.fromHandle(GetVehiclePedIsIn(this.handle, false));
154
+ return veh?.exists() ? veh : null;
151
155
  }
152
156
  get LastVehicle() {
153
- const veh = new Vehicle(GetVehiclePedIsIn(this.handle, true));
154
- return veh.exists() ? veh : null;
157
+ const veh = Vehicle.fromHandle(GetVehiclePedIsIn(this.handle, true));
158
+ return veh?.exists() ? veh : null;
155
159
  }
156
160
  get VehicleTryingToEnter() {
157
- const veh = new Vehicle(GetVehiclePedIsTryingToEnter(this.handle));
158
- return veh.exists() ? veh : null;
161
+ const veh = Vehicle.fromHandle(GetVehiclePedIsTryingToEnter(this.handle));
162
+ return veh?.exists() ? veh : null;
159
163
  }
160
164
  get IsJumpingOutOfVehicle() {
161
165
  return IsPedJumpingOutOfVehicle(this.handle);
@@ -410,7 +414,7 @@ class Ped extends BaseEntity {
410
414
  return new Ped(GetMeleeTargetForPed(this.handle));
411
415
  }
412
416
  getKiller() {
413
- return Ped.fromHandle(GetPedSourceOfDeath(this.handle));
417
+ return GetEntityClassFromId(GetPedSourceOfDeath(this.handle));
414
418
  }
415
419
  kill() {
416
420
  this.Health = -1;
@@ -473,10 +477,10 @@ class Ped extends BaseEntity {
473
477
  ClearPedLastWeaponDamage(this.handle);
474
478
  }
475
479
  get Bones() {
476
- if (!this.pedBones) {
477
- this.pedBones = new PedBoneCollection(this);
480
+ if (!this.bones) {
481
+ this.bones = new PedBoneCollection(this);
478
482
  }
479
- return this.pedBones;
483
+ return this.bones;
480
484
  }
481
485
  /**
482
486
  * Ped Weapons
@@ -705,6 +709,9 @@ class Ped extends BaseEntity {
705
709
  hasHeadBlendFinished() {
706
710
  return HasPedHeadBlendFinished(this.handle);
707
711
  }
712
+ getEntityAttachedTo() {
713
+ return GetEntityClassFromId(this.handle);
714
+ }
708
715
  }
709
716
  export {
710
717
  Ped
@@ -1,7 +1,7 @@
1
1
  import type { Bone } from "../enums/Bone";
2
- import { EntityBone } from "./EntityBone";
3
- import { Ped } from "./Ped";
4
- export declare class PedBone extends EntityBone {
2
+ import { BaseEntityBone } from "./BaseEntityBone";
3
+ import type { Ped } from "./Ped";
4
+ export declare class PedBone extends BaseEntityBone {
5
5
  constructor(owner: Ped, boneId: Bone);
6
6
  get IsValid(): boolean;
7
7
  }
package/models/PedBone.js CHANGED
@@ -1,8 +1,7 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- import { EntityBone } from "./EntityBone";
4
- import { Ped } from "./Ped";
5
- class PedBone extends EntityBone {
3
+ import { BaseEntityBone } from "./BaseEntityBone";
4
+ class PedBone extends BaseEntityBone {
6
5
  static {
7
6
  __name(this, "PedBone");
8
7
  }
@@ -10,7 +9,7 @@ class PedBone extends EntityBone {
10
9
  super(owner, GetPedBoneIndex(owner.Handle, Number(boneId)));
11
10
  }
12
11
  get IsValid() {
13
- return Ped.exists(this.Owner) && this.Index !== -1;
12
+ return this.Owner.exists() && this.Index !== -1;
14
13
  }
15
14
  }
16
15
  export {
@@ -1,7 +1,7 @@
1
- import { EntityBoneCollection } from "./EntityBoneCollection";
1
+ import { BaseEntityBoneCollection } from "./BaseEntityBoneCollection";
2
2
  import type { Ped } from "./Ped";
3
3
  import { PedBone } from "./PedBone";
4
- export declare class PedBoneCollection extends EntityBoneCollection {
4
+ export declare class PedBoneCollection extends BaseEntityBoneCollection {
5
5
  constructor(owner: Ped);
6
6
  get Core(): PedBone;
7
7
  get LastDamaged(): PedBone;
@@ -1,8 +1,8 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- import { EntityBoneCollection } from "./EntityBoneCollection";
3
+ import { BaseEntityBoneCollection } from "./BaseEntityBoneCollection";
4
4
  import { PedBone } from "./PedBone";
5
- class PedBoneCollection extends EntityBoneCollection {
5
+ class PedBoneCollection extends BaseEntityBoneCollection {
6
6
  static {
7
7
  __name(this, "PedBoneCollection");
8
8
  }
@@ -1,7 +1,7 @@
1
- import { type StateBagChangeHandler } from "../cfx";
2
1
  import { Color } from "../common/utils/Color";
3
2
  import { Model } from "../Model";
4
- import { BaseEntity } from "./BaseEntity";
3
+ import { type StateBagChangeHandler } from "../cfx";
4
+ import type { Entity } from "./Entity";
5
5
  import { Ped } from "./Ped";
6
6
  export declare class Player {
7
7
  private handle;
@@ -40,7 +40,7 @@ export declare class Player {
40
40
  get IsDead(): boolean;
41
41
  set DisableFiring(value: boolean);
42
42
  set Ghosted(isGhosted: boolean);
43
- get EntityPlayerIsAimingAt(): BaseEntity | null;
43
+ get EntityPlayerIsAimingAt(): Entity | null;
44
44
  get StealthNoise(): number;
45
45
  get FakeWantedLevel(): number;
46
46
  get PlayerGroup(): number;
@@ -60,7 +60,7 @@ export declare class Player {
60
60
  /**
61
61
  * The players melee target?
62
62
  */
63
- get TargetEntity(): BaseEntity | null;
63
+ get TargetEntity(): Entity | null;
64
64
  get Team(): number;
65
65
  CanPedHearPlayer(ped: Ped): boolean;
66
66
  }
package/models/Player.js CHANGED
@@ -1,10 +1,10 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- import cfx from "../cfx";
4
3
  import { ClassTypes } from "../common/utils/ClassTypes";
5
4
  import { Color } from "../common/utils/Color";
6
5
  import { Model } from "../Model";
7
- import { BaseEntity } from "./BaseEntity";
6
+ import { GetEntityClassFromId } from "../utils/GetEntityFromEntityIds";
7
+ import cfx from "../cfx";
8
8
  import { Ped } from "./Ped";
9
9
  class Player {
10
10
  static {
@@ -110,7 +110,7 @@ class Player {
110
110
  get EntityPlayerIsAimingAt() {
111
111
  const [entityHit, entity] = GetEntityPlayerIsFreeAimingAt(this.handle);
112
112
  if (entityHit) {
113
- return new BaseEntity(entity);
113
+ return GetEntityClassFromId(entity);
114
114
  }
115
115
  return null;
116
116
  }
@@ -171,7 +171,7 @@ class Player {
171
171
  get TargetEntity() {
172
172
  const [entityHit, entity] = GetPlayerTargetEntity(this.handle);
173
173
  if (entityHit) {
174
- return new BaseEntity(entity);
174
+ return GetEntityClassFromId(entity);
175
175
  }
176
176
  return null;
177
177
  }
package/models/Prop.d.ts CHANGED
@@ -1,11 +1,16 @@
1
1
  import { ClassTypes } from "../common/utils/ClassTypes";
2
2
  import { BaseEntity } from "./BaseEntity";
3
+ import type { Entity } from "./Entity";
4
+ import { EntityBoneCollection } from "./EntityBoneCollection";
3
5
  export declare class Prop extends BaseEntity {
4
6
  static exists(prop: Prop): boolean;
5
7
  static fromHandle(handle: number): Prop | null;
6
8
  static fromNetworkId(networkId: number): Prop | null;
7
9
  protected type: ClassTypes;
10
+ protected bones?: EntityBoneCollection | undefined;
8
11
  constructor(handle: number);
9
12
  exists(): boolean;
10
13
  placeOnGround(): void;
14
+ getEntityAttachedTo(): Entity;
15
+ get Bones(): EntityBoneCollection;
11
16
  }
package/models/Prop.js CHANGED
@@ -1,7 +1,9 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
3
  import { ClassTypes } from "../common/utils/ClassTypes";
4
+ import { GetEntityClassFromId } from "../utils/GetEntityFromEntityIds";
4
5
  import { BaseEntity } from "./BaseEntity";
6
+ import { EntityBoneCollection } from "./EntityBoneCollection";
5
7
  class Prop extends BaseEntity {
6
8
  static {
7
9
  __name(this, "Prop");
@@ -19,6 +21,7 @@ class Prop extends BaseEntity {
19
21
  return new Prop(NetworkGetEntityFromNetworkId(networkId));
20
22
  }
21
23
  type = ClassTypes.Prop;
24
+ bones;
22
25
  constructor(handle) {
23
26
  super(handle);
24
27
  }
@@ -28,6 +31,15 @@ class Prop extends BaseEntity {
28
31
  placeOnGround() {
29
32
  PlaceObjectOnGroundProperly(this.handle);
30
33
  }
34
+ getEntityAttachedTo() {
35
+ return GetEntityClassFromId(this.handle);
36
+ }
37
+ get Bones() {
38
+ if (!this.bones) {
39
+ this.bones = new EntityBoneCollection(this);
40
+ }
41
+ return this.bones;
42
+ }
31
43
  }
32
44
  export {
33
45
  Prop
@@ -1,9 +1,11 @@
1
+ import { ClassTypes } from "../common/utils/ClassTypes";
1
2
  import { Vector3 } from "../common/utils/Vector";
2
- import type { RadioStation } from "../enums/RadioStation";
3
- import { type VehicleClass, type VehicleLandingGearState, VehicleRoofState, type VehicleLockStatus, VehicleSeat } from "../enums/Vehicle";
4
3
  import type { Model } from "../Model";
5
- import { ClassTypes } from "../common/utils/ClassTypes";
4
+ import type { RadioStation } from "../enums/RadioStation";
5
+ import { type VehicleClass, type VehicleLandingGearState, type VehicleLockStatus, VehicleRoofState, VehicleSeat } from "../enums/Vehicle";
6
6
  import { BaseEntity } from "./BaseEntity";
7
+ import type { Entity } from "./Entity";
8
+ import { EntityBoneCollection } from "./EntityBoneCollection";
7
9
  import { Ped } from "./Ped";
8
10
  import { VehicleDoorCollection } from "./VehicleDoorCollection";
9
11
  import { VehicleModCollection } from "./VehicleModCollection";
@@ -21,7 +23,9 @@ export declare class Vehicle extends BaseEntity {
21
23
  private _wheels?;
22
24
  private _windows?;
23
25
  protected type: ClassTypes;
26
+ protected bones?: EntityBoneCollection;
24
27
  constructor(handle: number);
28
+ get Bones(): EntityBoneCollection;
25
29
  exists(): boolean;
26
30
  get DisplayName(): string;
27
31
  get ClassDisplayName(): string;
@@ -128,15 +132,15 @@ export declare class Vehicle extends BaseEntity {
128
132
  get IsConvertible(): boolean;
129
133
  set IsBurnoutForced(value: boolean);
130
134
  get IsInBurnout(): boolean;
131
- get Driver(): Ped;
135
+ get Driver(): Ped | null;
132
136
  get Ghosted(): boolean;
133
137
  set GhostedForGhostPlayers(isGhostedForGhostPlayers: boolean);
134
138
  set Ghosted(isGhosted: boolean);
135
139
  static set GhostAlpha(alpha: number);
136
140
  get IsInGhostCollision(): boolean;
137
141
  static resetGhostAlpha(): void;
138
- get Occupants(): Ped[];
139
- get Passengers(): Ped[];
142
+ get Occupants(): (Ped | null)[];
143
+ get Passengers(): (Ped | null)[];
140
144
  get Doors(): VehicleDoorCollection;
141
145
  get Mods(): VehicleModCollection;
142
146
  get Wheels(): VehicleWheelCollection;
@@ -144,7 +148,7 @@ export declare class Vehicle extends BaseEntity {
144
148
  extraExists(extra: number): boolean;
145
149
  isExtraOn(extra: number): boolean;
146
150
  toggleExtra(extra: number, toggle: boolean): void;
147
- getPedOnSeat(seat: VehicleSeat): Ped;
151
+ getPedOnSeat(seat: VehicleSeat): Ped | null;
148
152
  isSeatFree(seat: VehicleSeat): boolean;
149
153
  wash(): void;
150
154
  get DirtLevel(): number;
@@ -175,4 +179,5 @@ export declare class Vehicle extends BaseEntity {
175
179
  getHandlingInt(fieldName: string): number;
176
180
  setHandlingInt(fieldName: string, value: number): void;
177
181
  getHandlingVector(fieldName: string): Vector3;
182
+ getEntityAttachedTo(): Entity;
178
183
  }
package/models/Vehicle.js CHANGED
@@ -1,13 +1,15 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { ClassTypes } from "../common/utils/ClassTypes";
3
4
  import { Vector3 } from "../common/utils/Vector";
5
+ import { GameConstants } from "../GameConstants";
4
6
  import {
5
7
  VehicleRoofState,
6
8
  VehicleSeat
7
9
  } from "../enums/Vehicle";
8
- import { Game } from "../Game";
9
- import { ClassTypes } from "../common/utils/ClassTypes";
10
+ import { GetEntityClassFromId } from "../utils/GetEntityFromEntityIds";
10
11
  import { BaseEntity } from "./BaseEntity";
12
+ import { EntityBoneCollection } from "./EntityBoneCollection";
11
13
  import { Ped } from "./Ped";
12
14
  import { VehicleDoorCollection } from "./VehicleDoorCollection";
13
15
  import { VehicleModCollection } from "./VehicleModCollection";
@@ -30,7 +32,9 @@ class Vehicle extends BaseEntity {
30
32
  return typeof vehicle !== "undefined" && vehicle.exists();
31
33
  }
32
34
  static fromHandle(handle) {
33
- if (!DoesEntityExist(handle)) return null;
35
+ if (handle === 0 || !DoesEntityExist(handle)) {
36
+ return null;
37
+ }
34
38
  return new Vehicle(handle);
35
39
  }
36
40
  static fromNetworkId(networkId) {
@@ -44,9 +48,16 @@ class Vehicle extends BaseEntity {
44
48
  _wheels;
45
49
  _windows;
46
50
  type = ClassTypes.Vehicle;
51
+ bones;
47
52
  constructor(handle) {
48
53
  super(handle);
49
54
  }
55
+ get Bones() {
56
+ if (!this.bones) {
57
+ this.bones = new EntityBoneCollection(this);
58
+ }
59
+ return this.bones;
60
+ }
50
61
  exists() {
51
62
  return super.exists() && GetEntityType(this.handle) === 2;
52
63
  }
@@ -117,7 +128,7 @@ class Vehicle extends BaseEntity {
117
128
  SetVehicleEngineOn(this.handle, value, !value, true);
118
129
  }
119
130
  get IsRadioEnabled() {
120
- if (Game.Player.Character.isInVehicle(this)) {
131
+ if (GameConstants.Player.Character.isInVehicle(this)) {
121
132
  return IsPlayerVehicleRadioEnabled();
122
133
  }
123
134
  return false;
@@ -200,7 +211,7 @@ class Vehicle extends BaseEntity {
200
211
  set HasMutedSirens(value) {
201
212
  SetVehicleHasMutedSirens(this.handle, value);
202
213
  }
203
- soundHorn(duration, mode = Game.generateHash("HELDDOWN")) {
214
+ soundHorn(duration, mode = GetHashKey("HELDDOWN")) {
204
215
  StartVehicleHorn(this.handle, duration, mode, false);
205
216
  }
206
217
  get IsWanted() {
@@ -418,7 +429,7 @@ class Vehicle extends BaseEntity {
418
429
  }
419
430
  get Occupants() {
420
431
  const driver = this.Driver;
421
- if (!Ped.exists(driver)) {
432
+ if (driver === null) {
422
433
  return this.Passengers;
423
434
  }
424
435
  return [driver, ...this.Passengers];
@@ -475,7 +486,7 @@ class Vehicle extends BaseEntity {
475
486
  }
476
487
  }
477
488
  getPedOnSeat(seat) {
478
- return new Ped(GetPedInVehicleSeat(this.handle, seat));
489
+ return Ped.fromHandle(GetPedInVehicleSeat(this.handle, seat));
479
490
  }
480
491
  isSeatFree(seat) {
481
492
  return IsVehicleSeatFree(this.handle, seat);
@@ -576,6 +587,9 @@ class Vehicle extends BaseEntity {
576
587
  getHandlingVector(fieldName) {
577
588
  return Vector3.fromArray(GetVehicleHandlingVector(this.handle, "CHandlingData", fieldName));
578
589
  }
590
+ getEntityAttachedTo() {
591
+ return GetEntityClassFromId(this.handle);
592
+ }
579
593
  }
580
594
  export {
581
595
  Vehicle
@@ -0,0 +1,5 @@
1
+ export * from "./BaseEntity";
2
+ export * from "./Ped";
3
+ export * from "./Vehicle";
4
+ export * from "./Prop";
5
+ export * from "./Player";
@@ -0,0 +1,5 @@
1
+ export * from "./BaseEntity";
2
+ export * from "./Ped";
3
+ export * from "./Vehicle";
4
+ export * from "./Prop";
5
+ export * from "./Player";
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  ],
9
9
  "license": "MIT",
10
10
  "type": "module",
11
- "version": "0.0.87",
11
+ "version": "0.0.88",
12
12
  "repository": {
13
13
  "type": "git",
14
14
  "url": "https://github.com/nativewrappers/nativewrappers.git"
@@ -0,0 +1,2 @@
1
+ import type { Entity } from "../models/Entity";
2
+ export declare function GetEntityClassFromId(entityId: number): Entity;
@@ -0,0 +1,23 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { Ped } from "../models/Ped";
4
+ import { Prop } from "../models/Prop";
5
+ import { Vehicle } from "../models/Vehicle";
6
+ function GetEntityClassFromId(entityId) {
7
+ switch (GetEntityType(entityId)) {
8
+ case 1: {
9
+ return Ped.fromHandle(entityId);
10
+ }
11
+ case 2: {
12
+ return Vehicle.fromHandle(entityId);
13
+ }
14
+ case 3: {
15
+ return Prop.fromHandle(entityId);
16
+ }
17
+ }
18
+ return null;
19
+ }
20
+ __name(GetEntityClassFromId, "GetEntityClassFromId");
21
+ export {
22
+ GetEntityClassFromId
23
+ };
package/Events.d.ts DELETED
@@ -1,11 +0,0 @@
1
- export type NetEvent = (...args: any[]) => void;
2
- export declare class Events {
3
- /**
4
- * An onNet wrapper that properly converts the type into the correct type
5
- */
6
- static onNet: (eventName: string, event: NetEvent) => void;
7
- /**
8
- * An on wrapper that properly converts the classes
9
- */
10
- static on: (eventName: string, event: NetEvent) => void;
11
- }