rock-mod 0.19.0 → 0.20.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.
@@ -16,4 +16,9 @@ export interface IPed extends IEntity {
16
16
  setPropertyVariation(componentId: number, drawableId: number, textureId: number, attach: boolean): void;
17
17
  clearProp(componentId: number): void;
18
18
  getBoneCoords(boneId: number, offsetX: number, offsetY: number, offsetZ: number): IVector3D;
19
+ clearTasks(): void;
20
+ taskPlayAnim(dictionary: string, name: string, blendInSpeed: number, blendOutSpeed: number, duration: number, flag: number, playbackRate: number): void;
21
+ taskGoToCoordAnyMeans(x: number, y: number, z: number, speed: number, walkingStyle?: number, drivingFlags?: number): void;
22
+ stopAnim(dictionary: string, name: string, blendOutSpeed: number): void;
23
+ setBlockingOfNonTemporaryEvents(blocking: boolean): void;
19
24
  }
@@ -41,4 +41,5 @@ export interface IPlayer extends IEntity {
41
41
  setMovementClipset(clipset: string, speed: number): void;
42
42
  resetMovementClipset(blendDuration: number): void;
43
43
  getBoneCoords(boneId: number, offsetX: number, offsetY: number, offsetZ: number): IVector3D;
44
+ setNoCollision(otherHandle: number, thisFrameOnly: boolean): void;
44
45
  }
@@ -48,4 +48,15 @@ export interface IVehicle extends IEntity {
48
48
  setEngineTorqueMultiplier(value: number): void;
49
49
  modifyTopSpeed(value: number): void;
50
50
  setCheatPowerIncrease(value: number): void;
51
+ toggleMod(modType: number, toggle: boolean): void;
52
+ setTyreSmokeColor(r: number, g: number, b: number): void;
53
+ setModColor1(paintType: number, color: number, p3: number): void;
54
+ setExtraColours(pearlescentColor: number, wheelColor: number): void;
55
+ setHeadlightColor(colorIndex: number): void;
56
+ setDashboardColor(colorIndex: number): void;
57
+ setInteriorColor(colorIndex: number): void;
58
+ getMaxBraking(): number;
59
+ getAcceleration(): number;
60
+ getMaxTraction(): number;
61
+ getModelMaxSpeed(): number;
51
62
  }
@@ -28,10 +28,13 @@ export class RageEntity extends RageWorldObject {
28
28
  return new Vector3D(vector.x, vector.y, vector.z);
29
29
  }
30
30
  freezePosition(freeze) {
31
- this.mpEntity.freezePosition(freeze);
31
+ // FREEZE_ENTITY_POSITION via raw native: the RAGEMP wrapper does not consistently
32
+ // toggle the engine-level freeze for client-spawned entities, leaving them frozen.
33
+ mp.game.invoke("0x428CA6DBD1094446", this.handle, freeze);
32
34
  }
33
35
  setCollision(collision, keepPhysics) {
34
- this.mpEntity.setCollision(collision, keepPhysics);
36
+ // SET_ENTITY_COLLISION via raw native for the same reason as freezePosition above.
37
+ mp.game.invoke("0x1A9205C1B9EE827F", this.handle, collision, keepPhysics);
35
38
  }
36
39
  setInvincible(invincible) {
37
40
  this.mpEntity.setInvincible(invincible);
@@ -18,4 +18,9 @@ export declare class RagePed extends RageEntity<PedMp> implements IPed {
18
18
  setPropertyVariation(componentId: number, drawableId: number, textureId: number, attach: boolean): void;
19
19
  clearProp(componentId: number): void;
20
20
  getBoneCoords(boneId: number, offsetX: number, offsetY: number, offsetZ: number): IVector3D;
21
+ clearTasks(): void;
22
+ taskPlayAnim(dictionary: string, name: string, blendInSpeed: number, blendOutSpeed: number, duration: number, flag: number, playbackRate: number): void;
23
+ stopAnim(dictionary: string, name: string, blendOutSpeed: number): void;
24
+ taskGoToCoordAnyMeans(x: number, y: number, z: number, speed: number, walkingStyle?: number, drivingFlags?: number): void;
25
+ setBlockingOfNonTemporaryEvents(blocking: boolean): void;
21
26
  }
@@ -49,4 +49,20 @@ export class RagePed extends RageEntity {
49
49
  const { x, y, z } = this.mpEntity.getBoneCoords(boneId, offsetX, offsetY, offsetZ);
50
50
  return new Vector3D(x, y, z);
51
51
  }
52
+ clearTasks() {
53
+ this.mpEntity.clearTasks();
54
+ }
55
+ taskPlayAnim(dictionary, name, blendInSpeed, blendOutSpeed, duration, flag, playbackRate) {
56
+ this.mpEntity.taskPlayAnim(dictionary, name, blendInSpeed, blendOutSpeed, duration, flag, playbackRate, false, false, false);
57
+ }
58
+ stopAnim(dictionary, name, blendOutSpeed) {
59
+ mp.game.task.stopAnimTask(this.handle, dictionary, name, blendOutSpeed);
60
+ }
61
+ taskGoToCoordAnyMeans(x, y, z, speed, walkingStyle = 786603, drivingFlags = 0xbf800000) {
62
+ mp.game.task.goToCoordAnyMeans(this.handle, x, y, z, speed, 0, false, walkingStyle, drivingFlags);
63
+ }
64
+ setBlockingOfNonTemporaryEvents(blocking) {
65
+ // BLOCKING_OF_NON_TEMPORARY_EVENTS — no RAGEMP wrapper, invoke native by hash
66
+ mp.game.invoke("0x9F8AA94D6D97DBF4", this.handle, blocking);
67
+ }
52
68
  }
