@panda0day/fivex 0.2.1 → 0.3.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.
Files changed (45) hide show
  1. package/dist/client/entities/vehicle.d.ts +46 -2
  2. package/dist/client/entities/vehicle.d.ts.map +1 -1
  3. package/dist/client/entities/vehicle.js +135 -3
  4. package/dist/client/entities/vehicle.js.map +1 -1
  5. package/dist/client/managers/client-pool.d.ts +1 -0
  6. package/dist/client/managers/client-pool.d.ts.map +1 -1
  7. package/dist/client/managers/client-pool.js +11 -0
  8. package/dist/client/managers/client-pool.js.map +1 -1
  9. package/dist/client/managers/vehicle-pool.d.ts +5 -0
  10. package/dist/client/managers/vehicle-pool.d.ts.map +1 -1
  11. package/dist/client/managers/vehicle-pool.js +21 -0
  12. package/dist/client/managers/vehicle-pool.js.map +1 -1
  13. package/dist/server/core.d.ts +2 -0
  14. package/dist/server/core.d.ts.map +1 -1
  15. package/dist/server/core.js +2 -0
  16. package/dist/server/core.js.map +1 -1
  17. package/dist/server/entities/object.d.ts +1 -0
  18. package/dist/server/entities/object.d.ts.map +1 -1
  19. package/dist/server/entities/object.js +3 -0
  20. package/dist/server/entities/object.js.map +1 -1
  21. package/dist/server/entities/ped.d.ts +1 -0
  22. package/dist/server/entities/ped.d.ts.map +1 -1
  23. package/dist/server/entities/ped.js +3 -0
  24. package/dist/server/entities/ped.js.map +1 -1
  25. package/dist/server/entities/vehicle.d.ts +15 -0
  26. package/dist/server/entities/vehicle.d.ts.map +1 -1
  27. package/dist/server/entities/vehicle.js +47 -1
  28. package/dist/server/entities/vehicle.js.map +1 -1
  29. package/dist/server/managers/object-pool.d.ts +13 -0
  30. package/dist/server/managers/object-pool.d.ts.map +1 -0
  31. package/dist/server/managers/object-pool.js +32 -0
  32. package/dist/server/managers/object-pool.js.map +1 -0
  33. package/dist/server/managers/ped-pool.d.ts +13 -0
  34. package/dist/server/managers/ped-pool.d.ts.map +1 -0
  35. package/dist/server/managers/ped-pool.js +32 -0
  36. package/dist/server/managers/ped-pool.js.map +1 -0
  37. package/dist/server/managers/vehicle-pool.d.ts +5 -0
  38. package/dist/server/managers/vehicle-pool.d.ts.map +1 -1
  39. package/dist/server/managers/vehicle-pool.js +18 -0
  40. package/dist/server/managers/vehicle-pool.js.map +1 -1
  41. package/dist/shared/pool-base.d.ts +2 -0
  42. package/dist/shared/pool-base.d.ts.map +1 -1
  43. package/dist/shared/pool-base.js +15 -0
  44. package/dist/shared/pool-base.js.map +1 -1
  45. package/package.json +1 -1
@@ -1,8 +1,52 @@
1
1
  import { Entity } from "./entity";
2
2
  export declare class Vehicle extends Entity {
3
3
  get speed(): number;
4
- get engineOn(): boolean;
5
- set engineOn(v: boolean);
4
+ get maxSpeed(): number;
5
+ get currentGear(): number;
6
+ get class(): number;
7
+ get vehicleType(): string;
8
+ get driver(): number;
9
+ getPedInSeat(seat: number): number;
10
+ isSeatFree(seat: number): boolean;
11
+ get maxPassengers(): number;
12
+ get bodyHealth(): number;
13
+ set bodyHealth(v: number);
14
+ get engineHealth(): number;
15
+ set engineHealth(v: number);
16
+ get tankHealth(): number;
17
+ set tankHealth(v: number);
18
+ get fuelLevel(): number;
19
+ set fuelLevel(v: number);
20
+ get engineRunning(): boolean;
21
+ set engineOn(on: boolean);
6
22
  repair(): void;
23
+ setUndriveable(toggle: boolean): void;
24
+ setHandbrake(toggle: boolean): void;
25
+ placeOnGround(): void;
26
+ get numberPlate(): string;
27
+ set numberPlate(text: string);
28
+ get livery(): number;
29
+ set livery(index: number);
30
+ get dirtLevel(): number;
31
+ set dirtLevel(v: number);
32
+ get windowTint(): number;
33
+ set windowTint(tint: number);
34
+ get colours(): [number, number];
35
+ setColours(primary: number, secondary: number): void;
36
+ setCustomPrimaryColour(r: number, g: number, b: number): void;
37
+ setCustomSecondaryColour(r: number, g: number, b: number): void;
38
+ get wheelType(): number;
39
+ set wheelType(type: number);
40
+ setModKit(kit: number): void;
41
+ getMod(modType: number): number;
42
+ setMod(modType: number, modIndex: number, customTires?: boolean): void;
43
+ toggleMod(modType: number, toggle: boolean): void;
44
+ setNeonEnabled(index: number, toggle: boolean): void;
45
+ setNeonColour(r: number, g: number, b: number): void;
46
+ setTyreSmokeColour(r: number, g: number, b: number): void;
47
+ get locked(): boolean;
48
+ setDoorsLocked(locked: boolean): void;
49
+ setDoorsLockedForAllPlayers(locked: boolean): void;
50
+ setAlarm(active: boolean): void;
7
51
  }
8
52
  //# sourceMappingURL=vehicle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vehicle.d.ts","sourceRoot":"","sources":["../../../src/client/entities/vehicle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,qBAAa,OAAQ,SAAQ,MAAM;IAClC,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,QAAQ,CAAC,CAAC,EAAE,OAAO,EAEtB;IAED,MAAM,IAAI,IAAI;CAGd"}