@@ -43,5 +43,6 @@ export declare class RagePlayer extends RageEntity<PlayerMp> implements IPlayer
43
43
  taskPlayAnim(dictionary: string, name: string, blendInSpeed: number, blendOutSpeed: number, duration: number, flag: number, playbackRate: number, lockX: boolean, lockY: boolean, lockZ: boolean): void;
44
44
  taskSwapWeapon(): void;
45
45
  getBoneCoords(boneId: number, offsetX: number, offsetY: number, offsetZ: number): IVector3D;
46
+ setNoCollision(otherHandle: number, thisFrameOnly: boolean): void;
46
47
  }
47
48
  export {};
@@ -126,4 +126,7 @@ export class RagePlayer extends RageEntity {
126
126
  const { x, y, z } = this.mpEntity.getBoneCoords(boneId, offsetX, offsetY, offsetZ);
127
127
  return new Vector3D(x, y, z);
128
128
  }
129
+ setNoCollision(otherHandle, thisFrameOnly) {
130
+ this.mpEntity.setNoCollision(otherHandle, thisFrameOnly);
131
+ }
129
132
  }
@@ -46,4 +46,15 @@ export declare class RageVehicle extends RageEntity<VehicleMp> implements IVehic
46
46
  setEngineTorqueMultiplier(value: number): void;
47
47
  modifyTopSpeed(value: number): void;
48
48
  setCheatPowerIncrease(value: number): void;
49
+ toggleMod(modType: number, toggle: boolean): void;
50
+ setTyreSmokeColor(r: number, g: number, b: number): void;
51
+ setModColor1(paintType: number, color: number, p3: number): void;
52
+ setExtraColours(pearlescentColor: number, wheelColor: number): void;
53
+ setHeadlightColor(colorIndex: number): void;
54
+ setDashboardColor(colorIndex: number): void;
55
+ setInteriorColor(colorIndex: number): void;
56
+ getMaxBraking(): number;
57
+ getAcceleration(): number;
58
+ getMaxTraction(): number;
59
+ getModelMaxSpeed(): number;
49
60
  }
@@ -129,4 +129,40 @@ export class RageVehicle extends RageEntity {
129
129
  setCheatPowerIncrease(value) {
130
130
  mp.game.vehicle.setCheatPowerIncrease(this.handle, value);
131
131
  }
132
+ toggleMod(modType, toggle) {
133
+ this.mpEntity.toggleMod(modType, toggle);
134
+ }
135
+ setTyreSmokeColor(r, g, b) {
136
+ this.mpEntity.setTyreSmokeColor(r, g, b);
137
+ }
138
+ setModColor1(paintType, color, p3) {
139
+ this.mpEntity.setModColor1(paintType, color, p3);
140
+ }
141
+ setExtraColours(pearlescentColor, wheelColor) {
142
+ this.mpEntity.setExtraColours(pearlescentColor, wheelColor);
143
+ }
144
+ setHeadlightColor(colorIndex) {
145
+ // _SET_VEHICLE_HEADLIGHT_COLOUR — no RAGEMP wrapper, invoke native by hash
146
+ mp.game.invoke("0xE41033B25D003A07", this.handle, colorIndex);
147
+ }
148
+ setDashboardColor(colorIndex) {
149
+ // SET_VEHICLE_DASHBOARD_COLOUR — no RAGEMP wrapper, invoke native by hash
150
+ mp.game.invoke("0x6089CDF6A57F326C", this.handle, colorIndex);
151
+ }
152
+ setInteriorColor(colorIndex) {
153
+ // SET_VEHICLE_INTERIOR_COLOUR — no RAGEMP wrapper, invoke native by hash
154
+ mp.game.invoke("0xF40DD601A65F7F19", this.handle, colorIndex);
155
+ }
156
+ getMaxBraking() {
157
+ return this.mpEntity.getMaxBraking();
158
+ }
159
+ getAcceleration() {
160
+ return this.mpEntity.getAcceleration();
161
+ }
162
+ getMaxTraction() {
163
+ return this.mpEntity.getMaxTraction();
164
+ }
165
+ getModelMaxSpeed() {
166
+ return mp.game.vehicle.getVehicleModelMaxSpeed(this.mpEntity.model);
167
+ }
132
168
  }
@@ -11,4 +11,6 @@ export interface IGraphicsManager {
11
11
  world3dToScreen2d(position: IVector3D): IVector2D | null;
12
12
  startScreenEffect(effectName: string, duration: number, looped: boolean): void;
13
13
  stopScreenEffect(effectName: string): void;
14
+ getSafeZoneSize(): number;
15
+ getActiveScreenResolution(): IVector2D;
14
16
  }
@@ -4,6 +4,8 @@ export interface IStreamingManager {
4
4
  hasAnimationDictionaryLoaded(dictionary: string): boolean;
5
5
  removeAnimationDictionary(dictionary: string): void;
6
6
  isModelInCdimage(model: string): boolean;
7
+ requestModel(modelHash: number): void;
8
+ hasModelLoaded(modelHash: number): boolean;
7
9
  requestIpl(iplName: string): void;
8
10
  removeIpl(iplName: string): void;
9
11
  setFocusArea(position: IVector3D, offset: IVector3D): void;
@@ -5,4 +5,6 @@ export declare class RageGraphicsManager implements IGraphicsManager {
5
5
  world3dToScreen2d(position: IVector3D): IVector2D | null;
6
6
  startScreenEffect(effectName: string, duration: number, looped: boolean): void;
7
7
  stopScreenEffect(effectName: string): void;
8
+ getSafeZoneSize(): number;
9
+ getActiveScreenResolution(): IVector2D;
8
10
  }
@@ -27,4 +27,11 @@ export class RageGraphicsManager {
27
27
  stopScreenEffect(effectName) {
28
28
  mp.game.graphics.stopScreenEffect(effectName);
29
29
  }
30
+ getSafeZoneSize() {
31
+ return mp.game.graphics.getSafeZoneSize();
32
+ }
33
+ getActiveScreenResolution() {
34
+ const result = mp.game.graphics.getActiveScreenResolution();
35
+ return new Vector2D(result.x, result.y);
36
+ }
30
37
  }
@@ -5,6 +5,8 @@ export declare class RageStreamingManager implements IStreamingManager {
5
5
  hasAnimationDictionaryLoaded(dictionary: string): boolean;
6
6
  removeAnimationDictionary(dictionary: string): void;
7
7
  isModelInCdimage(model: string): boolean;
8
+ requestModel(modelHash: number): void;
9
+ hasModelLoaded(modelHash: number): boolean;
8
10
  requestIpl(iplName: string): void;
9
11
  removeIpl(iplName: string): void;
10
12
  setFocusArea(position: IVector3D, offset: IVector3D): void;
@@ -12,6 +12,12 @@ export class RageStreamingManager {
12
12
  const modelHash = mp.game.joaat(model);
13
13
  return mp.game.streaming.isModelInCdimage(modelHash);
14
14
  }
15
+ requestModel(modelHash) {
16
+ mp.game.streaming.requestModel(modelHash);
17
+ }
18
+ hasModelLoaded(modelHash) {
19
+ return mp.game.streaming.hasModelLoaded(modelHash);
20
+ }
15
21
  requestIpl(iplName) {
16
22
  mp.game.streaming.requestIpl(iplName);
17
23
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rock-mod",
3
- "version": "0.19.0",
3
+ "version": "0.20.0",
4
4
  "description": "Rock-Mod is a powerful framework designed for creating and managing mods for Grand Theft Auto (GTA) games.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -82,6 +82,9 @@
82
82
  ],
83
83
  "author": "xvetal",
84
84
  "license": "MIT",
85
+ "dependencies": {
86
+ "@swc/helpers": "^0.5.15"
87
+ },
85
88
  "devDependencies": {
86
89
  "@rollup/plugin-commonjs": "^25.0.7",
87
90
  "@rollup/plugin-node-resolve": "^15.2.3",