1
+ {"version":3,"file":"vehicle.d.ts","sourceRoot":"","sources":["../../../src/client/entities/vehicle.ts"],"names":[],"mappings":"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"}
@@ -3,14 +3,146 @@ export class Vehicle extends Entity {
3
3
  get speed() {
4
4
  return GetEntitySpeed(this.handle);
5
5
  }
6
- get engineOn() {
6
+ get maxSpeed() {
7
+ return GetVehicleMaxSpeed(this.handle);
8
+ }
9
+ get currentGear() {
10
+ return GetVehicleCurrentGear(this.handle);
11
+ }
12
+ get class() {
13
+ return GetVehicleClass(this.handle);
14
+ }
15
+ get vehicleType() {
16
+ return GetVehicleType(this.handle);
17
+ }
18
+ get driver() {
19
+ return GetPedInVehicleSeat(this.handle, -1);
20
+ }
21
+ getPedInSeat(seat) {
22
+ return GetPedInVehicleSeat(this.handle, seat);
23
+ }
24
+ isSeatFree(seat) {
25
+ return IsVehicleSeatFree(this.handle, seat);
26
+ }
27
+ get maxPassengers() {
28
+ return GetVehicleMaxNumberOfPassengers(this.handle);
29
+ }
30
+ get bodyHealth() {
31
+ return GetVehicleBodyHealth(this.handle);
32
+ }
33
+ set bodyHealth(v) {
34
+ SetVehicleBodyHealth(this.handle, v);
35
+ }
36
+ get engineHealth() {
37
+ return GetVehicleEngineHealth(this.handle);
38
+ }
39
+ set engineHealth(v) {
40
+ SetVehicleEngineHealth(this.handle, v);
41
+ }
42
+ get tankHealth() {
43
+ return GetVehiclePetrolTankHealth(this.handle);
44
+ }
45
+ set tankHealth(v) {
46
+ SetVehiclePetrolTankHealth(this.handle, v);
47
+ }
48
+ get fuelLevel() {
49
+ return GetVehicleFuelLevel(this.handle);
50
+ }
51
+ set fuelLevel(v) {
52
+ SetVehicleFuelLevel(this.handle, v);
53
+ }
54
+ get engineRunning() {
7
55
  return GetIsVehicleEngineRunning(this.handle);
8
56
  }
9
- set engineOn(v) {
10
- SetVehicleEngineOn(this.handle, v, true, true);
57
+ set engineOn(on) {
58
+ SetVehicleEngineOn(this.handle, on, true, true);
11
59
  }
12
60
  repair() {
13
61
  SetVehicleFixed(this.handle);
14
62
  }
63
+ setUndriveable(toggle) {
64
+ SetVehicleUndriveable(this.handle, toggle);
65
+ }
66
+ setHandbrake(toggle) {
67
+ SetVehicleHandbrake(this.handle, toggle);
68
+ }
69
+ placeOnGround() {
70
+ SetVehicleOnGroundProperly(this.handle);
71
+ }
72
+ get numberPlate() {
73
+ return GetVehicleNumberPlateText(this.handle);
74
+ }
75
+ set numberPlate(text) {
76
+ SetVehicleNumberPlateText(this.handle, text);
77
+ }
78
+ get livery() {
79
+ return GetVehicleLivery(this.handle);
80
+ }
81
+ set livery(index) {
82
+ SetVehicleLivery(this.handle, index);
83
+ }
84
+ get dirtLevel() {
85
+ return GetVehicleDirtLevel(this.handle);
86
+ }
87
+ set dirtLevel(v) {
88
+ SetVehicleDirtLevel(this.handle, v);
89
+ }
90
+ get windowTint() {
91
+ return GetVehicleWindowTint(this.handle);
92
+ }
93
+ set windowTint(tint) {
94
+ SetVehicleWindowTint(this.handle, tint);
95
+ }
96
+ get colours() {
97
+ return GetVehicleColours(this.handle);
98
+ }
99
+ setColours(primary, secondary) {
100
+ SetVehicleColours(this.handle, primary, secondary);
101
+ }
102
+ setCustomPrimaryColour(r, g, b) {
103
+ SetVehicleCustomPrimaryColour(this.handle, r, g, b);
104
+ }
105
+ setCustomSecondaryColour(r, g, b) {
106
+ SetVehicleCustomSecondaryColour(this.handle, r, g, b);
107
+ }
108
+ get wheelType() {
109
+ return GetVehicleWheelType(this.handle);
110
+ }
111
+ set wheelType(type) {
112
+ SetVehicleWheelType(this.handle, type);
113
+ }
114
+ setModKit(kit) {
115
+ SetVehicleModKit(this.handle, kit);
116
+ }
117
+ getMod(modType) {
118
+ return GetVehicleMod(this.handle, modType);
119
+ }
120
+ setMod(modType, modIndex, customTires = false) {
121
+ SetVehicleMod(this.handle, modType, modIndex, customTires);
122
+ }
123
+ toggleMod(modType, toggle) {
124
+ ToggleVehicleMod(this.handle, modType, toggle);
125
+ }
126
+ setNeonEnabled(index, toggle) {
127
+ SetVehicleNeonLightEnabled(this.handle, index, toggle);
128
+ }
129
+ setNeonColour(r, g, b) {
130
+ SetVehicleNeonLightsColour(this.handle, r, g, b);
131
+ }
132
+ setTyreSmokeColour(r, g, b) {
133
+ SetVehicleTyreSmokeColor(this.handle, r, g, b);
134
+ }
135
+ get locked() {
136
+ return GetVehicleDoorLockStatus(this.handle) === 2;
137
+ }
138
+ setDoorsLocked(locked) {
139
+ SetVehicleDoorsLocked(this.handle, locked ? 2 : 1);
140
+ }
141
+ setDoorsLockedForAllPlayers(locked) {
142
+ SetVehicleDoorsLockedForAllPlayers(this.handle, locked);
143
+ }
144
+ setAlarm(active) {
145
+ SetVehicleAlarm(this.handle, active);
146
+ }
15
147
  }
16
148
  //# sourceMappingURL=vehicle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vehicle.js","sourceRoot":"","sources":["../../../src/client/entities/vehicle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,OAAO,OAAQ,SAAQ,MAAM;IAClC,IAAI,KAAK;QACR,OAAO,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,QAAQ,CAAC,CAAU;QACtB,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,MAAM;QACL,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;CACD"}
1
+ {"version":3,"file":"vehicle.js","sourceRoot":"","sources":["../../../src/client/entities/vehicle.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { Pool } from "../../shared/pool-base";
2
2
  export declare abstract class ClientPool<T> extends Pool<T> {
3
3
  atNetId(netId: number): T | undefined;
4
+ forEachInStreamRange(fn: (item: T) => void, radius: 424.0): void;
4
5
  }
5
6
  //# sourceMappingURL=client-pool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client-pool.d.ts","sourceRoot":"","sources":["../../../src/client/managers/client-pool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAE9C,8BAAsB,UAAU,CAAC,CAAC,CAAE,SAAQ,IAAI,CAAC,CAAC,CAAC;IAClD,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;CAKrC"}
1
+ {"version":3,"file":"client-pool.d.ts","sourceRoot":"","sources":["../../../src/client/managers/client-pool.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAE9C,8BAAsB,UAAU,CAAC,CAAC,CAAE,SAAQ,IAAI,CAAC,CAAC,CAAC;IAClD,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAMrC,oBAAoB,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,MAAM,EAAE,KAAK;CAWzD"}
@@ -1,4 +1,5 @@
1
1
  /// <reference types="@citizenfx/client" />
2
+ import { Vector3 } from "../../shared";
2
3
  import { Pool } from "../../shared/pool-base";
3
4
  export class ClientPool extends Pool {
4
5
  atNetId(netId) {
@@ -7,5 +8,15 @@ export class ClientPool extends Pool {
7
8
  const handle = NetworkGetEntityFromNetworkId(netId);
8
9
  return handle !== 0 ? this.wrap(handle) : undefined;
9
10
  }
11
+ forEachInStreamRange(fn, radius) {
12
+ const origin = Vector3.from(GetEntityCoords(PlayerPedId(), false));
13
+ const r2 = radius * radius;
14
+ this.ids().forEach((id) => {
15
+ const item = this.wrap(id);
16
+ if (item.position.distanceToSquared(origin) <= r2) {
17
+ fn(item);
18
+ }
19
+ });
20
+ }
10
21
  }
11
22
  //# sourceMappingURL=client-pool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client-pool.js","sourceRoot":"","sources":["../../../src/client/managers/client-pool.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAE9C,MAAM,OAAgB,UAAc,SAAQ,IAAO;IAClD,OAAO,CAAC,KAAa;QACpB,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QACxD,MAAM,MAAM,GAAG,6BAA6B,CAAC,KAAK,CAAC,CAAC;QACpD,OAAO,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrD,CAAC;CACD"}
1
+ {"version":3,"file":"client-pool.js","sourceRoot":"","sources":["../../../src/client/managers/client-pool.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAE3C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAE9C,MAAM,OAAgB,UAAc,SAAQ,IAAO;IAClD,OAAO,CAAC,KAAa;QACpB,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QACxD,MAAM,MAAM,GAAG,6BAA6B,CAAC,KAAK,CAAC,CAAC;QACpD,OAAO,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrD,CAAC;IAED,oBAAoB,CAAC,EAAqB,EAAE,MAAa;QACxD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;QACnE,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC;QAE3B,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;YACzB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC3B,IAAK,IAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC5D,EAAE,CAAC,IAAI,CAAC,CAAC;YACV,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;CACD"}
@@ -1,8 +1,13 @@
1
+ import { type IVector3 } from "../../shared";
1
2
  import { Vehicle } from "../entities/vehicle";
2
3
  import { ClientPool } from "./client-pool";
3
4
  export declare class VehiclePool extends ClientPool<Vehicle> {
4
5
  protected ids(): number[];
5
6
  protected wrap(id: number): Vehicle;
6
7
  at(handle: number): Vehicle;
8
+ getClosest(to: IVector3): Vehicle | undefined;
9
+ getInRange(to: IVector3, radius: number): Vehicle[];
10
+ getByModel(model: string | number): Vehicle[];
11
+ new(model: string | number, position: IVector3): Promise<Vehicle | null>;
7
12
  }
8
13
  //# sourceMappingURL=vehicle-pool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vehicle-pool.d.ts","sourceRoot":"","sources":["../../../src/client/managers/vehicle-pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,qBAAa,WAAY,SAAQ,UAAU,CAAC,OAAO,CAAC;IACnD,SAAS,CAAC,GAAG,IAAI,MAAM,EAAE;IAIzB,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAInC,EAAE,CAAC,MAAM,EAAE,MAAM;CAGjB"}
1
+ {"version":3,"file":"vehicle-pool.d.ts","sourceRoot":"","sources":["../../../src/client/managers/vehicle-pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAW,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,qBAAa,WAAY,SAAQ,UAAU,CAAC,OAAO,CAAC;IACnD,SAAS,CAAC,GAAG,IAAI,MAAM,EAAE;IAIzB,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAInC,EAAE,CAAC,MAAM,EAAE,MAAM;IAIjB,UAAU,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS;IAI7C,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,EAAE;IASnD,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE;IAKvC,GAAG,CACR,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,QAAQ,EAAE,QAAQ,GAChB,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;CAkB1B"}
@@ -1,3 +1,4 @@
1
+ import { Vector3 } from "../../shared";
1
2
  import { Vehicle } from "../entities/vehicle";
2
3
  import { ClientPool } from "./client-pool";
3
4
  export class VehiclePool extends ClientPool {
@@ -10,5 +11,25 @@ export class VehiclePool extends ClientPool {
10
11
  at(handle) {
11
12
  return new Vehicle(handle);
12
13
  }
14
+ getClosest(to) {
15
+ return this.getClosestBy(to, (v) => v.position);
16
+ }
17
+ getInRange(to, radius) {
18
+ const origin = Vector3.from(to);
19
+ const r2 = radius * radius;
20
+ return this.toArray().filter((v) => v.position.distanceToSquared(origin) <= r2);
21
+ }
22
+ getByModel(model) {
23
+ const hash = typeof model === "string" ? GetHashKey(model) : model;
24
+ return this.toArray().filter((v) => v.model === hash);
25
+ }
26
+ async new(model, position) {
27
+ const hash = typeof model === "string" ? GetHashKey(model) : model;
28
+ RequestModel(hash);
29
+ while (!HasModelLoaded(hash))
30
+ await new Promise((resolve) => setTimeout(resolve, 0));
31
+ const handle = CreateVehicle(hash, position.x, position.y, position.z, 0, false, false);
32
+ return handle !== 0 ? new Vehicle(handle) : null;
33
+ }
13
34
  }
14
35
  //# sourceMappingURL=vehicle-pool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vehicle-pool.js","sourceRoot":"","sources":["../../../src/client/managers/vehicle-pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,MAAM,OAAO,WAAY,SAAQ,UAAmB;IACzC,GAAG;QACZ,OAAO,WAAW,CAAC,UAAU,CAAa,CAAC;IAC5C,CAAC;IAES,IAAI,CAAC,EAAU;QACxB,OAAO,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC;IAED,EAAE,CAAC,MAAc;QAChB,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;CACD"}
1
+ {"version":3,"file":"vehicle-pool.js","sourceRoot":"","sources":["../../../src/client/managers/vehicle-pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,OAAO,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,MAAM,OAAO,WAAY,SAAQ,UAAmB;IACzC,GAAG;QACZ,OAAO,WAAW,CAAC,UAAU,CAAa,CAAC;IAC5C,CAAC;IAES,IAAI,CAAC,EAAU;QACxB,OAAO,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC;IAED,EAAE,CAAC,MAAc;QAChB,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,UAAU,CAAC,EAAY;QACtB,OAAO,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED,UAAU,CAAC,EAAY,EAAE,MAAc;QACtC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChC,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC;QAE3B,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAC3B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,CACjD,CAAC;IACH,CAAC;IAED,UAAU,CAAC,KAAsB;QAChC,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACnE,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,GAAG,CACR,KAAsB,EACtB,QAAkB;QAElB,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAEnE,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC;YAC3B,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAExD,MAAM,MAAM,GAAG,aAAa,CAC3B,IAAI,EACJ,QAAQ,CAAC,CAAC,EACV,QAAQ,CAAC,CAAC,EACV,QAAQ,CAAC,CAAC,EACV,CAAC,EACD,KAAK,EACL,KAAK,CACL,CAAC;QACF,OAAO,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClD,CAAC;CACD"}
@@ -1,6 +1,7 @@
1
1
  import { Vector3 } from "../shared";
2
2
  import { BlipManager } from "./blips";
3
3
  import { EventManager } from "./managers/event-manager";
4
+ import { ObjectPool } from "./managers/object-pool";
4
5
  import { PlayerPool } from "./managers/player-pool";
5
6
  import { VehiclePool } from "./managers/vehicle-pool";
6
7
  export declare class Core {
@@ -9,5 +10,6 @@ export declare class Core {
9
10
  readonly Vector3: typeof Vector3;
10
11
  readonly blips: BlipManager;
11
12
  readonly vehicles: VehiclePool;
13
+ readonly objects: ObjectPool;
12
14
  }
13
15
  //# sourceMappingURL=core.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/server/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,qBAAa,IAAI;IAChB,QAAQ,CAAC,MAAM,eAAsB;IACrC,QAAQ,CAAC,OAAO,aAAoB;IACpC,QAAQ,CAAC,OAAO,iBAAW;IAC3B,QAAQ,CAAC,KAAK,cAAqB;IAEnC,QAAQ,CAAC,QAAQ,cAAqB;CACtC"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/server/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,qBAAa,IAAI;IAChB,QAAQ,CAAC,MAAM,eAAsB;IACrC,QAAQ,CAAC,OAAO,aAAoB;IACpC,QAAQ,CAAC,OAAO,iBAAW;IAC3B,QAAQ,CAAC,KAAK,cAAqB;IAEnC,QAAQ,CAAC,QAAQ,cAAqB;IACtC,QAAQ,CAAC,OAAO,aAAoB;CACpC"}
@@ -1,6 +1,7 @@
1
1
  import { Vector3 } from "../shared";
2
2
  import { BlipManager } from "./blips";
3
3
  import { EventManager } from "./managers/event-manager";
4
+ import { ObjectPool } from "./managers/object-pool";
4
5
  import { PlayerPool } from "./managers/player-pool";
5
6
  import { VehiclePool } from "./managers/vehicle-pool";
6
7
  export class Core {
@@ -9,5 +10,6 @@ export class Core {
9
10
  Vector3 = Vector3;
10
11
  blips = new BlipManager();
11
12
  vehicles = new VehiclePool();
13
+ objects = new ObjectPool();
12
14
  }
13
15
  //# sourceMappingURL=core.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/server/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,MAAM,OAAO,IAAI;IACP,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;IAC5B,OAAO,GAAG,IAAI,UAAU,EAAE,CAAC;IAC3B,OAAO,GAAG,OAAO,CAAC;IAClB,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC;IAE1B,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;CACtC"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/server/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,MAAM,OAAO,IAAI;IACP,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;IAC5B,OAAO,GAAG,IAAI,UAAU,EAAE,CAAC;IAC3B,OAAO,GAAG,OAAO,CAAC;IAClB,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC;IAE1B,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;IAC7B,OAAO,GAAG,IAAI,UAAU,EAAE,CAAC;CACpC"}
@@ -1,4 +1,5 @@
1
1
  import { Entity } from "./entity";
2
2
  export declare class GameObject extends Entity {
3
+ get model(): number;
3
4
  }
4
5
  //# sourceMappingURL=object.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../../src/server/entities/object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,qBAAa,UAAW,SAAQ,MAAM;CAAG"}
1
+ {"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../../src/server/entities/object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,qBAAa,UAAW,SAAQ,MAAM;IACrC,IAAI,KAAK,WAER;CACD"}
@@ -1,4 +1,7 @@
1
1
  import { Entity } from "./entity";
2
2
  export class GameObject extends Entity {
3
+ get model() {
4
+ return GetEntityModel(this.handle);
5
+ }
3
6
  }
4
7
  //# sourceMappingURL=object.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"object.js","sourceRoot":"","sources":["../../../src/server/entities/object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,OAAO,UAAW,SAAQ,MAAM;CAAG"}
1
+ {"version":3,"file":"object.js","sourceRoot":"","sources":["../../../src/server/entities/object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,OAAO,UAAW,SAAQ,MAAM;IACrC,IAAI,KAAK;QACR,OAAO,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;CACD"}
@@ -1,5 +1,6 @@
1
1
  import { Entity } from "./entity";
2
2
  export declare class Ped extends Entity {
3
+ get model(): number;
3
4
  get armour(): number;
4
5
  }
5
6
  //# sourceMappingURL=ped.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ped.d.ts","sourceRoot":"","sources":["../../../src/server/entities/ped.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,qBAAa,GAAI,SAAQ,MAAM;IAC9B,IAAI,MAAM,IAAI,MAAM,CAEnB;CACD"}
1
+ {"version":3,"file":"ped.d.ts","sourceRoot":"","sources":["../../../src/server/entities/ped.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,qBAAa,GAAI,SAAQ,MAAM;IAC9B,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;CACD"}
@@ -1,5 +1,8 @@
1
1
  import { Entity } from "./entity";
2
2
  export class Ped extends Entity {
3
+ get model() {
4
+ return GetEntityModel(this.handle);
5
+ }
3
6
  get armour() {
4
7
  return GetPedArmour(this.handle);
5
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ped.js","sourceRoot":"","sources":["../../../src/server/entities/ped.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,OAAO,GAAI,SAAQ,MAAM;IAC9B,IAAI,MAAM;QACT,OAAO,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;CACD"}
1
+ {"version":3,"file":"ped.js","sourceRoot":"","sources":["../../../src/server/entities/ped.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,OAAO,GAAI,SAAQ,MAAM;IAC9B,IAAI,KAAK;QACR,OAAO,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,MAAM;QACT,OAAO,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;CACD"}
@@ -1,18 +1,33 @@
1
1
  import { Entity } from "./entity";
2
2
  export declare class Vehicle extends Entity {
3
3
  get driver(): number;
4
+ getPedInSeat(seat: number): number;
4
5
  get bodyHealth(): number;
5
6
  set bodyHealth(v: number);
6
7
  get engineHealth(): number;
7
8
  get tankHealth(): number;
8
9
  get numberPlate(): string;
9
10
  set numberPlate(text: string);
11
+ get vehicleType(): string;
12
+ get totalRepairs(): number;
10
13
  get livery(): number;
11
14
  get dirtLevel(): number;
12
15
  set dirtLevel(v: number);
16
+ get windowTint(): number;
17
+ get model(): number;
18
+ get colours(): [number, number];
13
19
  setColours(primary: number, secondary: number): void;
20
+ get customPrimaryColour(): [number, number, number];
21
+ setCustomPrimaryColour(r: number, g: number, b: number): void;
22
+ get customSecondaryColour(): [number, number, number];
23
+ setCustomSecondaryColour(r: number, g: number, b: number): void;
24
+ get extraColours(): [number, number];
14
25
  get engineRunning(): boolean;
26
+ get handbrake(): boolean;
27
+ get locked(): boolean;
15
28
  setDoorsLocked(locked: boolean): void;
29
+ setDoorBroken(doorIndex: number, deleteDoor?: boolean): void;
16
30
  setAlarm(active: boolean): void;
31
+ get owner(): number;
17
32
  }
18
33
  //# sourceMappingURL=vehicle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vehicle.d.ts","sourceRoot":"","sources":["../../../src/server/entities/vehicle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,qBAAa,OAAQ,SAAQ,MAAM;IAClC,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,UAAU,CAAC,CAAC,EAAE,MAAM,EAEvB;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,WAAW,CAAC,IAAI,EAAE,MAAM,EAE3B;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,SAAS,CAAC,CAAC,EAAE,MAAM,EAEtB;IAED,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAIpD,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAIrC,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;CAG/B"}
1
+ {"version":3,"file":"vehicle.d.ts","sourceRoot":"","sources":["../../../src/server/entities/vehicle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,qBAAa,OAAQ,SAAQ,MAAM;IAClC,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAIlC,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,UAAU,CAAC,CAAC,EAAE,MAAM,EAEvB;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,WAAW,CAAC,IAAI,EAAE,MAAM,EAE3B;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,SAAS,CAAC,CAAC,EAAE,MAAM,EAEtB;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,KAAK,WAER;IAED,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAE9B;IAED,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAIpD,IAAI,mBAAmB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAMlD;IAED,sBAAsB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAI7D,IAAI,qBAAqB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAMpD;IAED,wBAAwB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAI/D,IAAI,YAAY,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAEnC;IAED,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAIrC,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,UAAQ,GAAG,IAAI;IAI1D,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAI/B,IAAI,KAAK,IAAI,MAAM,CAElB;CACD"}
@@ -1,7 +1,11 @@
1
+ /// <reference types="@citizenfx/server" />
1
2
  import { Entity } from "./entity";
2
3
  export class Vehicle extends Entity {
3
4
  get driver() {
4
- return GetVehiclePedIsIn(this.handle, false);
5
+ return GetPedInVehicleSeat(this.handle, -1);
6
+ }
7
+ getPedInSeat(seat) {
8
+ return GetPedInVehicleSeat(this.handle, seat);
5
9
  }
6
10
  get bodyHealth() {
7
11
  return GetVehicleBodyHealth(this.handle);
@@ -21,6 +25,12 @@ export class Vehicle extends Entity {
21
25
  set numberPlate(text) {
22
26
  SetVehicleNumberPlateText(this.handle, text);
23
27
  }
28
+ get vehicleType() {
29
+ return GetVehicleType(this.handle);
30
+ }
31
+ get totalRepairs() {
32
+ return GetVehicleTotalRepairs(this.handle);
33
+ }
24
34
  get livery() {
25
35
  return GetVehicleLivery(this.handle);
26
36
  }
@@ -30,17 +40,53 @@ export class Vehicle extends Entity {
30
40
  set dirtLevel(v) {
31
41
  SetVehicleDirtLevel(this.handle, v);
32
42
  }
43
+ get windowTint() {
44
+ return GetVehicleWindowTint(this.handle);
45
+ }
46
+ get model() {
47
+ return GetEntityModel(this.handle);
48
+ }
49
+ get colours() {
50
+ return GetVehicleColours(this.handle);
51
+ }
33
52
  setColours(primary, secondary) {
34
53
  SetVehicleColours(this.handle, primary, secondary);
35
54
  }
55
+ get customPrimaryColour() {
56
+ return GetVehicleCustomPrimaryColour(this.handle);
57
+ }
58
+ setCustomPrimaryColour(r, g, b) {
59
+ SetVehicleCustomPrimaryColour(this.handle, r, g, b);
60
+ }
61
+ get customSecondaryColour() {
62
+ return GetVehicleCustomSecondaryColour(this.handle);
63
+ }
64
+ setCustomSecondaryColour(r, g, b) {
65
+ SetVehicleCustomSecondaryColour(this.handle, r, g, b);
66
+ }
67
+ get extraColours() {
68
+ return GetVehicleExtraColours(this.handle);
69
+ }
36
70
  get engineRunning() {
37
71
  return GetIsVehicleEngineRunning(this.handle);
38
72
  }
73
+ get handbrake() {
74
+ return GetVehicleHandbrake(this.handle);
75
+ }
76
+ get locked() {
77
+ return GetVehicleDoorLockStatus(this.handle) === 2;
78
+ }
39
79
  setDoorsLocked(locked) {
40
80
  SetVehicleDoorsLocked(this.handle, locked ? 2 : 1);
41
81
  }
82
+ setDoorBroken(doorIndex, deleteDoor = false) {
83
+ SetVehicleDoorBroken(this.handle, doorIndex, deleteDoor);
84
+ }
42
85
  setAlarm(active) {
43
86
  SetVehicleAlarm(this.handle, active);
44
87
  }
88
+ get owner() {
89
+ return NetworkGetEntityOwner(this.handle);
90
+ }
45
91
  }
46
92
  //# sourceMappingURL=vehicle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vehicle.js","sourceRoot":"","sources":["../../../src/server/entities/vehicle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,OAAO,OAAQ,SAAQ,MAAM;IAClC,IAAI,MAAM;QACT,OAAO,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,UAAU;QACb,OAAO,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,UAAU,CAAC,CAAS;QACvB,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,YAAY;QACf,OAAO,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,UAAU;QACb,OAAO,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,WAAW;QACd,OAAO,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,WAAW,CAAC,IAAY;QAC3B,yBAAyB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,MAAM;QACT,OAAO,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,SAAS;QACZ,OAAO,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,SAAS,CAAC,CAAS;QACtB,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,UAAU,CAAC,OAAe,EAAE,SAAiB;QAC5C,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,cAAc,CAAC,MAAe;QAC7B,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,QAAQ,CAAC,MAAe;QACvB,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC;CACD"}
1
+ {"version":3,"file":"vehicle.js","sourceRoot":"","sources":["../../../src/server/entities/vehicle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { type IVector3 } from "../../shared";
2
+ import { GameObject } from "../entities/object";
3
+ import { ServerPool } from "./server-pool";
4
+ export declare class ObjectPool extends ServerPool<GameObject> {
5
+ protected ids(): number[];
6
+ protected wrap(id: number): GameObject;
7
+ at(handle: number): GameObject;
8
+ getClosest(to: IVector3): GameObject | undefined;
9
+ getInRange(to: IVector3, radius: number): GameObject[];
10
+ getByModel(model: string | number): GameObject[];
11
+ new(model: string | number, position: IVector3, isNetwork?: boolean, netMissionEntity?: boolean, doorFlag?: boolean): GameObject | undefined;
12
+ }
13
+ //# sourceMappingURL=object-pool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object-pool.d.ts","sourceRoot":"","sources":["../../../src/server/managers/object-pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAW,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,qBAAa,UAAW,SAAQ,UAAU,CAAC,UAAU,CAAC;IACrD,SAAS,CAAC,GAAG,IAAI,MAAM,EAAE;IAIzB,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU;IAItC,EAAE,CAAC,MAAM,EAAE,MAAM;IAIjB,UAAU,CAAC,EAAE,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS;IAIhD,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,EAAE;IAStD,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,EAAE;IAKhD,GAAG,CACF,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,QAAQ,EAAE,QAAQ,EAClB,SAAS,GAAE,OAAc,EACzB,gBAAgB,GAAE,OAAc,EAChC,QAAQ,GAAE,OAAc,GACtB,UAAU,GAAG,SAAS;CAczB"}
@@ -0,0 +1,32 @@
1
+ import { Vector3 } from "../../shared";
2
+ import { GameObject } from "../entities/object";
3
+ import { ServerPool } from "./server-pool";
4
+ export class ObjectPool extends ServerPool {
5
+ ids() {
6
+ return GetAllObjects();
7
+ }
8
+ wrap(id) {
9
+ return new GameObject(id);
10
+ }
11
+ at(handle) {
12
+ return new GameObject(handle);
13
+ }
14
+ getClosest(to) {
15
+ return this.getClosestBy(to, (p) => p.position);
16
+ }
17
+ getInRange(to, radius) {
18
+ const origin = Vector3.from(to);
19
+ const r2 = radius * radius;
20
+ return this.toArray().filter((v) => v.position.distanceToSquared(origin) <= r2);
21
+ }
22
+ getByModel(model) {
23
+ const hash = typeof model === "string" ? GetHashKey(model) : model;
24
+ return this.toArray().filter((v) => v.model === hash);
25
+ }
26
+ new(model, position, isNetwork = true, netMissionEntity = true, doorFlag = true) {
27
+ const hash = typeof model === "string" ? GetHashKey(model) : model;
28
+ const handle = CreateObject(hash, position.x, position.y, position.z, isNetwork, netMissionEntity, doorFlag);
29
+ return handle !== 0 ? new GameObject(handle) : undefined;
30
+ }
31
+ }
32
+ //# sourceMappingURL=object-pool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object-pool.js","sourceRoot":"","sources":["../../../src/server/managers/object-pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,OAAO,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,MAAM,OAAO,UAAW,SAAQ,UAAsB;IAC3C,GAAG;QACZ,OAAO,aAAa,EAAc,CAAC;IACpC,CAAC;IAES,IAAI,CAAC,EAAU;QACxB,OAAO,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,EAAE,CAAC,MAAc;QAChB,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,UAAU,CAAC,EAAY;QACtB,OAAO,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED,UAAU,CAAC,EAAY,EAAE,MAAc;QACtC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChC,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC;QAE3B,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAC3B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,CACjD,CAAC;IACH,CAAC;IAED,UAAU,CAAC,KAAsB;QAChC,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACnE,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,GAAG,CACF,KAAsB,EACtB,QAAkB,EAClB,YAAqB,IAAI,EACzB,mBAA4B,IAAI,EAChC,WAAoB,IAAI;QAExB,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACnE,MAAM,MAAM,GAAG,YAAY,CAC1B,IAAI,EACJ,QAAQ,CAAC,CAAC,EACV,QAAQ,CAAC,CAAC,EACV,QAAQ,CAAC,CAAC,EACV,SAAS,EACT,gBAAgB,EAChB,QAAQ,CACR,CAAC;QAEF,OAAO,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1D,CAAC;CACD"}
@@ -0,0 +1,13 @@
1
+ import { type IVector3 } from "../../shared";
2
+ import { Ped } from "../entities/ped";
3
+ import { ServerPool } from "./server-pool";
4
+ export declare class PedPool extends ServerPool<Ped> {
5
+ protected ids(): number[];
6
+ protected wrap(id: number): Ped;
7
+ at(handle: number): Ped;
8
+ getClosest(to: IVector3): Ped | undefined;
9
+ getInRange(to: IVector3, radius: number): Ped[];
10
+ getByModel(model: string | number): Ped[];
11
+ new(model: string | number, position: IVector3, heading: number, isNetwork?: boolean, bScriptHostPed?: boolean): Ped | undefined;
12
+ }
13
+ //# sourceMappingURL=ped-pool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ped-pool.d.ts","sourceRoot":"","sources":["../../../src/server/managers/ped-pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAW,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,qBAAa,OAAQ,SAAQ,UAAU,CAAC,GAAG,CAAC;IAC3C,SAAS,CAAC,GAAG,IAAI,MAAM,EAAE;IAIzB,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,GAAG;IAI/B,EAAE,CAAC,MAAM,EAAE,MAAM;IAIjB,UAAU,CAAC,EAAE,EAAE,QAAQ,GAAG,GAAG,GAAG,SAAS;IAIzC,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,GAAG,EAAE;IAS/C,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,GAAG,EAAE;IAKzC,GAAG,CACF,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,OAAc,EACzB,cAAc,GAAE,OAAc;CAe/B"}
@@ -0,0 +1,32 @@
1
+ import { Vector3 } from "../../shared";
2
+ import { Ped } from "../entities/ped";
3
+ import { ServerPool } from "./server-pool";
4
+ export class PedPool extends ServerPool {
5
+ ids() {
6
+ return GetAllPeds();
7
+ }
8
+ wrap(id) {
9
+ return new Ped(id);
10
+ }
11
+ at(handle) {
12
+ return new Ped(handle);
13
+ }
14
+ getClosest(to) {
15
+ return this.getClosestBy(to, (p) => p.position);
16
+ }
17
+ getInRange(to, radius) {
18
+ const origin = Vector3.from(to);
19
+ const r2 = radius * radius;
20
+ return this.toArray().filter((v) => v.position.distanceToSquared(origin) <= r2);
21
+ }
22
+ getByModel(model) {
23
+ const hash = typeof model === "string" ? GetHashKey(model) : model;
24
+ return this.toArray().filter((v) => v.model === hash);
25
+ }
26
+ new(model, position, heading, isNetwork = true, bScriptHostPed = true) {
27
+ const hash = typeof model === "string" ? GetHashKey(model) : model;
28
+ const handle = CreatePed(0, hash, position.x, position.y, position.z, heading, isNetwork, bScriptHostPed);
29
+ return handle !== 0 ? new Ped(handle) : undefined;
30
+ }
31
+ }
32
+ //# sourceMappingURL=ped-pool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ped-pool.js","sourceRoot":"","sources":["../../../src/server/managers/ped-pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,OAAO,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,MAAM,OAAO,OAAQ,SAAQ,UAAe;IACjC,GAAG;QACZ,OAAO,UAAU,EAAc,CAAC;IACjC,CAAC;IAES,IAAI,CAAC,EAAU;QACxB,OAAO,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;IAED,EAAE,CAAC,MAAc;QAChB,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAED,UAAU,CAAC,EAAY;QACtB,OAAO,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED,UAAU,CAAC,EAAY,EAAE,MAAc;QACtC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChC,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC;QAE3B,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAC3B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,CACjD,CAAC;IACH,CAAC;IAED,UAAU,CAAC,KAAsB;QAChC,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACnE,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,GAAG,CACF,KAAsB,EACtB,QAAkB,EAClB,OAAe,EACf,YAAqB,IAAI,EACzB,iBAA0B,IAAI;QAE9B,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACnE,MAAM,MAAM,GAAG,SAAS,CACvB,CAAC,EACD,IAAI,EACJ,QAAQ,CAAC,CAAC,EACV,QAAQ,CAAC,CAAC,EACV,QAAQ,CAAC,CAAC,EACV,OAAO,EACP,SAAS,EACT,cAAc,CACd,CAAC;QACF,OAAO,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnD,CAAC;CACD"}
@@ -1,8 +1,13 @@
1
+ import { type IVector3 } from "../../shared";
1
2
  import { Vehicle } from "../entities/vehicle";
2
3
  import { ServerPool } from "./server-pool";
3
4
  export declare class VehiclePool extends ServerPool<Vehicle> {
4
5
  protected ids(): number[];
5
6
  protected wrap(id: number): Vehicle;
6
7
  at(handle: number): Vehicle;
8
+ getClosest(to: IVector3): Vehicle | undefined;
9
+ getInRange(to: IVector3, radius: number): Vehicle[];
10
+ getByModel(model: string | number): Vehicle[];
11
+ new(hash: number | string, position: IVector3, heading: number, isNetwork?: boolean, netMissionEntity?: boolean): Vehicle | null;
7
12
  }
8
13
  //# sourceMappingURL=vehicle-pool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vehicle-pool.d.ts","sourceRoot":"","sources":["../../../src/server/managers/vehicle-pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,qBAAa,WAAY,SAAQ,UAAU,CAAC,OAAO,CAAC;IACnD,SAAS,CAAC,GAAG,IAAI,MAAM,EAAE;IAIzB,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAInC,EAAE,CAAC,MAAM,EAAE,MAAM;CAGjB"}
1
+ {"version":3,"file":"vehicle-pool.d.ts","sourceRoot":"","sources":["../../../src/server/managers/vehicle-pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAW,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,qBAAa,WAAY,SAAQ,UAAU,CAAC,OAAO,CAAC;IACnD,SAAS,CAAC,GAAG,IAAI,MAAM,EAAE;IAIzB,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAInC,EAAE,CAAC,MAAM,EAAE,MAAM;IAIjB,UAAU,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS;IAI7C,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,EAAE;IASnD,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE;IAK7C,GAAG,CACF,IAAI,EAAE,MAAM,GAAG,MAAM,EACrB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,OAAc,EACzB,gBAAgB,GAAE,OAAc,GAC9B,OAAO,GAAG,IAAI;CAcjB"}
@@ -1,3 +1,4 @@
1
+ import { Vector3 } from "../../shared";
1
2
  import { Vehicle } from "../entities/vehicle";
2
3
  import { ServerPool } from "./server-pool";
3
4
  export class VehiclePool extends ServerPool {
@@ -10,5 +11,22 @@ export class VehiclePool extends ServerPool {
10
11
  at(handle) {
11
12
  return new Vehicle(handle);
12
13
  }
14
+ getClosest(to) {
15
+ return this.getClosestBy(to, (v) => v.position);
16
+ }
17
+ getInRange(to, radius) {
18
+ const origin = Vector3.from(to);
19
+ const r2 = radius * radius;
20
+ return this.toArray().filter((v) => v.position.distanceToSquared(origin) <= r2);
21
+ }
22
+ getByModel(model) {
23
+ const hash = typeof model === "string" ? GetHashKey(model) : model;
24
+ return this.toArray().filter((v) => v.model === hash);
25
+ }
26
+ new(hash, position, heading, isNetwork = true, netMissionEntity = true) {
27
+ const _hash = typeof hash === "string" ? GetHashKey(hash) : hash;
28
+ const handle = CreateVehicle(_hash, position.x, position.y, position.z, heading, isNetwork, netMissionEntity);
29
+ return handle !== 0 ? new Vehicle(handle) : null;
30
+ }
13
31
  }
14
32
  //# sourceMappingURL=vehicle-pool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vehicle-pool.js","sourceRoot":"","sources":["../../../src/server/managers/vehicle-pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,MAAM,OAAO,WAAY,SAAQ,UAAmB;IACzC,GAAG;QACZ,OAAO,cAAc,EAAc,CAAC;IACrC,CAAC;IAES,IAAI,CAAC,EAAU;QACxB,OAAO,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC;IAED,EAAE,CAAC,MAAc;QAChB,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;CACD"}
1
+ {"version":3,"file":"vehicle-pool.js","sourceRoot":"","sources":["../../../src/server/managers/vehicle-pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,OAAO,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,MAAM,OAAO,WAAY,SAAQ,UAAmB;IACzC,GAAG;QACZ,OAAO,cAAc,EAAc,CAAC;IACrC,CAAC;IAES,IAAI,CAAC,EAAU;QACxB,OAAO,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC;IAED,EAAE,CAAC,MAAc;QAChB,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,UAAU,CAAC,EAAY;QACtB,OAAO,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED,UAAU,CAAC,EAAY,EAAE,MAAc;QACtC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChC,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC;QAE3B,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAC3B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,CACjD,CAAC;IACH,CAAC;IAED,UAAU,CAAC,KAAsB;QAChC,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACnE,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,GAAG,CACF,IAAqB,EACrB,QAAkB,EAClB,OAAe,EACf,YAAqB,IAAI,EACzB,mBAA4B,IAAI;QAEhC,MAAM,KAAK,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACjE,MAAM,MAAM,GAAG,aAAa,CAC3B,KAAK,EACL,QAAQ,CAAC,CAAC,EACV,QAAQ,CAAC,CAAC,EACV,QAAQ,CAAC,CAAC,EACV,OAAO,EACP,SAAS,EACT,gBAAgB,CAChB,CAAC;QAEF,OAAO,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClD,CAAC;CACD"}
@@ -1,3 +1,4 @@
1
+ import { type IVector3, Vector3 } from "./math/vector3";
1
2
  export declare abstract class Pool<T> {
2
3
  protected abstract ids(): number[];
3
4
  protected abstract wrap(id: number): T;
@@ -7,5 +8,6 @@ export declare abstract class Pool<T> {
7
8
  map<R>(fn: (item: T) => R): R[];
8
9
  filter(fn: (item: T) => boolean): T[];
9
10
  find(fn: (item: T) => boolean): T | undefined;
11
+ getClosestBy(to: IVector3, getPos: (item: T) => Vector3): T | undefined;
10
12
  }
11
13
  //# sourceMappingURL=pool-base.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pool-base.d.ts","sourceRoot":"","sources":["../../src/shared/pool-base.ts"],"names":[],"mappings":"AAAA,8BAAsB,IAAI,CAAC,CAAC;IAC3B,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,MAAM,EAAE;IAElC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC;IAEtC,OAAO,IAAI,CAAC,EAAE;IAId,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,OAAO,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,IAAI;IAIpC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;IAI/B,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,GAAG,CAAC,EAAE;IAIrC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,GAAG,CAAC,GAAG,SAAS;CAO7C"}
1
+ {"version":3,"file":"pool-base.d.ts","sourceRoot":"","sources":["../../src/shared/pool-base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAExD,8BAAsB,IAAI,CAAC,CAAC;IAC3B,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,MAAM,EAAE;IAElC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC;IAEtC,OAAO,IAAI,CAAC,EAAE;IAId,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,OAAO,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,IAAI;IAIpC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;IAI/B,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,GAAG,CAAC,EAAE;IAIrC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,GAAG,CAAC,GAAG,SAAS;IAQ7C,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,GAAG,CAAC,GAAG,SAAS;CAgBvE"}
@@ -1,3 +1,4 @@
1
+ import { Vector3 } from "./math/vector3";
1
2
  export class Pool {
2
3
  toArray() {
3
4
  return this.ids().map(this.wrap);
@@ -23,5 +24,19 @@ export class Pool {
23
24
  }
24
25
  return undefined;
25
26
  }
27
+ getClosestBy(to, getPos) {
28
+ const origin = Vector3.from(to);
29
+ let best;
30
+ let bestDistance = Infinity;
31
+ for (const id of this.ids()) {
32
+ const item = this.wrap(id);
33
+ const distance = getPos(item).distanceToSquared(origin);
34
+ if (distance < bestDistance) {
35
+ bestDistance = distance;
36
+ best = item;
37
+ }
38
+ }
39
+ return best;
40
+ }
26
41
  }
27
42
  //# sourceMappingURL=pool-base.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pool-base.js","sourceRoot":"","sources":["../../src/shared/pool-base.ts"],"names":[],"mappings":"AAAA,MAAM,OAAgB,IAAI;IAKzB,OAAO;QACN,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED,OAAO,CAAC,EAAqB;QAC5B,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE;YAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,GAAG,CAAI,EAAkB;QACxB,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,EAAwB;QAC9B,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,CAAC,EAAwB;QAC5B,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC3B,IAAI,EAAE,CAAC,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC;QAC3B,CAAC;QACD,OAAO,SAAS,CAAC;IAClB,CAAC;CACD"}
1
+ {"version":3,"file":"pool-base.js","sourceRoot":"","sources":["../../src/shared/pool-base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAExD,MAAM,OAAgB,IAAI;IAKzB,OAAO;QACN,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED,OAAO,CAAC,EAAqB;QAC5B,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE;YAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,GAAG,CAAI,EAAkB;QACxB,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,EAAwB;QAC9B,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,CAAC,EAAwB;QAC5B,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC3B,IAAI,EAAE,CAAC,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC;QAC3B,CAAC;QACD,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,YAAY,CAAC,EAAY,EAAE,MAA4B;QACtD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChC,IAAI,IAAmB,CAAC;QACxB,IAAI,YAAY,GAAG,QAAQ,CAAC;QAE5B,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC3B,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YACxD,IAAI,QAAQ,GAAG,YAAY,EAAE,CAAC;gBAC7B,YAAY,GAAG,QAAQ,CAAC;gBACxB,IAAI,GAAG,IAAI,CAAC;YACb,CAAC;QACF,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;CACD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@panda0day/fivex",
3
- "version": "0.2.1",
3
+ "version": "0.3.0",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"