@nativewrappers/redm-codegen 0.0.4 → 0.0.6

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 (317) hide show
  1. package/dist/classes/AnimScene.d.ts +109 -109
  2. package/dist/classes/AnimScene.d.ts.map +1 -1
  3. package/dist/classes/AnimScene.js +158 -158
  4. package/dist/classes/BaseModel.d.ts +34 -34
  5. package/dist/classes/BaseModel.d.ts.map +1 -1
  6. package/dist/classes/BaseModel.js +53 -53
  7. package/dist/classes/BaseTask.d.ts +36 -36
  8. package/dist/classes/BaseTask.d.ts.map +1 -1
  9. package/dist/classes/BaseTask.js +44 -44
  10. package/dist/classes/Cam.d.ts +91 -91
  11. package/dist/classes/Cam.d.ts.map +1 -1
  12. package/dist/classes/Cam.js +124 -124
  13. package/dist/classes/Entity.d.ts +507 -502
  14. package/dist/classes/Entity.d.ts.map +1 -1
  15. package/dist/classes/Entity.js +723 -714
  16. package/dist/classes/Interior.d.ts +27 -27
  17. package/dist/classes/Interior.d.ts.map +1 -1
  18. package/dist/classes/Interior.js +42 -42
  19. package/dist/classes/ItemSet.d.ts +2 -2
  20. package/dist/classes/ItemSet.d.ts.map +1 -1
  21. package/dist/classes/ItemSet.js +3 -3
  22. package/dist/classes/Ped.d.ts +286 -286
  23. package/dist/classes/Ped.d.ts.map +1 -1
  24. package/dist/classes/Ped.js +425 -425
  25. package/dist/classes/PedModel.d.ts +1 -1
  26. package/dist/classes/PedModel.d.ts.map +1 -1
  27. package/dist/classes/PedModel.js +2 -2
  28. package/dist/classes/PedTask.d.ts +770 -770
  29. package/dist/classes/PedTask.d.ts.map +1 -1
  30. package/dist/classes/PedTask.js +985 -985
  31. package/dist/classes/PersChar.d.ts +11 -11
  32. package/dist/classes/PersChar.d.ts.map +1 -1
  33. package/dist/classes/PersChar.js +23 -23
  34. package/dist/classes/Pickup.d.ts +6 -6
  35. package/dist/classes/Pickup.d.ts.map +1 -1
  36. package/dist/classes/Pickup.js +12 -12
  37. package/dist/classes/Player.d.ts +237 -233
  38. package/dist/classes/Player.d.ts.map +1 -1
  39. package/dist/classes/Player.js +309 -303
  40. package/dist/classes/Prop.d.ts +126 -126
  41. package/dist/classes/Prop.d.ts.map +1 -1
  42. package/dist/classes/Prop.js +180 -180
  43. package/dist/classes/PropSet.d.ts +16 -16
  44. package/dist/classes/PropSet.d.ts.map +1 -1
  45. package/dist/classes/PropSet.js +22 -22
  46. package/dist/classes/Vehicle.d.ts +122 -122
  47. package/dist/classes/Vehicle.d.ts.map +1 -1
  48. package/dist/classes/Vehicle.js +147 -147
  49. package/dist/classes/VehicleModel.d.ts +1 -1
  50. package/dist/classes/VehicleModel.d.ts.map +1 -1
  51. package/dist/classes/VehicleModel.js +2 -2
  52. package/dist/classes/VehicleTask.d.ts +17 -17
  53. package/dist/classes/VehicleTask.d.ts.map +1 -1
  54. package/dist/classes/VehicleTask.js +24 -24
  55. package/dist/classes/Volume.d.ts +44 -44
  56. package/dist/classes/Volume.d.ts.map +1 -1
  57. package/dist/classes/Volume.js +58 -58
  58. package/dist/classes/Weapon.d.ts +243 -243
  59. package/dist/classes/Weapon.d.ts.map +1 -1
  60. package/dist/classes/Weapon.js +339 -339
  61. package/dist/namespaces/Aicoverpoint.d.ts +23 -23
  62. package/dist/namespaces/Aicoverpoint.d.ts.map +1 -1
  63. package/dist/namespaces/Aicoverpoint.js +35 -35
  64. package/dist/namespaces/Aitransport.d.ts +78 -78
  65. package/dist/namespaces/Aitransport.d.ts.map +1 -1
  66. package/dist/namespaces/Aitransport.js +95 -95
  67. package/dist/namespaces/Animscene.d.ts +37 -37
  68. package/dist/namespaces/Animscene.d.ts.map +1 -1
  69. package/dist/namespaces/Animscene.js +51 -51
  70. package/dist/namespaces/Audio.d.ts +395 -395
  71. package/dist/namespaces/Audio.d.ts.map +1 -1
  72. package/dist/namespaces/Audio.js +530 -530
  73. package/dist/namespaces/Bounty.d.ts +23 -23
  74. package/dist/namespaces/Bounty.d.ts.map +1 -1
  75. package/dist/namespaces/Bounty.js +40 -40
  76. package/dist/namespaces/Brain.d.ts +15 -15
  77. package/dist/namespaces/Brain.d.ts.map +1 -1
  78. package/dist/namespaces/Brain.js +20 -20
  79. package/dist/namespaces/CamStatics.d.ts +483 -483
  80. package/dist/namespaces/CamStatics.d.ts.map +1 -1
  81. package/dist/namespaces/CamStatics.js +693 -693
  82. package/dist/namespaces/Clock.d.ts +51 -51
  83. package/dist/namespaces/Clock.d.ts.map +1 -1
  84. package/dist/namespaces/Clock.js +73 -73
  85. package/dist/namespaces/Collection.d.ts +6 -6
  86. package/dist/namespaces/Collection.d.ts.map +1 -1
  87. package/dist/namespaces/Collection.js +11 -11
  88. package/dist/namespaces/Compapp.js +1 -1
  89. package/dist/namespaces/Compendium.d.ts +58 -58
  90. package/dist/namespaces/Compendium.d.ts.map +1 -1
  91. package/dist/namespaces/Compendium.js +83 -83
  92. package/dist/namespaces/Crashlog.js +9 -9
  93. package/dist/namespaces/Crew.d.ts +9 -9
  94. package/dist/namespaces/Crew.d.ts.map +1 -1
  95. package/dist/namespaces/Crew.js +18 -18
  96. package/dist/namespaces/Databinding.d.ts +146 -146
  97. package/dist/namespaces/Databinding.d.ts.map +1 -1
  98. package/dist/namespaces/Databinding.js +218 -218
  99. package/dist/namespaces/Datafile.js +4 -4
  100. package/dist/namespaces/Decorator.d.ts +19 -19
  101. package/dist/namespaces/Decorator.d.ts.map +1 -1
  102. package/dist/namespaces/Decorator.js +34 -34
  103. package/dist/namespaces/Dlc.js +2 -2
  104. package/dist/namespaces/EntityStatics.d.ts +186 -186
  105. package/dist/namespaces/EntityStatics.d.ts.map +1 -1
  106. package/dist/namespaces/EntityStatics.js +249 -249
  107. package/dist/namespaces/Event.js +4 -4
  108. package/dist/namespaces/Fire.d.ts +89 -89
  109. package/dist/namespaces/Fire.d.ts.map +1 -1
  110. package/dist/namespaces/Fire.js +115 -115
  111. package/dist/namespaces/Flock.js +2 -2
  112. package/dist/namespaces/Gang.js +2 -2
  113. package/dist/namespaces/GoogleAnalytics.js +2 -2
  114. package/dist/namespaces/Graphics.d.ts +776 -776
  115. package/dist/namespaces/Graphics.d.ts.map +1 -1
  116. package/dist/namespaces/Graphics.js +1120 -1120
  117. package/dist/namespaces/Hud.d.ts +497 -497
  118. package/dist/namespaces/Hud.d.ts.map +1 -1
  119. package/dist/namespaces/Hud.js +748 -748
  120. package/dist/namespaces/Ik.js +1 -1
  121. package/dist/namespaces/Interaction.js +3 -3
  122. package/dist/namespaces/InteriorStatics.d.ts +40 -40
  123. package/dist/namespaces/InteriorStatics.d.ts.map +1 -1
  124. package/dist/namespaces/InteriorStatics.js +57 -57
  125. package/dist/namespaces/Inventory.d.ts +205 -205
  126. package/dist/namespaces/Inventory.d.ts.map +1 -1
  127. package/dist/namespaces/Inventory.js +340 -340
  128. package/dist/namespaces/Itemdatabase.d.ts +78 -78
  129. package/dist/namespaces/Itemdatabase.d.ts.map +1 -1
  130. package/dist/namespaces/Itemdatabase.js +109 -109
  131. package/dist/namespaces/Itemset.js +2 -2
  132. package/dist/namespaces/Law.d.ts +1 -1
  133. package/dist/namespaces/Law.d.ts.map +1 -1
  134. package/dist/namespaces/Law.js +19 -19
  135. package/dist/namespaces/Localization.js +1 -1
  136. package/dist/namespaces/Map.d.ts +156 -156
  137. package/dist/namespaces/Map.d.ts.map +1 -1
  138. package/dist/namespaces/Map.js +209 -209
  139. package/dist/namespaces/Minigame.d.ts +66 -66
  140. package/dist/namespaces/Minigame.d.ts.map +1 -1
  141. package/dist/namespaces/Minigame.js +111 -111
  142. package/dist/namespaces/Misc.d.ts +3 -3
  143. package/dist/namespaces/Misc.d.ts.map +1 -1
  144. package/dist/namespaces/Misc.js +35 -35
  145. package/dist/namespaces/Missiondata.js +1 -1
  146. package/dist/namespaces/Money.js +3 -3
  147. package/dist/namespaces/Netshopping.d.ts +58 -58
  148. package/dist/namespaces/Netshopping.d.ts.map +1 -1
  149. package/dist/namespaces/Netshopping.js +89 -89
  150. package/dist/namespaces/Network.d.ts +1199 -1199
  151. package/dist/namespaces/Network.d.ts.map +1 -1
  152. package/dist/namespaces/Network.js +1650 -1650
  153. package/dist/namespaces/Object.d.ts +262 -262
  154. package/dist/namespaces/Object.d.ts.map +1 -1
  155. package/dist/namespaces/Object.js +367 -367
  156. package/dist/namespaces/Pad.d.ts +102 -102
  157. package/dist/namespaces/Pad.d.ts.map +1 -1
  158. package/dist/namespaces/Pad.js +141 -141
  159. package/dist/namespaces/Pathfind.js +10 -10
  160. package/dist/namespaces/PedStatics.d.ts +2 -2
  161. package/dist/namespaces/PedStatics.d.ts.map +1 -1
  162. package/dist/namespaces/PedStatics.js +10 -10
  163. package/dist/namespaces/Perschar.d.ts +42 -42
  164. package/dist/namespaces/Perschar.d.ts.map +1 -1
  165. package/dist/namespaces/Perschar.js +59 -59
  166. package/dist/namespaces/Physics.d.ts +37 -37
  167. package/dist/namespaces/Physics.d.ts.map +1 -1
  168. package/dist/namespaces/Physics.js +54 -54
  169. package/dist/namespaces/PlayerStatics.d.ts +68 -68
  170. package/dist/namespaces/PlayerStatics.d.ts.map +1 -1
  171. package/dist/namespaces/PlayerStatics.js +104 -104
  172. package/dist/namespaces/Population.d.ts +86 -86
  173. package/dist/namespaces/Population.d.ts.map +1 -1
  174. package/dist/namespaces/Population.js +116 -116
  175. package/dist/namespaces/Posse.d.ts +48 -48
  176. package/dist/namespaces/Posse.d.ts.map +1 -1
  177. package/dist/namespaces/Posse.js +78 -78
  178. package/dist/namespaces/Propset.d.ts +59 -59
  179. package/dist/namespaces/Propset.d.ts.map +1 -1
  180. package/dist/namespaces/Propset.js +81 -81
  181. package/dist/namespaces/Replay.d.ts +1 -1
  182. package/dist/namespaces/Replay.d.ts.map +1 -1
  183. package/dist/namespaces/Replay.js +2 -2
  184. package/dist/namespaces/Scripts.d.ts +1 -1
  185. package/dist/namespaces/Scripts.d.ts.map +1 -1
  186. package/dist/namespaces/Scripts.js +12 -12
  187. package/dist/namespaces/Socialclub.js +8 -8
  188. package/dist/namespaces/Socialclubfeed.js +1 -1
  189. package/dist/namespaces/Spactionproxy.js +4 -4
  190. package/dist/namespaces/Stats.d.ts +203 -203
  191. package/dist/namespaces/Stats.d.ts.map +1 -1
  192. package/dist/namespaces/Stats.js +294 -294
  193. package/dist/namespaces/Streaming.d.ts +128 -128
  194. package/dist/namespaces/Streaming.d.ts.map +1 -1
  195. package/dist/namespaces/Streaming.js +202 -202
  196. package/dist/namespaces/Task.d.ts +366 -366
  197. package/dist/namespaces/Task.d.ts.map +1 -1
  198. package/dist/namespaces/Task.js +517 -517
  199. package/dist/namespaces/Telemetry.d.ts +83 -83
  200. package/dist/namespaces/Telemetry.d.ts.map +1 -1
  201. package/dist/namespaces/Telemetry.js +111 -111
  202. package/dist/namespaces/Txd.js +1 -1
  203. package/dist/namespaces/Uiapps.d.ts +25 -25
  204. package/dist/namespaces/Uiapps.d.ts.map +1 -1
  205. package/dist/namespaces/Uiapps.js +36 -36
  206. package/dist/namespaces/Uievents.js +1 -1
  207. package/dist/namespaces/Uifeed.js +1 -1
  208. package/dist/namespaces/Uistickyfeed.d.ts +16 -16
  209. package/dist/namespaces/Uistickyfeed.d.ts.map +1 -1
  210. package/dist/namespaces/Uistickyfeed.js +21 -21
  211. package/dist/namespaces/Unlock.js +5 -5
  212. package/dist/namespaces/VehicleStatics.js +12 -12
  213. package/dist/namespaces/Voice.js +7 -7
  214. package/dist/namespaces/VolumeStatics.d.ts +99 -99
  215. package/dist/namespaces/VolumeStatics.d.ts.map +1 -1
  216. package/dist/namespaces/VolumeStatics.js +137 -137
  217. package/dist/namespaces/Water.d.ts +27 -27
  218. package/dist/namespaces/Water.d.ts.map +1 -1
  219. package/dist/namespaces/Water.js +41 -41
  220. package/dist/namespaces/WeaponStatics.d.ts +206 -206
  221. package/dist/namespaces/WeaponStatics.d.ts.map +1 -1
  222. package/dist/namespaces/WeaponStatics.js +303 -303
  223. package/dist/types/NativeAliases.d.ts +3 -1
  224. package/dist/types/NativeAliases.d.ts.map +1 -1
  225. package/dist/types/NativeAliases.js +3 -1
  226. package/package.json +1 -1
  227. package/src/classes/AnimScene.ts +164 -164
  228. package/src/classes/BaseModel.ts +60 -60
  229. package/src/classes/BaseTask.ts +46 -46
  230. package/src/classes/Cam.ts +136 -136
  231. package/src/classes/Entity.ts +738 -727
  232. package/src/classes/Interior.ts +43 -43
  233. package/src/classes/ItemSet.ts +3 -3
  234. package/src/classes/Ped.ts +432 -432
  235. package/src/classes/PedModel.ts +2 -2
  236. package/src/classes/PedTask.ts +1023 -1023
  237. package/src/classes/PersChar.ts +28 -28
  238. package/src/classes/Pickup.ts +13 -13
  239. package/src/classes/Player.ts +326 -319
  240. package/src/classes/Prop.ts +185 -185
  241. package/src/classes/PropSet.ts +25 -25
  242. package/src/classes/Vehicle.ts +147 -147
  243. package/src/classes/VehicleModel.ts +2 -2
  244. package/src/classes/VehicleTask.ts +27 -27
  245. package/src/classes/Volume.ts +62 -62
  246. package/src/classes/Weapon.ts +358 -358
  247. package/src/namespaces/Aicoverpoint.ts +40 -40
  248. package/src/namespaces/Aitransport.ts +104 -104
  249. package/src/namespaces/Animscene.ts +55 -55
  250. package/src/namespaces/Audio.ts +565 -565
  251. package/src/namespaces/Bounty.ts +46 -46
  252. package/src/namespaces/Brain.ts +22 -22
  253. package/src/namespaces/CamStatics.ts +706 -706
  254. package/src/namespaces/Clock.ts +82 -82
  255. package/src/namespaces/Collection.ts +12 -12
  256. package/src/namespaces/Compapp.ts +1 -1
  257. package/src/namespaces/Compendium.ts +94 -94
  258. package/src/namespaces/Crashlog.ts +9 -9
  259. package/src/namespaces/Crew.ts +20 -20
  260. package/src/namespaces/Databinding.ts +222 -222
  261. package/src/namespaces/Datafile.ts +4 -4
  262. package/src/namespaces/Decorator.ts +37 -37
  263. package/src/namespaces/Dlc.ts +2 -2
  264. package/src/namespaces/EntityStatics.ts +259 -259
  265. package/src/namespaces/Event.ts +4 -4
  266. package/src/namespaces/Fire.ts +127 -127
  267. package/src/namespaces/Flock.ts +2 -2
  268. package/src/namespaces/Gang.ts +2 -2
  269. package/src/namespaces/GoogleAnalytics.ts +2 -2
  270. package/src/namespaces/Graphics.ts +1081 -1081
  271. package/src/namespaces/Hud.ts +767 -767
  272. package/src/namespaces/Ik.ts +1 -1
  273. package/src/namespaces/Interaction.ts +3 -3
  274. package/src/namespaces/InteriorStatics.ts +65 -65
  275. package/src/namespaces/Inventory.ts +352 -352
  276. package/src/namespaces/Itemdatabase.ts +121 -121
  277. package/src/namespaces/Itemset.ts +2 -2
  278. package/src/namespaces/Law.ts +20 -20
  279. package/src/namespaces/Localization.ts +1 -1
  280. package/src/namespaces/Map.ts +217 -217
  281. package/src/namespaces/Minigame.ts +119 -119
  282. package/src/namespaces/Misc.ts +38 -38
  283. package/src/namespaces/Missiondata.ts +1 -1
  284. package/src/namespaces/Money.ts +3 -3
  285. package/src/namespaces/Netshopping.ts +99 -99
  286. package/src/namespaces/Network.ts +1738 -1738
  287. package/src/namespaces/Object.ts +370 -370
  288. package/src/namespaces/Pad.ts +155 -155
  289. package/src/namespaces/Pathfind.ts +10 -10
  290. package/src/namespaces/PedStatics.ts +12 -12
  291. package/src/namespaces/Perschar.ts +67 -67
  292. package/src/namespaces/Physics.ts +62 -62
  293. package/src/namespaces/PlayerStatics.ts +112 -112
  294. package/src/namespaces/Population.ts +131 -131
  295. package/src/namespaces/Posse.ts +81 -81
  296. package/src/namespaces/Propset.ts +92 -92
  297. package/src/namespaces/Replay.ts +3 -3
  298. package/src/namespaces/Scripts.ts +13 -13
  299. package/src/namespaces/Socialclub.ts +8 -8
  300. package/src/namespaces/Socialclubfeed.ts +1 -1
  301. package/src/namespaces/Spactionproxy.ts +4 -4
  302. package/src/namespaces/Stats.ts +296 -296
  303. package/src/namespaces/Streaming.ts +236 -236
  304. package/src/namespaces/Task.ts +583 -583
  305. package/src/namespaces/Telemetry.ts +125 -125
  306. package/src/namespaces/Txd.ts +1 -1
  307. package/src/namespaces/Uiapps.ts +43 -43
  308. package/src/namespaces/Uievents.ts +1 -1
  309. package/src/namespaces/Uifeed.ts +1 -1
  310. package/src/namespaces/Uistickyfeed.ts +23 -23
  311. package/src/namespaces/Unlock.ts +5 -5
  312. package/src/namespaces/VehicleStatics.ts +12 -12
  313. package/src/namespaces/Voice.ts +7 -7
  314. package/src/namespaces/VolumeStatics.ts +143 -143
  315. package/src/namespaces/Water.ts +47 -47
  316. package/src/namespaces/WeaponStatics.ts +311 -311
  317. package/src/types/NativeAliases.ts +6 -1
@@ -27,7 +27,7 @@ export class Entity implements IHandle {
27
27
  /**
28
28
  * @returns
29
29
  */
30
- getIsBird(): any {
30
+ get IsBird(): any {
31
31
  return inv<number>('0xC346A546612C49A9', this.handle);
32
32
  }
33
33
 
@@ -36,328 +36,290 @@ export class Entity implements IHandle {
36
36
  *
37
37
  * @returns
38
38
  */
39
- getForwardVectorYx(): Vector3 {
39
+ get ForwardVectorYx(): Vector3 {
40
40
  return Vector3.fromArray(inv<number[]>('0x935A30AA88FB1014', this.handle, rav()));
41
41
  }
42
42
 
43
43
  /**
44
- * @param pos
45
- * @param xAxis
46
- * @param yAxis
47
- * @param zAxis
48
- * @param clearArea
44
+ * @param targetEntity
45
+ * @returns
49
46
  */
50
- setCoords(pos: Vector3, xAxis: boolean, yAxis: boolean, zAxis: boolean, clearArea: boolean): void {
51
- inv<void>('0x06843DA7060A026B', this.handle, f(pos.x), f(pos.y), f(pos.z), xAxis, yAxis, zAxis, clearArea);
47
+ isTouchingEntity(targetEntity: Entity): boolean {
48
+ return !!inv<boolean>('0x9A2304A64C3C8423', this.handle, targetEntity.handle, rai());
49
+ }
50
+
51
+ deleteCarriable(): void {
52
+ inv<void>('0x0D0DB2B6AF19A987', this.handle);
52
53
  }
53
54
 
54
55
  /**
55
- * @param boneName
56
+ * Returns a normalized value between 0.0f and 1.0f. You can get the actual anim time by multiplying this by GET_ANIM_DURATION
57
+ *
58
+ * @param animDict
59
+ * @param animName
56
60
  * @returns
57
61
  */
58
- getBoneIndexByName(boneName: string | null): number {
59
- return inv<number>('0xBACA8FE9C76C124E', this.handle, boneName, rai());
62
+ getAnimCurrentTime(animDict: string | null, animName: string | null): number {
63
+ return inv<number>('0x627520389E288A73', this.handle, animDict, animName, raf());
60
64
  }
61
65
 
62
66
  /**
63
- * @param pause
67
+ * @param entity2
68
+ * @param thisFrameOnly
64
69
  */
65
- pauseTracking(pause: boolean): void {
66
- inv<void>('0x36EB4D34D4A092C5', this.handle, pause);
70
+ setNoCollisionEntity(entity2: Entity, thisFrameOnly: boolean): void {
71
+ inv<void>('0xE037BF068223C38D', this.handle, entity2.handle, thisFrameOnly);
67
72
  }
68
73
 
69
74
  /**
70
- * @param toggle
75
+ * Result is in meters per second (m/s)
76
+ *
77
+ * @returns
71
78
  */
72
- setLoadCollisionFlag(toggle: boolean): void {
73
- inv<void>('0x9B9EE31AED48072E', this.handle, toggle);
79
+ get Speed(): number {
80
+ return inv<number>('0xFB6BA510A533DF81', this.handle, raf());
74
81
  }
75
82
 
76
83
  /**
77
- * Changes type and quality of skins
78
- * type hashes: https://pastebin.com/C1WvQjCy
79
- *
80
- * @param type
84
+ * @param bOnlyDamagedWhenRunningScript
81
85
  */
82
- setCarcassType(type: string | number): void {
83
- inv<void>('0x399657ED871B3A6C', this.handle, _h(type));
86
+ set CanOnlyBeDamagedByScriptParticipants(bOnlyDamagedWhenRunningScript: boolean) {
87
+ inv<void>('0xFF83AF534156B399', this.handle, bOnlyDamagedWhenRunningScript);
84
88
  }
85
89
 
86
90
  /**
87
- * @param toggle
91
+ * @returns
88
92
  */
89
- setHasGravity(toggle: boolean): void {
90
- inv<void>('0x0CEDB728A1083FA7', this.handle, toggle);
93
+ get IsTrackedVisible(): any {
94
+ return inv<number>('0xC8CCDB712FBCBA92', this.handle);
91
95
  }
92
96
 
93
97
  /**
94
- * @param relative
95
- * @returns
98
+ * @param p1
99
+ * @param collision
96
100
  */
97
- getSpeedVector(relative: boolean): Vector3 {
98
- return Vector3.fromArray(inv<number[]>('0xF2DB09816A419DC5', this.handle, relative, rav()));
101
+ detachEntity(p1: boolean, collision: boolean): void {
102
+ inv<void>('0x64CDE9D6BF8ECAD3', this.handle, p1, collision);
99
103
  }
100
104
 
101
105
  /**
102
- * @param entity2
103
- * @param p2
104
- * @param p3
105
106
  * @returns
106
107
  */
107
- hasBeenDamagedByEntity(entity2: Entity, p2: boolean, p3: boolean): boolean {
108
- return inv<boolean>('0x7B6E7BEC1143AC86', this.handle, entity2.handle, p2, p3, rai());
108
+ get IsVisibleToScript(): boolean {
109
+ return !!inv<boolean>('0xF213C724E77F321A', this.handle, rai());
109
110
  }
110
111
 
111
112
  /**
113
+ * @param entity2
114
+ * @param traceType
112
115
  * @returns
113
116
  */
114
- isFullyLooted(): any {
115
- return inv<number>('0x8DE41E9902E85756', this.handle);
117
+ hasClearLosToEntity(entity2: Entity, traceType: number): boolean {
118
+ return !!inv<boolean>('0xFCDFF7B72D23A1AC', this.handle, entity2.handle, traceType, rai());
116
119
  }
117
120
 
118
121
  /**
122
+ * Used in Script Function GENERIC_ITEM_HAS_ANIM_COMPLETED
123
+ * *GET_ENTITY**
124
+ *
125
+ * @param animDict
126
+ * @param animClip
119
127
  * @returns
120
128
  */
121
- isOccluded(): boolean {
122
- return inv<boolean>('0x140188E884645624', this.handle, rai());
129
+ N_0x8E46E18AA828334F(animDict: string | null, animClip: string | null): number {
130
+ return inv<number>('0x8E46E18AA828334F', this.handle, animDict, animClip, raf());
123
131
  }
124
132
 
125
133
  /**
126
- * @param toggle
134
+ * @param playerPedToIgnore
135
+ * @param flags
136
+ * @returns
127
137
  */
128
- setCanBeDamaged(toggle: boolean): void {
129
- inv<void>('0x0D06D522B90E861F', this.handle, toggle);
138
+ getNearestPlayerToEntity(playerPedToIgnore: Ped, flags: number): Player | null {
139
+ return createFromHandle<Player>('Player', inv<number>('0x990E294FC387FB88', this.handle, playerPedToIgnore.handle, flags, rai()));
130
140
  }
131
141
 
132
142
  /**
133
- * @param forceFlags
134
- * @param pos
135
- * @param offset
136
- * @param boneIndex
137
- * @param isDirectionRel
138
- * @param ignoreUpVec
139
- * @param isForceRel
140
- * @param p12
141
- * @param p13
143
+ * Gets the Y-component of the entity's forward vector.
144
+ *
145
+ * @returns
142
146
  */
143
- applyForceToEntity(forceFlags: number, pos: Vector3, offset: Vector3, boneIndex: number, isDirectionRel: boolean, ignoreUpVec: boolean, isForceRel: boolean, p12: boolean, p13: boolean): void {
144
- inv<void>('0xF15E8F5D333F09C4', this.handle, forceFlags, f(pos.x), f(pos.y), f(pos.z), f(offset.x), f(offset.y), f(offset.z), boneIndex, isDirectionRel, ignoreUpVec, isForceRel, p12, p13);
147
+ get ForwardY(): number {
148
+ return inv<number>('0x9A5C073ECBDA7EE7', this.handle, raf());
145
149
  }
146
150
 
147
151
  /**
148
- * @returns
152
+ * @param pitch
153
+ * @param roll
154
+ * @param yaw
155
+ * @param rotationOrder
156
+ * @param p5
149
157
  */
150
- isDead(): boolean {
151
- return inv<boolean>('0x7D5B1F88E7504BBA', this.handle, rai());
158
+ setRotation(pitch: number, roll: number, yaw: number, rotationOrder: number, p5: boolean): void {
159
+ inv<void>('0x9CC8314DFEDE441E', this.handle, f(pitch), f(roll), f(yaw), rotationOrder, p5);
152
160
  }
153
161
 
154
162
  /**
155
- * @param pos1
156
- * @param pos2
157
- * @param p7
158
- * @param p8
159
- * @param p9
160
- * @returns
163
+ * @param p1
164
+ * @param relationshipGroup
161
165
  */
162
- isInArea(pos1: Vector3, pos2: Vector3, p7: boolean, p8: boolean, p9: any): boolean {
163
- return inv<boolean>('0x0C2634C40A16193E', this.handle, f(pos1.x), f(pos1.y), f(pos1.z), f(pos2.x), f(pos2.y), f(pos2.z), p7, p8, p9, rai());
166
+ setOnlyDamagedByRelationshipGroup(p1: boolean, relationshipGroup: string | number): void {
167
+ inv<void>('0x6C1F6AA2F0ADD104', this.handle, p1, _h(relationshipGroup));
164
168
  }
165
169
 
166
170
  /**
167
- * Returns the coordinates of an entity-bone.
168
- * https://github.com/femga/rdr3_discoveries/tree/master/boneNames
171
+ * https://github.com/femga/rdr3_discoveries/tree/master/AI/ENTITY_PROOFS
172
+ * BOOL p2: handles an additional special proofs flag, so it simply indicates whether it should be enabled or disabled, not sure what exactly it proofs the entity from though
169
173
  *
170
- * @param boneIndex
171
- * @returns
174
+ * @param proofsBitset
175
+ * @param specialFlag
172
176
  */
173
- getWorldPositionOfBone(boneIndex: number): Vector3 {
174
- return Vector3.fromArray(inv<number[]>('0x82CFA50E34681CA5', this.handle, boneIndex, rav()));
177
+ setProofs(proofsBitset: number, specialFlag: boolean): void {
178
+ inv<void>('0xFAEE099C6F890BB8', this.handle, proofsBitset, specialFlag);
175
179
  }
176
180
 
177
181
  /**
178
- * https://github.com/femga/rdr3_discoveries/tree/master/animations
179
- *
180
- * @param animName
181
- * @param animDict
182
- * @param p3
183
- * @param loop
184
- * @param stayInAnim
185
- * @param p6
186
- * @param delta
187
- * @param bitset
188
182
  * @returns
189
183
  */
190
- playAnim(animName: string | null, animDict: string | null, p3: number, loop: boolean, stayInAnim: boolean, p6: boolean, delta: number, bitset: any): boolean {
191
- return inv<boolean>('0xDC6D22FAB76D4874', this.handle, animName, animDict, f(p3), loop, stayInAnim, p6, f(delta), bitset, rai());
184
+ hasCollisionLoadedAroundEntity(): boolean {
185
+ return !!inv<boolean>('0xBEB1600952B9CF5C', this.handle, rai());
192
186
  }
193
187
 
194
188
  /**
195
- * Returns false if entity is not a ped or object.
196
- *
197
- * @returns lootTable
189
+ * @returns
198
190
  */
199
- getScriptOverrideLootTablePermanent(): [any, number] {
200
- const result = inv<[number, number]>('0x1E804EA9B12030A4', this.handle, pvi());
201
- return [result[0], result[1]];
191
+ get IsCarriablePelt(): any {
192
+ return inv<number>('0x255B6DB4E3AD3C3E', this.handle);
202
193
  }
203
194
 
204
195
  /**
205
- * @param animDict
206
- * @param animName
207
- * @param p3
196
+ * @param p1
208
197
  * @returns
209
198
  */
210
- hasAnimFinished(animDict: string | null, animName: string | null, p3: number): boolean {
211
- return inv<boolean>('0xAEB40615337EF1E3', this.handle, animDict, animName, p3, rai());
199
+ getVelocity(p1: number): Vector3 {
200
+ return Vector3.fromArray(inv<number[]>('0x4805D2B1D8CF94A9', this.handle, p1, rav()));
212
201
  }
213
202
 
214
203
  /**
215
- * @param bCanBeDamaged
216
- * @param relGroup
204
+ * @param toggle
217
205
  */
218
- setCanBeDamagedByRelationshipGroup(bCanBeDamaged: boolean, relGroup: string | number): void {
219
- inv<void>('0x0EF1AFB18649E015', this.handle, bCanBeDamaged, _h(relGroup));
206
+ set CanAutoVaultOnEntity(toggle: boolean) {
207
+ inv<void>('0x80646744FA88F9D7', this.handle, toggle);
220
208
  }
221
209
 
222
210
  /**
211
+ * Sets the loot table an entity will carry. Returns true if loot table has been successfully set. Returns false if entity is not a ped or object.
212
+ * https://github.com/femga/rdr3_discoveries/blob/master/AI/EVENTS/loot_rewards.lua
213
+ *
214
+ * @param lootTable
223
215
  * @returns
224
216
  */
225
- getUprightValue(): number {
226
- return inv<number>('0x56398BE65160C3BE', this.handle, raf());
217
+ scriptOverrideLootTablePermanent(lootTable: string | number): any {
218
+ return inv<number>('0x8C03CD6B5E0E85E8', this.handle, _h(lootTable));
227
219
  }
228
220
 
229
221
  /**
230
- * @param pos
231
- * @param heading
232
- * @param xAxis
233
- * @param yAxis
234
- * @param zAxis
222
+ * @returns argStruct
235
223
  */
236
- setCoordsAndHeading(pos: Vector3, heading: number, xAxis: boolean, yAxis: boolean, zAxis: boolean): void {
237
- inv<void>('0x203BEFFDBE12E96A', this.handle, f(pos.x), f(pos.y), f(pos.z), f(heading), xAxis, yAxis, zAxis);
224
+ get Script(): [number, number] {
225
+ const result = inv<[number, number]>('0x2A08A32B6D49906F', this.handle, pvi(), rai());
226
+ return [result[0] & 0xFFFFFFFF, result[1]];
238
227
  }
239
228
 
240
229
  /**
241
- * Returns zero if the entity is not a carriable
242
- *
230
+ * @param actionHash
243
231
  * @returns
244
232
  */
245
- getCarryConfig(): number {
246
- return (inv<number>('0x0FD25587BB306C86', this.handle, rai())) & 0xFFFFFFFF;
233
+ hasAnimEventFired(actionHash: string | number): boolean {
234
+ return !!inv<boolean>('0x5851CC48405F4A07', this.handle, _h(actionHash), rai());
247
235
  }
248
236
 
249
237
  /**
250
- * tier: https://github.com/Halen84/RDR3-Native-Flags-And-Enums/tree/main/eEntityThreatTier
251
- *
252
- * @param tier
253
- * @param p2
238
+ * @param p1
254
239
  */
255
- setThreatTier(tier: number, p2: boolean): void {
256
- inv<void>('0x4B436BAC8CBE9B07', this.handle, tier, p2);
240
+ N_0xEF259AA1E097E0AD(p1: any): void {
241
+ inv<void>('0xEF259AA1E097E0AD', this.handle, p1);
257
242
  }
258
243
 
259
244
  /**
260
- * Returns the heading of the entity in degrees. Also know as the "Yaw" of an entity.
245
+ * Getter for FREEZE_ENTITY_POSITION
261
246
  *
262
247
  * @returns
263
248
  */
264
- getHeading(): number {
265
- return inv<number>('0xC230DD956E2F5507', this.handle, raf());
249
+ get IsFrozen(): any {
250
+ return inv<number>('0x083D497D57B7400F', this.handle);
266
251
  }
267
252
 
268
253
  /**
269
- * Returns the LOD distance of an entity.
254
+ * Returns the entity that is looting a ped but only while the looting is active
270
255
  *
271
256
  * @returns
272
257
  */
273
- getLodDist(): number {
274
- return inv<number>('0xDF240D0C2A948683', this.handle, rai());
258
+ get LootingPed(): Ped | null {
259
+ return createFromHandle<Ped>('Ped', inv<number>('0xEF2D9ED7CE684F08', this.handle, rai()));
275
260
  }
276
261
 
277
262
  /**
278
263
  * @returns
279
264
  */
280
- doesHaveDrawable(): boolean {
281
- return inv<boolean>('0x20487F0DA9AF164A', this.handle, rai());
265
+ get IsWaitingForWorldCollision(): boolean {
266
+ return !!inv<boolean>('0x5E1CC2E8DC3111DD', this.handle, rai());
282
267
  }
283
268
 
284
269
  /**
285
- * @param xyzw
270
+ * Gets the X-component of the entity's forward vector.
271
+ *
272
+ * @returns
286
273
  */
287
- setQuaternion(xyzw: Vector4): void {
288
- inv<void>('0x100E7007D13E3687', this.handle, f(xyzw.x), f(xyzw.y), f(xyzw.z), f(xyzw.w));
274
+ get ForwardX(): number {
275
+ return inv<number>('0xDB0954E9960F6457', this.handle, raf());
289
276
  }
290
277
 
291
278
  /**
292
279
  * @returns
293
280
  */
294
- isAttachedToAnyObject(): boolean {
295
- return inv<boolean>('0x306C1F6178F01AB3', this.handle, rai());
281
+ get IsAPed(): boolean {
282
+ return !!inv<boolean>('0xCF8176912DDA4EA5', this.handle, rai());
296
283
  }
297
284
 
298
285
  /**
299
- * Sets a ped or an object totally invincible. It doesn't take any kind of damage. Peds will not ragdoll on explosions.
300
- *
301
- * @param toggle
286
+ * @returns
302
287
  */
303
- setInvincible(toggle: boolean): void {
304
- inv<void>('0xA5C38736C426FCB8', this.handle, toggle);
288
+ get Pitch(): number {
289
+ return inv<number>('0xEF355ABEFF7F5005', this.handle, raf());
305
290
  }
306
291
 
307
292
  /**
308
- * Attaches entity1 to bone (boneIndex) of entity2. boneIndex - this is different to boneID, use GET_PED_BONE_INDEX to get the index from the ID. use the index for attaching to specific bones. entity1 will be attached to entity2's centre if bone index given doesn't correspond to bone indexes for that entity type.
309
- * https://github.com/femga/rdr3_discoveries/tree/master/boneNames useSoftPinning - if set to false attached entity will not detach when fixed
310
- * collision - controls collision between the two entities (FALSE disables collision).
311
- * isPed - pitch doesn't work when false and roll will only work on negative numbers (only peds)
312
- * vertexIndex - position of vertex
313
- * fixedRot - if false it ignores entity vector
314
- *
315
- * @param entity2
316
- * @param boneIndex
317
- * @param pos
318
- * @param rot
319
- * @param p9
320
- * @param useSoftPinning
321
- * @param collision
322
- * @param isPed
323
- * @param vertexIndex
324
- * @param fixedRot
325
- * @param p15
326
- * @param p16
293
+ * @returns
327
294
  */
328
- attachToEntity(entity2: Entity, boneIndex: number, pos: Vector3, rot: Vector3, p9: boolean, useSoftPinning: boolean, collision: boolean, isPed: boolean, vertexIndex: number, fixedRot: boolean, p15: boolean, p16: boolean): void {
329
- inv<void>('0x6B9BBD38AB0796DF', this.handle, entity2.handle, boneIndex, f(pos.x), f(pos.y), f(pos.z), f(rot.x), f(rot.y), f(rot.z), p9, useSoftPinning, collision, isPed, vertexIndex, fixedRot, p15, p16);
295
+ get IsStatic(): boolean {
296
+ return !!inv<boolean>('0x86468ADFA0F6B861', this.handle, rai());
330
297
  }
331
298
 
332
299
  /**
300
+ * Returns the model hash from the entity
301
+ *
333
302
  * @returns
334
303
  */
335
- getIsAnimal(): any {
336
- return inv<number>('0x9A100F1CF4546629', this.handle);
304
+ get Model(): number {
305
+ return (inv<number>('0xDA76A9F39210D365', this.handle, rai())) & 0xFFFFFFFF;
337
306
  }
338
307
 
339
308
  /**
340
- * p6/relative - makes the xyz force not relative to world coords, but to something else
341
- * p7/highForce - setting false will make the force really low
342
- *
343
- * @param forceType
344
- * @param pos
345
- * @param component
346
- * @param isDirectionRel
347
- * @param isForceRel
348
- * @param p8
309
+ * Deletes the specified entity, then sets the handle pointed to by the pointer to NULL.
349
310
  */
350
- applyForceToCenterOfMass(forceType: number, pos: Vector3, component: number, isDirectionRel: boolean, isForceRel: boolean, p8: boolean): void {
351
- inv<void>('0x31DA7CEC5334DB37', this.handle, forceType, f(pos.x), f(pos.y), f(pos.z), component, isDirectionRel, isForceRel, p8);
311
+ deleteEntity(): void {
312
+ inv<void>('0x4CD38C78BD19A497', this.handle);
352
313
  }
353
314
 
354
315
  /**
355
- * Old name: _GET_ENTITY_CAN_BE_DAMAGED
356
- *
316
+ * @param team
317
+ * @param playerPedToIgnore
318
+ * @param flags
357
319
  * @returns
358
320
  */
359
- getCanBeDamaged(): any {
360
- return inv<number>('0x75DF9E73F2F005FD', this.handle);
321
+ getNearestPlayerToOnTeam(team: number, playerPedToIgnore: Ped, flags: number): Player | null {
322
+ return createFromHandle<Player>('Player', inv<number>('0xB2C30C3B4AFF718C', this.handle, team, playerPedToIgnore.handle, flags, rai()));
361
323
  }
362
324
 
363
325
  /**
@@ -382,7 +344,7 @@ export class Entity implements IHandle {
382
344
  *
383
345
  * @returns
384
346
  */
385
- getForwardVector(): Vector3 {
347
+ get ForwardVector(): Vector3 {
386
348
  return Vector3.fromArray(inv<number[]>('0x2412D9C05BB09B97', this.handle, rav()));
387
349
  }
388
350
 
@@ -391,7 +353,7 @@ export class Entity implements IHandle {
391
353
  * @returns
392
354
  */
393
355
  isTouchingModel(modelHash: string | number): boolean {
394
- return inv<boolean>('0x2AE3EBC8DEB9768B', this.handle, _h(modelHash), rai());
356
+ return !!inv<boolean>('0x2AE3EBC8DEB9768B', this.handle, _h(modelHash), rai());
395
357
  }
396
358
 
397
359
  /**
@@ -407,22 +369,22 @@ export class Entity implements IHandle {
407
369
  /**
408
370
  * @param toggle
409
371
  */
410
- setRenderScorched(toggle: boolean): void {
372
+ set RenderScorched(toggle: boolean) {
411
373
  inv<void>('0x85B8A7534E44BC23', this.handle, toggle);
412
374
  }
413
375
 
414
376
  /**
415
377
  * @param heading
416
378
  */
417
- setHeading(heading: number): void {
379
+ set Heading(heading: number) {
418
380
  inv<void>('0xCF2B9C0645C4651B', this.handle, f(heading));
419
381
  }
420
382
 
421
383
  /**
422
384
  * @returns
423
385
  */
424
- getCollisionDisabled(): boolean {
425
- return inv<boolean>('0xAA2FADD30F45A9DA', this.handle, rai());
386
+ get CollisionDisabled(): boolean {
387
+ return !!inv<boolean>('0xAA2FADD30F45A9DA', this.handle, rai());
426
388
  }
427
389
 
428
390
  /**
@@ -431,19 +393,139 @@ export class Entity implements IHandle {
431
393
  *
432
394
  * @returns
433
395
  */
434
- getRoll(): number {
396
+ get Roll(): number {
435
397
  return inv<number>('0xBF966536FA8B6879', this.handle, raf());
436
398
  }
437
399
 
438
400
  /**
439
401
  * @returns
440
402
  */
441
- getNearestParticipantToEntity(): Player | null {
403
+ get NearestParticipantToEntity(): Player | null {
442
404
  return createFromHandle<Player>('Player', inv<number>('0x6888A43C35A5F630', this.handle, rai()));
443
405
  }
444
406
 
445
407
  /**
446
- * @param p1
408
+ * enum eCarriableState
409
+ * {
410
+ * CARRIABLE_STATE_NONE,
411
+ * CARRIABLE_STATE_TRANSITIONING_TO_HOGTIED,
412
+ * CARRIABLE_STATE_CARRIABLE_INTRO,
413
+ * CARRIABLE_STATE_CARRIABLE,
414
+ * CARRIABLE_STATE_BEING_PICKED_UP_FROM_GROUND,
415
+ * CARRIABLE_STATE_CARRIED_BY_HUMAN,
416
+ * CARRIABLE_STATE_BEING_PLACED_ON_GROUND,
417
+ * CARRIABLE_STATE_CARRIED_BY_MOUNT,
418
+ * CARRIABLE_STATE_BEING_PLACED_ON_MOUNT,
419
+ * CARRIABLE_STATE_BEING_PICKED_UP_FROM_MOUNT,
420
+ * CARRIABLE_STATE_BEING_CUT_FREE,
421
+ * CARRIABLE_STATE_BEING_PLACED_ON_GROUND_ESCAPE,
422
+ * CARRIABLE_STATE_BEING_PLACED_IN_VEHICLE
423
+ * };
424
+ *
425
+ * @returns
426
+ */
427
+ get CarriableState(): number {
428
+ return inv<number>('0x61914209C36EFDDB', this.handle, rai());
429
+ }
430
+
431
+ /**
432
+ * @param value
433
+ */
434
+ set MaxHealth(value: number) {
435
+ inv<void>('0x166E7CF68597D8B5', this.handle, value);
436
+ }
437
+
438
+ /**
439
+ * Params: p1 (probably animType) = 1, 0
440
+ *
441
+ * @param p1
442
+ * @returns
443
+ */
444
+ isPlayingAnyAnim(p1: number): boolean {
445
+ return !!inv<boolean>('0x0B7CB1300CBFE19C', this.handle, p1, rai());
446
+ }
447
+
448
+ /**
449
+ * @param enabled
450
+ */
451
+ set LightsEnabled(enabled: boolean) {
452
+ inv<void>('0xEBDC12861D079ABA', this.handle, enabled);
453
+ }
454
+
455
+ /**
456
+ * Offset values are relative to the entity. x = left/right
457
+ * y = forward/backward
458
+ * z = up/down
459
+ *
460
+ * @param offset
461
+ * @returns
462
+ */
463
+ getOffsetFromInWorldCoords(offset: Vector3): Vector3 {
464
+ return Vector3.fromArray(inv<number[]>('0x1899F328B0E12848', this.handle, f(offset.x), f(offset.y), f(offset.z), rav()));
465
+ }
466
+
467
+ /**
468
+ * Checks if entity1 is within the box defined by x/y/zSize of entity2. Last three parameters are almost always p5 = 0, p6 = 1, p7 = 0
469
+ *
470
+ * @param entity2
471
+ * @param xSize
472
+ * @param ySize
473
+ * @param zSize
474
+ * @param p5
475
+ * @param p6
476
+ * @param p7
477
+ * @returns
478
+ */
479
+ isAtEntity(entity2: Entity, xSize: number, ySize: number, zSize: number, p5: boolean, p6: boolean, p7: number): boolean {
480
+ return !!inv<boolean>('0xC057F02B837A27F6', this.handle, entity2.handle, f(xSize), f(ySize), f(zSize), p5, p6, p7, rai());
481
+ }
482
+
483
+ /**
484
+ * @param toggle
485
+ */
486
+ set Visible(toggle: boolean) {
487
+ inv<void>('0x1794B4FCC84D812F', this.handle, toggle);
488
+ }
489
+
490
+ /**
491
+ * Old name: _SET_ENTITY_CLEANUP_BY_ENGINE
492
+ *
493
+ * @param toggle
494
+ */
495
+ set ShouldFreezeWaitingOnCollision(toggle: boolean) {
496
+ inv<void>('0x740CB4F3F602C9F4', this.handle, toggle);
497
+ }
498
+
499
+ /**
500
+ * Note: this native was removed in 1232 but added back in 1311
501
+ * Old name: _GET_ENTITY_PROOFS
502
+ *
503
+ * @returns
504
+ */
505
+ get Proofs(): number {
506
+ return inv<number>('0x6CF0DAD7FA1088EA', this.handle, rai());
507
+ }
508
+
509
+ /**
510
+ * skin - everything alpha except skin
511
+ * Set entity alpha level. Ranging from 0 to 255 but changes occur after every 20 percent (after every 51).
512
+ *
513
+ * @param alphaLevel
514
+ * @param skin
515
+ */
516
+ setAlpha(alphaLevel: number, skin: boolean): void {
517
+ inv<void>('0x0DF7692B1D9E7BA7', this.handle, alphaLevel, skin);
518
+ }
519
+
520
+ /**
521
+ * @returns
522
+ */
523
+ get ThreatTier(): number {
524
+ return inv<number>('0xE12F56CB25D9CE23', this.handle, rai());
525
+ }
526
+
527
+ /**
528
+ * @param p1
447
529
  */
448
530
  N_0xA48E4801DEBDF7E4(p1: boolean): void {
449
531
  inv<void>('0xA48E4801DEBDF7E4', this.handle, p1);
@@ -471,13 +553,13 @@ export class Entity implements IHandle {
471
553
  * @returns
472
554
  */
473
555
  isInVolume(volume: number, p2: boolean, p3: number): boolean {
474
- return inv<boolean>('0x5A5526BC09C06623', this.handle, volume, p2, p3, rai());
556
+ return !!inv<boolean>('0x5A5526BC09C06623', this.handle, volume, p2, p3, rai());
475
557
  }
476
558
 
477
559
  /**
478
560
  * @returns rightVector; forwardVector; upVector; position
479
561
  */
480
- getMatrix(): [Vector3, Vector3, Vector3, Vector3] {
562
+ get Matrix(): [Vector3, Vector3, Vector3, Vector3] {
481
563
  const result = inv<[number[], number[], number[], number[]]>('0x3A9B1120AF13FBF2', this.handle, pvv(), pvv(), pvv(), pvv());
482
564
  return [Vector3.fromArray(result[0]), Vector3.fromArray(result[1]), Vector3.fromArray(result[2]), Vector3.fromArray(result[3])];
483
565
  }
@@ -519,110 +601,106 @@ export class Entity implements IHandle {
519
601
  return Vector3.fromArray(inv<number[]>('0xA86D5F069399F44D', this.handle, alive, realCoords, rav()));
520
602
  }
521
603
 
522
- /**
523
- * @returns
524
- */
525
- isAnObject(): boolean {
526
- return inv<boolean>('0x0A27A546A375FDEF', this.handle, rai());
527
- }
528
-
529
- /**
530
- * @returns
531
- */
532
- isUpsidedown(): boolean {
533
- return inv<boolean>('0x109DE3DA41AAD94A', this.handle, rai());
604
+ get Coords(): Vector3 {
605
+ return this.getCoords();
534
606
  }
535
607
 
536
608
  /**
537
- * @param p1
538
609
  * @returns
539
610
  */
540
- doesBelongToThisScript(p1: boolean): boolean {
541
- return inv<boolean>('0x622B1980CBE13332', this.handle, p1, rai());
611
+ get IsAnObject(): boolean {
612
+ return !!inv<boolean>('0x0A27A546A375FDEF', this.handle, rai());
542
613
  }
543
614
 
544
615
  /**
545
- * Returns a hash of an entity's name. (Alternative Name: _GET_ENTITY_PROMPT_NAME_HASH)
616
+ * Used in Script Function DUELING_DID_PLAYER_DISARM_OPPONENT
546
617
  *
618
+ * @param entity2
619
+ * @param p2
620
+ * @param p3
547
621
  * @returns
548
622
  */
549
- getCarriableFromEntity(): number {
550
- return (inv<number>('0x31FEF6A20F00B963', this.handle, rai())) & 0xFFFFFFFF;
623
+ N_0x3EC28DA1FFAC9DDD(entity2: Entity, p2: any, p3: any): boolean {
624
+ return !!inv<boolean>('0x3EC28DA1FFAC9DDD', this.handle, entity2.handle, p2, p3, rai());
551
625
  }
552
626
 
553
627
  /**
554
- * @param toggle
555
- * @param keepPhysics
628
+ * Must be called from a background script, otherwise it will do nothing.
556
629
  */
557
- setCollision(toggle: boolean, keepPhysics: boolean): void {
558
- inv<void>('0xF66F820909453B8C', this.handle, toggle, keepPhysics);
630
+ delete2(): void {
631
+ inv<void>('0x5E94EA09E7207C16', this.handle);
559
632
  }
560
633
 
561
634
  /**
562
635
  * @param p1
563
636
  * @returns
564
637
  */
565
- placeOnGroundProperly(p1: boolean): any {
566
- return inv<number>('0x9587913B9E772D29', this.handle, p1);
638
+ isInAir(p1: any): boolean {
639
+ return !!inv<boolean>('0x886E37EC497200B6', this.handle, p1, rai());
567
640
  }
568
641
 
569
642
  /**
570
643
  * @returns
571
644
  */
572
- isInWater(): boolean {
573
- return inv<boolean>('0xDDE5C125AC446723', this.handle, rai());
645
+ get IsAMissionEntity(): boolean {
646
+ return !!inv<boolean>('0x138190F64DB4BBD1', this.handle, rai());
574
647
  }
575
648
 
576
649
  /**
577
- * @returns Returns `true` if the entity exists
650
+ * @returns
578
651
  */
579
- doesExist(): boolean {
580
- return inv<boolean>('0xD42BD6EB2E0F1677', this.handle, rai());
652
+ get IsAttachedToAnyPed(): boolean {
653
+ return !!inv<boolean>('0xC841153DED2CA89A', this.handle, rai());
581
654
  }
582
655
 
583
656
  /**
657
+ * @param to
584
658
  * @returns
585
659
  */
586
- getAlpha(): number {
587
- return inv<number>('0x1BB501624FAF2BEA', this.handle, rai());
660
+ isAttachedToEntity(to: Entity): boolean {
661
+ return !!inv<boolean>('0x154A3C529497053E', this.handle, to.handle, rai());
588
662
  }
589
663
 
590
664
  /**
591
- * This native only works on `Ped` and `Object` entity types
592
- *
593
- * @param flagId Refer to [enum: eCarryingFlags]
594
665
  * @returns
595
666
  */
596
- getCarryingFlag(flagId: eCarryingFlags): number {
597
- return inv<number>('0x808077647856DE62', this.handle, flagId, rai());
667
+ hasBeenDamagedByAnyObject(): boolean {
668
+ return !!inv<boolean>('0x73BB763880CD23A6', this.handle, rai());
598
669
  }
599
670
 
600
671
  /**
601
- * @param p1
672
+ * @param rotationOrder
673
+ * @returns
602
674
  */
603
- forceAiAndAnimationUpdate(p1: boolean): void {
604
- inv<void>('0x4C9E96473D4F1A88', this.handle, p1);
675
+ getRotation(rotationOrder: number): Vector3 {
676
+ return Vector3.fromArray(inv<number[]>('0xE09CAF86C32CB48F', this.handle, rotationOrder, rav()));
605
677
  }
606
678
 
607
679
  /**
608
- * Axis - Invert Axis Flags
609
- *
610
- * @param pos
611
- * @param xAxis
612
- * @param yAxis
613
- * @param zAxis
680
+ * @param toggle
614
681
  */
615
- setCoordsNoOffset(pos: Vector3, xAxis: boolean, yAxis: boolean, zAxis: boolean): void {
616
- inv<void>('0x239A3351AC1DA385', this.handle, f(pos.x), f(pos.y), f(pos.z), xAxis, yAxis, zAxis);
682
+ set MotionBlur(toggle: boolean) {
683
+ inv<void>('0x516C6ABD18322B63', this.handle, toggle);
684
+ }
685
+
686
+ resetAlpha(): void {
687
+ inv<void>('0x744B9EF44779D9AB', this.handle);
617
688
  }
618
689
 
619
690
  /**
620
- * Returns (CUR_HEALTH / MAX_HEALTH)
691
+ * Checks if entity is within x/y/zSize distance of x/y/z. Last three are unknown ints, almost always p7 = 0, p8 = 1, p9 = 0
621
692
  *
693
+ * @param pos
694
+ * @param xSize
695
+ * @param ySize
696
+ * @param zSize
697
+ * @param p7
698
+ * @param p8
699
+ * @param p9
622
700
  * @returns
623
701
  */
624
- getHealthFloat(): number {
625
- return inv<number>('0x96C638784DB4C815', this.handle, raf());
702
+ isAtCoord(pos: Vector3, xSize: number, ySize: number, zSize: number, p7: boolean, p8: boolean, p9: number): boolean {
703
+ return !!inv<boolean>('0x5E58342602E94718', this.handle, f(pos.x), f(pos.y), f(pos.z), f(xSize), f(ySize), f(zSize), p7, p8, p9, rai());
626
704
  }
627
705
 
628
706
  /**
@@ -630,36 +708,36 @@ export class Entity implements IHandle {
630
708
  *
631
709
  * @param value
632
710
  */
633
- setLodDist(value: number): void {
711
+ set LodDist(value: number) {
634
712
  inv<void>('0x5FB407F0A7C877BF', this.handle, value);
635
713
  }
636
714
 
637
715
  /**
638
716
  * @param toggle
639
717
  */
640
- setDynamic(toggle: boolean): void {
718
+ set Dynamic(toggle: boolean) {
641
719
  inv<void>('0xFBFC4473F66CE344', this.handle, toggle);
642
720
  }
643
721
 
644
722
  /**
645
723
  * @param radius
646
724
  */
647
- setCustomPickupRadius(radius: number): void {
725
+ set CustomPickupRadius(radius: number) {
648
726
  inv<void>('0x482D17E45665DA44', this.handle, f(radius));
649
727
  }
650
728
 
651
729
  /**
652
730
  * @returns
653
731
  */
654
- getPopulationType(): number {
732
+ get PopulationType(): number {
655
733
  return inv<number>('0xADE28862B6D7B85B', this.handle, rai());
656
734
  }
657
735
 
658
736
  /**
659
737
  * @returns
660
738
  */
661
- isAVehicle(): boolean {
662
- return inv<boolean>('0xC3D96AF45FCCEC4C', this.handle, rai());
739
+ get IsAVehicle(): boolean {
740
+ return !!inv<boolean>('0xC3D96AF45FCCEC4C', this.handle, rai());
663
741
  }
664
742
 
665
743
  /**
@@ -687,14 +765,14 @@ export class Entity implements IHandle {
687
765
  /**
688
766
  * @param toggle
689
767
  */
690
- setCanClimbOnEntity(toggle: boolean): void {
768
+ set CanClimbOnEntity(toggle: boolean) {
691
769
  inv<void>('0x24AED2A608F93C4C', this.handle, toggle);
692
770
  }
693
771
 
694
772
  /**
695
773
  * @returns minimum; maximum
696
774
  */
697
- getWorldPositionOfDimensions(): [Vector3, Vector3] {
775
+ get WorldPositionOfDimensions(): [Vector3, Vector3] {
698
776
  const result = inv<[number[], number[]]>('0xF3FDA9A617A15145', this.handle, pvv(), pvv());
699
777
  return [Vector3.fromArray(result[0]), Vector3.fromArray(result[1])];
700
778
  }
@@ -721,647 +799,699 @@ export class Entity implements IHandle {
721
799
  * @returns
722
800
  */
723
801
  hasCollidedWithAnything(): boolean {
724
- return inv<boolean>('0xDF18751EC74F90FF', this.handle, rai());
802
+ return !!inv<boolean>('0xDF18751EC74F90FF', this.handle, rai());
725
803
  }
726
804
 
727
805
  /**
728
- * Simply returns whatever is passed to it (Regardless of whether the handle is valid or not).
729
- *
730
- * @returns
806
+ * @param entity2
807
+ * @param p2
808
+ * @param boneIndex
809
+ * @param offset
810
+ * @param p7
811
+ * @param p8
812
+ * @param p9
813
+ * @param p10
814
+ * @param p11
815
+ * @param p12
816
+ * @param p13
817
+ * @param p14
818
+ * @param p15
819
+ * @param p16
820
+ * @param p17
821
+ * @param p18
822
+ * @param p19
823
+ * @param p20
824
+ * @param p21
731
825
  */
732
- getVehicleIndexFromIndex(): Vehicle | null {
733
- return createFromHandle<Vehicle>('Vehicle', inv<number>('0xDF1E5AAC561AFC59', this.handle, rai()));
826
+ attachToEntityPhysically(entity2: Entity, p2: number, boneIndex: number, offset: Vector3, p7: number, p8: number, p9: number, p10: number, p11: number, p12: number, p13: number, p14: boolean, p15: boolean, p16: boolean, p17: boolean, p18: number, p19: boolean, p20: number, p21: number): void {
827
+ inv<void>('0xB629A43CA1643481', this.handle, entity2.handle, p2, boneIndex, f(offset.x), f(offset.y), f(offset.z), f(p7), f(p8), f(p9), f(p10), f(p11), f(p12), f(p13), p14, p15, p16, p17, p18, p19, f(p20), f(p21));
734
828
  }
735
829
 
736
830
  /**
737
831
  * @returns
738
832
  */
739
- isVisible(): boolean {
740
- return inv<boolean>('0xFFC96ECB7FA404CA', this.handle, rai());
833
+ get HeightAboveGround(): number {
834
+ return inv<number>('0x0D3B5BAEA08F63E9', this.handle, raf());
741
835
  }
742
836
 
743
837
  /**
744
- * SET_ENTITY_LO*
745
- *
746
- * @param toggle
838
+ * @param pos
839
+ * @param heading
840
+ * @param p5
841
+ * @param p6
747
842
  */
748
- N_0xFF9965C47FA404DA(toggle: boolean): void {
749
- inv<void>('0xFF9965C47FA404DA', this.handle, toggle);
843
+ setCoordsAndHeadingNoOffset(pos: Vector3, heading: number, p5: boolean, p6: boolean): void {
844
+ inv<void>('0x0918E3565C20F03C', this.handle, f(pos.x), f(pos.y), f(pos.z), f(heading), p5, p6);
750
845
  }
751
846
 
752
847
  /**
753
- * Valid indices: 0 - 3
754
- * Index 1 always returns a `hogtied` config, doesn't matter the entity.
755
- * It's for humans only and the ped must be resurrected first if it's dead.
848
+ * Creates a spherical cone at origin that extends to surface with the angle specified. Then returns true if the entity is inside the spherical cone Angle is measured in degrees.
756
849
  *
757
- * @param index
850
+ * @param originX
851
+ * @param originY
852
+ * @param originZ
853
+ * @param edgeX
854
+ * @param edgeY
855
+ * @param edgeZ
856
+ * @param angle
857
+ * @param p8
858
+ * @param p9
859
+ * @param p10
758
860
  * @returns
759
861
  */
760
- getOptimalCarryConfig(index: number): number {
761
- return (inv<number>('0x34F008A7E48C496B', this.handle, index, rai())) & 0xFFFFFFFF;
862
+ isInAngledArea(originX: number, originY: number, originZ: number, edgeX: number, edgeY: number, edgeZ: number, angle: number, p8: boolean, p9: boolean, p10: any): boolean {
863
+ return !!inv<boolean>('0xD3151E53134595E5', this.handle, f(originX), f(originY), f(originZ), f(edgeX), f(edgeY), f(edgeZ), f(angle), p8, p9, p10, rai());
762
864
  }
763
865
 
764
- setFadeIn(): void {
765
- inv<void>('0xA91E6CF94404E8C9', this.handle);
866
+ clearLastDamageEntity(): void {
867
+ inv<void>('0xBB19AC7D4DCEFD0F', this.handle);
766
868
  }
767
869
 
768
870
  /**
769
- * @returns
871
+ * @param toggle
770
872
  */
771
- hasBeenDamagedByAnyPed(): boolean {
772
- return inv<boolean>('0x9934E9C42D52D87E', this.handle, rai());
873
+ set AlwaysPrerender(toggle: boolean) {
874
+ inv<void>('0xACAD101E1FB66689', this.handle, toggle);
773
875
  }
774
876
 
775
877
  /**
776
- * @param targetEntity
777
- * @returns
878
+ * Note that the third parameter(denoted as z) is "up and down" with positive numbers encouraging upwards movement.
879
+ *
880
+ * @param pos
778
881
  */
779
- isTouchingEntity(targetEntity: Entity): boolean {
780
- return inv<boolean>('0x9A2304A64C3C8423', this.handle, targetEntity.handle, rai());
781
- }
782
-
783
- deleteCarriable(): void {
784
- inv<void>('0x0D0DB2B6AF19A987', this.handle);
882
+ set Velocity(pos: Vector3) {
883
+ inv<void>('0x1C99BB7B6E96D16F', this.handle, f(pos.x), f(pos.y), f(pos.z));
785
884
  }
786
885
 
787
886
  /**
788
- * Returns a normalized value between 0.0f and 1.0f. You can get the actual anim time by multiplying this by GET_ANIM_DURATION
887
+ * SET_ENTITY_LO*
789
888
  *
790
- * @param animDict
791
- * @param animName
792
- * @returns
889
+ * @param p1
890
+ * @param p2
891
+ * @param p3
793
892
  */
794
- getAnimCurrentTime(animDict: string | null, animName: string | null): number {
795
- return inv<number>('0x627520389E288A73', this.handle, animDict, animName, raf());
893
+ N_0xAF7F3099B9FEB535(p1: number, p2: number, p3: number): void {
894
+ inv<void>('0xAF7F3099B9FEB535', this.handle, f(p1), f(p2), f(p3));
796
895
  }
797
896
 
798
897
  /**
799
- * @param entity2
800
- * @param thisFrameOnly
898
+ * @returns
801
899
  */
802
- setNoCollisionEntity(entity2: Entity, thisFrameOnly: boolean): void {
803
- inv<void>('0xE037BF068223C38D', this.handle, entity2.handle, thisFrameOnly);
900
+ N_0xAF72EC7E1B54539B(): Entity | null {
901
+ return createFromHandle<Entity>('Entity', inv<number>('0xAF72EC7E1B54539B', this.handle, rai()));
804
902
  }
805
903
 
806
904
  /**
807
- * Result is in meters per second (m/s)
905
+ * Simply returns whatever is passed to it (Regardless of whether the handle is valid or not).
808
906
  *
809
907
  * @returns
810
908
  */
811
- getSpeed(): number {
812
- return inv<number>('0xFB6BA510A533DF81', this.handle, raf());
909
+ get ObjectIndexFromIndex(): Prop | null {
910
+ return createFromHandle<Prop>('Prop', inv<number>('0x280BBE5601EAA983', this.handle, rai()));
813
911
  }
814
912
 
815
913
  /**
816
- * @param bOnlyDamagedWhenRunningScript
914
+ * Has the entity1 got a clear line of sight to the other entity2 from the direction entity1 is facing.
915
+ *
916
+ * @param entity2
917
+ * @param traceType
918
+ * @returns
817
919
  */
818
- setCanOnlyBeDamagedByScriptParticipants(bOnlyDamagedWhenRunningScript: boolean): void {
819
- inv<void>('0xFF83AF534156B399', this.handle, bOnlyDamagedWhenRunningScript);
920
+ hasClearLosToEntityInFront(entity2: Entity, traceType: number): boolean {
921
+ return !!inv<boolean>('0xE88F19660651D566', this.handle, entity2.handle, traceType, rai());
820
922
  }
821
923
 
822
924
  /**
823
925
  * @returns
824
926
  */
825
- isTrackedVisible(): any {
826
- return inv<number>('0xC8CCDB712FBCBA92', this.handle);
927
+ get IsOnTrainTrack(): any {
928
+ return inv<number>('0x857ACB0AB4BD0D55', this.handle);
827
929
  }
828
930
 
829
931
  /**
830
- * @param p1
831
- * @param collision
932
+ * @param angle
933
+ * @returns
832
934
  */
833
- detachEntity(p1: boolean, collision: boolean): void {
834
- inv<void>('0x64CDE9D6BF8ECAD3', this.handle, p1, collision);
935
+ isUpright(angle: number): boolean {
936
+ return !!inv<boolean>('0xF6F6AFD8D4FB2658', this.handle, f(angle), rai());
835
937
  }
836
938
 
837
939
  /**
940
+ * Simply returns whatever is passed to it (Regardless of whether the handle is valid or not).
941
+ *
838
942
  * @returns
839
943
  */
840
- isVisibleToScript(): boolean {
841
- return inv<boolean>('0xF213C724E77F321A', this.handle, rai());
944
+ get VehicleIndexFromIndex(): Vehicle | null {
945
+ return createFromHandle<Vehicle>('Vehicle', inv<number>('0xDF1E5AAC561AFC59', this.handle, rai()));
842
946
  }
843
947
 
844
948
  /**
845
- * @param entity2
846
- * @param traceType
847
949
  * @returns
848
950
  */
849
- hasClearLosToEntity(entity2: Entity, traceType: number): boolean {
850
- return inv<boolean>('0xFCDFF7B72D23A1AC', this.handle, entity2.handle, traceType, rai());
951
+ get IsVisible(): boolean {
952
+ return !!inv<boolean>('0xFFC96ECB7FA404CA', this.handle, rai());
851
953
  }
852
954
 
853
955
  /**
854
- * Used in Script Function GENERIC_ITEM_HAS_ANIM_COMPLETED
855
- * *GET_ENTITY**
956
+ * SET_ENTITY_LO*
856
957
  *
857
- * @param animDict
858
- * @param animClip
958
+ * @param toggle
959
+ */
960
+ N_0xFF9965C47FA404DA(toggle: boolean): void {
961
+ inv<void>('0xFF9965C47FA404DA', this.handle, toggle);
962
+ }
963
+
964
+ /**
965
+ * Valid indices: 0 - 3
966
+ * Index 1 always returns a `hogtied` config, doesn't matter the entity.
967
+ * It's for humans only and the ped must be resurrected first if it's dead.
968
+ *
969
+ * @param index
859
970
  * @returns
860
971
  */
861
- N_0x8E46E18AA828334F(animDict: string | null, animClip: string | null): number {
862
- return inv<number>('0x8E46E18AA828334F', this.handle, animDict, animClip, raf());
972
+ getOptimalCarryConfig(index: number): number {
973
+ return (inv<number>('0x34F008A7E48C496B', this.handle, index, rai())) & 0xFFFFFFFF;
974
+ }
975
+
976
+ setFadeIn(): void {
977
+ inv<void>('0xA91E6CF94404E8C9', this.handle);
863
978
  }
864
979
 
865
980
  /**
866
- * @param playerPedToIgnore
867
- * @param flags
868
981
  * @returns
869
982
  */
870
- getNearestPlayerToEntity(playerPedToIgnore: Ped, flags: number): Player | null {
871
- return createFromHandle<Player>('Player', inv<number>('0x990E294FC387FB88', this.handle, playerPedToIgnore.handle, flags, rai()));
983
+ hasBeenDamagedByAnyPed(): boolean {
984
+ return !!inv<boolean>('0x9934E9C42D52D87E', this.handle, rai());
872
985
  }
873
986
 
874
987
  /**
875
- * Gets the Y-component of the entity's forward vector.
876
- *
988
+ * @param pos
989
+ * @param xAxis
990
+ * @param yAxis
991
+ * @param zAxis
992
+ * @param clearArea
993
+ */
994
+ setCoords(pos: Vector3, xAxis: boolean, yAxis: boolean, zAxis: boolean, clearArea: boolean): void {
995
+ inv<void>('0x06843DA7060A026B', this.handle, f(pos.x), f(pos.y), f(pos.z), xAxis, yAxis, zAxis, clearArea);
996
+ }
997
+
998
+ /**
999
+ * @param boneName
877
1000
  * @returns
878
1001
  */
879
- getForwardY(): number {
880
- return inv<number>('0x9A5C073ECBDA7EE7', this.handle, raf());
1002
+ getBoneIndexByName(boneName: string | null): number {
1003
+ return inv<number>('0xBACA8FE9C76C124E', this.handle, boneName, rai());
881
1004
  }
882
1005
 
883
1006
  /**
884
- * @param pitch
885
- * @param roll
886
- * @param yaw
887
- * @param rotationOrder
888
- * @param p5
1007
+ * @param pause
889
1008
  */
890
- setRotation(pitch: number, roll: number, yaw: number, rotationOrder: number, p5: boolean): void {
891
- inv<void>('0x9CC8314DFEDE441E', this.handle, f(pitch), f(roll), f(yaw), rotationOrder, p5);
1009
+ pauseTracking(pause: boolean): void {
1010
+ inv<void>('0x36EB4D34D4A092C5', this.handle, pause);
892
1011
  }
893
1012
 
894
1013
  /**
895
- * @param p1
896
- * @param relationshipGroup
1014
+ * @param toggle
897
1015
  */
898
- setOnlyDamagedByRelationshipGroup(p1: boolean, relationshipGroup: string | number): void {
899
- inv<void>('0x6C1F6AA2F0ADD104', this.handle, p1, _h(relationshipGroup));
1016
+ set LoadCollisionFlag(toggle: boolean) {
1017
+ inv<void>('0x9B9EE31AED48072E', this.handle, toggle);
900
1018
  }
901
1019
 
902
1020
  /**
903
- * https://github.com/femga/rdr3_discoveries/tree/master/AI/ENTITY_PROOFS
904
- * BOOL p2: handles an additional special proofs flag, so it simply indicates whether it should be enabled or disabled, not sure what exactly it proofs the entity from though
1021
+ * Changes type and quality of skins
1022
+ * type hashes: https://pastebin.com/C1WvQjCy
905
1023
  *
906
- * @param proofsBitset
907
- * @param specialFlag
1024
+ * @param type
908
1025
  */
909
- setProofs(proofsBitset: number, specialFlag: boolean): void {
910
- inv<void>('0xFAEE099C6F890BB8', this.handle, proofsBitset, specialFlag);
1026
+ set CarcassType(type: string | number) {
1027
+ inv<void>('0x399657ED871B3A6C', this.handle, _h(type));
911
1028
  }
912
1029
 
913
1030
  /**
914
- * @returns
1031
+ * @param toggle
915
1032
  */
916
- hasCollisionLoadedAroundEntity(): boolean {
917
- return inv<boolean>('0xBEB1600952B9CF5C', this.handle, rai());
1033
+ set HasGravity(toggle: boolean) {
1034
+ inv<void>('0x0CEDB728A1083FA7', this.handle, toggle);
918
1035
  }
919
1036
 
920
1037
  /**
1038
+ * @param relative
921
1039
  * @returns
922
1040
  */
923
- getIsCarriablePelt(): any {
924
- return inv<number>('0x255B6DB4E3AD3C3E', this.handle);
1041
+ getSpeedVector(relative: boolean): Vector3 {
1042
+ return Vector3.fromArray(inv<number[]>('0xF2DB09816A419DC5', this.handle, relative, rav()));
925
1043
  }
926
1044
 
927
1045
  /**
928
- * @param p1
1046
+ * @param entity2
1047
+ * @param p2
1048
+ * @param p3
929
1049
  * @returns
930
1050
  */
931
- getVelocity(p1: number): Vector3 {
932
- return Vector3.fromArray(inv<number[]>('0x4805D2B1D8CF94A9', this.handle, p1, rav()));
1051
+ hasBeenDamagedByEntity(entity2: Entity, p2: boolean, p3: boolean): boolean {
1052
+ return !!inv<boolean>('0x7B6E7BEC1143AC86', this.handle, entity2.handle, p2, p3, rai());
933
1053
  }
934
1054
 
935
1055
  /**
936
- * @param toggle
1056
+ * @returns
937
1057
  */
938
- setCanAutoVaultOnEntity(toggle: boolean): void {
939
- inv<void>('0x80646744FA88F9D7', this.handle, toggle);
1058
+ get IsFullyLooted(): any {
1059
+ return inv<number>('0x8DE41E9902E85756', this.handle);
940
1060
  }
941
1061
 
942
1062
  /**
943
- * Sets the loot table an entity will carry. Returns true if loot table has been successfully set. Returns false if entity is not a ped or object.
944
- * https://github.com/femga/rdr3_discoveries/blob/master/AI/EVENTS/loot_rewards.lua
945
- *
946
- * @param lootTable
947
1063
  * @returns
948
1064
  */
949
- scriptOverrideLootTablePermanent(lootTable: string | number): any {
950
- return inv<number>('0x8C03CD6B5E0E85E8', this.handle, _h(lootTable));
1065
+ get IsOccluded(): boolean {
1066
+ return !!inv<boolean>('0x140188E884645624', this.handle, rai());
951
1067
  }
952
1068
 
953
1069
  /**
954
- * @returns argStruct
1070
+ * @param toggle
955
1071
  */
956
- getScript(): [number, number] {
957
- const result = inv<[number, number]>('0x2A08A32B6D49906F', this.handle, pvi(), rai());
958
- return [result[0] & 0xFFFFFFFF, result[1]];
1072
+ set CanBeDamaged(toggle: boolean) {
1073
+ inv<void>('0x0D06D522B90E861F', this.handle, toggle);
959
1074
  }
960
1075
 
961
1076
  /**
962
- * @param actionHash
963
- * @returns
1077
+ * @param forceFlags
1078
+ * @param pos
1079
+ * @param offset
1080
+ * @param boneIndex
1081
+ * @param isDirectionRel
1082
+ * @param ignoreUpVec
1083
+ * @param isForceRel
1084
+ * @param p12
1085
+ * @param p13
964
1086
  */
965
- hasAnimEventFired(actionHash: string | number): boolean {
966
- return inv<boolean>('0x5851CC48405F4A07', this.handle, _h(actionHash), rai());
1087
+ applyForceToEntity(forceFlags: number, pos: Vector3, offset: Vector3, boneIndex: number, isDirectionRel: boolean, ignoreUpVec: boolean, isForceRel: boolean, p12: boolean, p13: boolean): void {
1088
+ inv<void>('0xF15E8F5D333F09C4', this.handle, forceFlags, f(pos.x), f(pos.y), f(pos.z), f(offset.x), f(offset.y), f(offset.z), boneIndex, isDirectionRel, ignoreUpVec, isForceRel, p12, p13);
967
1089
  }
968
1090
 
969
1091
  /**
970
- * @param p1
1092
+ * @returns
971
1093
  */
972
- N_0xEF259AA1E097E0AD(p1: any): void {
973
- inv<void>('0xEF259AA1E097E0AD', this.handle, p1);
1094
+ get IsDead(): boolean {
1095
+ return !!inv<boolean>('0x7D5B1F88E7504BBA', this.handle, rai());
974
1096
  }
975
1097
 
976
1098
  /**
977
- * Getter for FREEZE_ENTITY_POSITION
978
- *
1099
+ * @param pos1
1100
+ * @param pos2
1101
+ * @param p7
1102
+ * @param p8
1103
+ * @param p9
979
1104
  * @returns
980
1105
  */
981
- isFrozen(): any {
982
- return inv<number>('0x083D497D57B7400F', this.handle);
1106
+ isInArea(pos1: Vector3, pos2: Vector3, p7: boolean, p8: boolean, p9: any): boolean {
1107
+ return !!inv<boolean>('0x0C2634C40A16193E', this.handle, f(pos1.x), f(pos1.y), f(pos1.z), f(pos2.x), f(pos2.y), f(pos2.z), p7, p8, p9, rai());
983
1108
  }
984
1109
 
985
1110
  /**
986
- * Returns the entity that is looting a ped but only while the looting is active
1111
+ * Returns the coordinates of an entity-bone.
1112
+ * https://github.com/femga/rdr3_discoveries/tree/master/boneNames
987
1113
  *
1114
+ * @param boneIndex
988
1115
  * @returns
989
1116
  */
990
- getLootingPed(): Ped | null {
991
- return createFromHandle<Ped>('Ped', inv<number>('0xEF2D9ED7CE684F08', this.handle, rai()));
1117
+ getWorldPositionOfBone(boneIndex: number): Vector3 {
1118
+ return Vector3.fromArray(inv<number[]>('0x82CFA50E34681CA5', this.handle, boneIndex, rav()));
992
1119
  }
993
1120
 
994
1121
  /**
1122
+ * https://github.com/femga/rdr3_discoveries/tree/master/animations
1123
+ *
1124
+ * @param animName
1125
+ * @param animDict
1126
+ * @param p3
1127
+ * @param loop
1128
+ * @param stayInAnim
1129
+ * @param p6
1130
+ * @param delta
1131
+ * @param bitset
995
1132
  * @returns
996
1133
  */
997
- isWaitingForWorldCollision(): boolean {
998
- return inv<boolean>('0x5E1CC2E8DC3111DD', this.handle, rai());
1134
+ playAnim(animName: string | null, animDict: string | null, p3: number, loop: boolean, stayInAnim: boolean, p6: boolean, delta: number, bitset: any): boolean {
1135
+ return !!inv<boolean>('0xDC6D22FAB76D4874', this.handle, animName, animDict, f(p3), loop, stayInAnim, p6, f(delta), bitset, rai());
999
1136
  }
1000
1137
 
1001
1138
  /**
1002
- * Gets the X-component of the entity's forward vector.
1139
+ * Returns false if entity is not a ped or object.
1003
1140
  *
1004
- * @returns
1141
+ * @returns lootTable
1005
1142
  */
1006
- getForwardX(): number {
1007
- return inv<number>('0xDB0954E9960F6457', this.handle, raf());
1143
+ get ScriptOverrideLootTablePermanent(): [any, number] {
1144
+ const result = inv<[number, number]>('0x1E804EA9B12030A4', this.handle, pvi());
1145
+ return [result[0], result[1]];
1008
1146
  }
1009
1147
 
1010
1148
  /**
1149
+ * @param animDict
1150
+ * @param animName
1151
+ * @param p3
1011
1152
  * @returns
1012
1153
  */
1013
- isAPed(): boolean {
1014
- return inv<boolean>('0xCF8176912DDA4EA5', this.handle, rai());
1154
+ hasAnimFinished(animDict: string | null, animName: string | null, p3: number): boolean {
1155
+ return !!inv<boolean>('0xAEB40615337EF1E3', this.handle, animDict, animName, p3, rai());
1015
1156
  }
1016
1157
 
1017
1158
  /**
1018
- * @returns
1159
+ * @param bCanBeDamaged
1160
+ * @param relGroup
1019
1161
  */
1020
- getPitch(): number {
1021
- return inv<number>('0xEF355ABEFF7F5005', this.handle, raf());
1162
+ setCanBeDamagedByRelationshipGroup(bCanBeDamaged: boolean, relGroup: string | number): void {
1163
+ inv<void>('0x0EF1AFB18649E015', this.handle, bCanBeDamaged, _h(relGroup));
1022
1164
  }
1023
1165
 
1024
1166
  /**
1025
1167
  * @returns
1026
1168
  */
1027
- isStatic(): boolean {
1028
- return inv<boolean>('0x86468ADFA0F6B861', this.handle, rai());
1169
+ get UprightValue(): number {
1170
+ return inv<number>('0x56398BE65160C3BE', this.handle, raf());
1171
+ }
1172
+
1173
+ /**
1174
+ * @param pos
1175
+ * @param heading
1176
+ * @param xAxis
1177
+ * @param yAxis
1178
+ * @param zAxis
1179
+ */
1180
+ setCoordsAndHeading(pos: Vector3, heading: number, xAxis: boolean, yAxis: boolean, zAxis: boolean): void {
1181
+ inv<void>('0x203BEFFDBE12E96A', this.handle, f(pos.x), f(pos.y), f(pos.z), f(heading), xAxis, yAxis, zAxis);
1029
1182
  }
1030
1183
 
1031
1184
  /**
1032
- * Returns the model hash from the entity
1185
+ * Returns zero if the entity is not a carriable
1033
1186
  *
1034
1187
  * @returns
1035
1188
  */
1036
- getModel(): number {
1037
- return (inv<number>('0xDA76A9F39210D365', this.handle, rai())) & 0xFFFFFFFF;
1189
+ get CarryConfig(): number {
1190
+ return (inv<number>('0x0FD25587BB306C86', this.handle, rai())) & 0xFFFFFFFF;
1038
1191
  }
1039
1192
 
1040
1193
  /**
1041
- * Deletes the specified entity, then sets the handle pointed to by the pointer to NULL.
1194
+ * tier: https://github.com/Halen84/RDR3-Native-Flags-And-Enums/tree/main/eEntityThreatTier
1195
+ *
1196
+ * @param tier
1197
+ * @param p2
1042
1198
  */
1043
- deleteEntity(): void {
1044
- inv<void>('0x4CD38C78BD19A497', this.handle);
1199
+ setThreatTier(tier: number, p2: boolean): void {
1200
+ inv<void>('0x4B436BAC8CBE9B07', this.handle, tier, p2);
1045
1201
  }
1046
1202
 
1047
1203
  /**
1048
- * @param team
1049
- * @param playerPedToIgnore
1050
- * @param flags
1204
+ * Returns the heading of the entity in degrees. Also know as the "Yaw" of an entity.
1205
+ *
1051
1206
  * @returns
1052
1207
  */
1053
- getNearestPlayerToOnTeam(team: number, playerPedToIgnore: Ped, flags: number): Player | null {
1054
- return createFromHandle<Player>('Player', inv<number>('0xB2C30C3B4AFF718C', this.handle, team, playerPedToIgnore.handle, flags, rai()));
1208
+ get Heading(): number {
1209
+ return inv<number>('0xC230DD956E2F5507', this.handle, raf());
1055
1210
  }
1056
1211
 
1057
1212
  /**
1058
- * Seems to return true if entity is burned / scorched
1059
- * *GET_ENTITY**
1213
+ * Returns the LOD distance of an entity.
1060
1214
  *
1061
1215
  * @returns
1062
1216
  */
1063
- N_0x37B01666BAE8F7EF(): any {
1064
- return inv<number>('0x37B01666BAE8F7EF', this.handle);
1217
+ get LodDist(): number {
1218
+ return inv<number>('0xDF240D0C2A948683', this.handle, rai());
1065
1219
  }
1066
1220
 
1067
1221
  /**
1068
- * @param toggle
1222
+ * @returns
1069
1223
  */
1070
- setRequiresMoreExpensiveRiverCheck(toggle: boolean): void {
1071
- inv<void>('0x850C940EE3E7B8B5', this.handle, toggle);
1224
+ doesHaveDrawable(): boolean {
1225
+ return !!inv<boolean>('0x20487F0DA9AF164A', this.handle, rai());
1072
1226
  }
1073
1227
 
1074
1228
  /**
1075
- * @param boneIndex
1076
- * @returns Returns the offset from the entity for the selected bone index.
1229
+ * @param xyzw
1077
1230
  */
1078
- getOffsetFromBone(boneIndex: number): Vector3 {
1079
- return Vector3.fromArray(inv<number[]>('0x5E214112806591EA', this.handle, boneIndex, rav()));
1080
- }
1081
-
1082
- N_0x9C6906EF8CB20C5F(): void {
1083
- inv<void>('0x9C6906EF8CB20C5F', this.handle);
1231
+ set Quaternion(xyzw: Vector4) {
1232
+ inv<void>('0x100E7007D13E3687', this.handle, f(xyzw.x), f(xyzw.y), f(xyzw.z), f(xyzw.w));
1084
1233
  }
1085
1234
 
1086
1235
  /**
1087
- * Simply returns whatever is passed to it (Regardless of whether the handle is valid or not).
1088
- *
1089
1236
  * @returns
1090
1237
  */
1091
- getPedIndexFromIndex(): Ped | null {
1092
- return createFromHandle<Ped>('Ped', inv<number>('0x0F16D042BD640EA3', this.handle, rai()));
1238
+ get IsAttachedToAnyObject(): boolean {
1239
+ return !!inv<boolean>('0x306C1F6178F01AB3', this.handle, rai());
1093
1240
  }
1094
1241
 
1095
1242
  /**
1096
- * Sets whether the entity can be targeted without being in line-of-sight.
1243
+ * Sets a ped or an object totally invincible. It doesn't take any kind of damage. Peds will not ragdoll on explosions.
1097
1244
  *
1098
1245
  * @param toggle
1099
1246
  */
1100
- setCanBeTargetedWithoutLos(toggle: boolean): void {
1101
- inv<void>('0x6D09F32E284D0FB7', this.handle, toggle);
1102
- }
1103
-
1104
- /**
1105
- * @returns
1106
- */
1107
- isOnScreen(): boolean {
1108
- return inv<boolean>('0x613C15D5D8DB781F', this.handle, rai());
1247
+ set Invincible(toggle: boolean) {
1248
+ inv<void>('0xA5C38736C426FCB8', this.handle, toggle);
1109
1249
  }
1110
1250
 
1111
1251
  /**
1112
- * Old name: _SET_ENTITY_DECALS_DISABLED
1252
+ * Attaches entity1 to bone (boneIndex) of entity2. boneIndex - this is different to boneID, use GET_PED_BONE_INDEX to get the index from the ID. use the index for attaching to specific bones. entity1 will be attached to entity2's centre if bone index given doesn't correspond to bone indexes for that entity type.
1253
+ * https://github.com/femga/rdr3_discoveries/tree/master/boneNames useSoftPinning - if set to false attached entity will not detach when fixed
1254
+ * collision - controls collision between the two entities (FALSE disables collision).
1255
+ * isPed - pitch doesn't work when false and roll will only work on negative numbers (only peds)
1256
+ * vertexIndex - position of vertex
1257
+ * fixedRot - if false it ignores entity vector
1113
1258
  *
1114
- * @param toggle
1259
+ * @param entity2
1260
+ * @param boneIndex
1261
+ * @param pos
1262
+ * @param rot
1263
+ * @param p9
1264
+ * @param useSoftPinning
1265
+ * @param collision
1266
+ * @param isPed
1267
+ * @param vertexIndex
1268
+ * @param fixedRot
1269
+ * @param p15
1270
+ * @param p16
1115
1271
  */
1116
- setNoweapondecals(toggle: boolean): void {
1117
- inv<void>('0xC64E597783BE9A1D', this.handle, toggle);
1272
+ attachToEntity(entity2: Entity, boneIndex: number, pos: Vector3, rot: Vector3, p9: boolean, useSoftPinning: boolean, collision: boolean, isPed: boolean, vertexIndex: number, fixedRot: boolean, p15: boolean, p16: boolean): void {
1273
+ inv<void>('0x6B9BBD38AB0796DF', this.handle, entity2.handle, boneIndex, f(pos.x), f(pos.y), f(pos.z), f(rot.x), f(rot.y), f(rot.z), p9, useSoftPinning, collision, isPed, vertexIndex, fixedRot, p15, p16);
1118
1274
  }
1119
1275
 
1120
1276
  /**
1121
1277
  * @returns
1122
1278
  */
1123
- getHealth(): number {
1124
- return inv<number>('0x82368787EA73C0F7', this.handle, rai());
1279
+ get IsAnimal(): any {
1280
+ return inv<number>('0x9A100F1CF4546629', this.handle);
1125
1281
  }
1126
1282
 
1127
1283
  /**
1128
- * sets the fill in state for some objects like for the stew, coffee mug ,poker chips, jugs ? P1 is either 0 or 2 p2 seems to be a label/name p3 is the fill in state, max seems to be for some 3.0 (most is 1.0) - 0.0
1129
- * heres some of the labels/names found
1130
- * tumbler_fill, Canvas, Stew_Fill, from Chip01_Ctrl to Chip10_Ctrl, from empty_jug01_Ctrl to empty_jug20_Ctrl, from full_jug01_Ctrl to full_jug20_Ctrl, CTRL_cupFill, Food_DOF_Fill, from WhiteChip_Ctrl_0 to WhiteChip_Ctrl_10, from BlueChip_Ctrl_0 to BlueChip_Ctrl_10, from BlackChip_Ctrl_0 to BlackChip_Ctrl_10, from RedChip_Ctrl_0 to RedChip_Ctrl_10,
1284
+ * p6/relative - makes the xyz force not relative to world coords, but to something else
1285
+ * p7/highForce - setting false will make the force really low
1131
1286
  *
1132
- * @param p1
1133
- * @param p2
1134
- * @param fill
1287
+ * @param forceType
1288
+ * @param pos
1289
+ * @param component
1290
+ * @param isDirectionRel
1291
+ * @param isForceRel
1292
+ * @param p8
1135
1293
  */
1136
- setFillInStateForEntity(p1: number, p2: string | null, fill: number): void {
1137
- inv<void>('0x669655FFB29EF1A9', this.handle, p1, p2, f(fill));
1294
+ applyForceToCenterOfMass(forceType: number, pos: Vector3, component: number, isDirectionRel: boolean, isForceRel: boolean, p8: boolean): void {
1295
+ inv<void>('0x31DA7CEC5334DB37', this.handle, forceType, f(pos.x), f(pos.y), f(pos.z), component, isDirectionRel, isForceRel, p8);
1138
1296
  }
1139
1297
 
1140
1298
  /**
1299
+ * Old name: _GET_ENTITY_CAN_BE_DAMAGED
1300
+ *
1141
1301
  * @returns
1142
1302
  */
1143
- doesHavePhysics(): boolean {
1144
- return inv<boolean>('0xA512B3F1B2A0B51C', this.handle, rai());
1303
+ get CanBeDamaged(): any {
1304
+ return inv<number>('0x75DF9E73F2F005FD', this.handle);
1145
1305
  }
1146
1306
 
1147
1307
  /**
1148
- * Returns true if calling script owns specified entity
1308
+ * Seems to return true if entity is burned / scorched
1309
+ * *GET_ENTITY**
1149
1310
  *
1150
1311
  * @returns
1151
1312
  */
1152
- doesThreadOwnThisEntity(): any {
1153
- return inv<number>('0x88AD6CC10D8D35B2', this.handle);
1313
+ N_0x37B01666BAE8F7EF(): any {
1314
+ return inv<number>('0x37B01666BAE8F7EF', this.handle);
1154
1315
  }
1155
1316
 
1156
1317
  /**
1157
- * Attach an entity to coordinates physically better name may be perfered? seems to be used with boats `p_skiff02x` ? The last 6 params are always 0 everywhere in the base code. p7 = 500.0 some kind of time? p8 =1
1158
- *
1159
- * @param pos
1160
- * @param offset
1161
- * @param p7
1162
- * @param p8
1163
- * @param p9
1164
- * @param p10
1165
- * @param p11
1166
- * @param p12
1167
- * @param p13
1168
- * @param p14
1318
+ * @param toggle
1169
1319
  */
1170
- attachToCoordsPhysically(pos: Vector3, offset: Vector3, p7: number, p8: boolean, p9: number, p10: number, p11: number, p12: number, p13: number, p14: number): void {
1171
- inv<void>('0x445D7D8EA66E373E', this.handle, f(pos.x), f(pos.y), f(pos.z), f(offset.x), f(offset.y), f(offset.z), f(p7), p8, p9, p10, p11, p12, p13, p14);
1320
+ set RequiresMoreExpensiveRiverCheck(toggle: boolean) {
1321
+ inv<void>('0x850C940EE3E7B8B5', this.handle, toggle);
1172
1322
  }
1173
1323
 
1174
1324
  /**
1175
- * *REMOVE_DECALS** - _REMOVE_FORCED*
1325
+ * @param boneIndex
1326
+ * @returns Returns the offset from the entity for the selected bone index.
1176
1327
  */
1177
- N_0x5826EFD6D73C4DE5(): void {
1178
- inv<void>('0x5826EFD6D73C4DE5', this.handle);
1328
+ getOffsetFromBone(boneIndex: number): Vector3 {
1329
+ return Vector3.fromArray(inv<number[]>('0x5E214112806591EA', this.handle, boneIndex, rav()));
1179
1330
  }
1180
1331
 
1181
- /**
1182
- * @param toggle
1183
- */
1184
- freezePosition(toggle: boolean): void {
1185
- inv<void>('0x7D9EFB7AD6B19754', this.handle, toggle);
1332
+ N_0x9C6906EF8CB20C5F(): void {
1333
+ inv<void>('0x9C6906EF8CB20C5F', this.handle);
1186
1334
  }
1187
1335
 
1188
1336
  /**
1189
- * Alters entity's health by 'amount'. Can be negative (to drain health).
1190
- * In the scripts entity2 and weaponHash are unused (zero).
1337
+ * Simply returns whatever is passed to it (Regardless of whether the handle is valid or not).
1191
1338
  *
1192
- * @param amount
1193
- * @param entity2
1194
- * @param weaponHash Refer to [enum: eWeaponHash]
1195
1339
  * @returns
1196
1340
  */
1197
- changeHealth(amount: number, entity2: Entity, weaponHash: eWeaponHash): any {
1198
- return inv<number>('0x835F131E7DC8F97A', this.handle, f(amount), entity2.handle, weaponHash);
1341
+ get PedIndexFromIndex(): Ped | null {
1342
+ return createFromHandle<Ped>('Ped', inv<number>('0x0F16D042BD640EA3', this.handle, rai()));
1199
1343
  }
1200
1344
 
1201
1345
  /**
1202
- * @returns
1346
+ * Sets whether the entity can be targeted without being in line-of-sight.
1347
+ *
1348
+ * @param toggle
1203
1349
  */
1204
- getAttachedTo(): Entity | null {
1205
- return createFromHandle<Entity>('Entity', inv<number>('0x56D713888A566481', this.handle, rai()));
1350
+ set CanBeTargetedWithoutLos(toggle: boolean) {
1351
+ inv<void>('0x6D09F32E284D0FB7', this.handle, toggle);
1206
1352
  }
1207
1353
 
1208
1354
  /**
1209
- * @param toggle
1355
+ * @returns
1210
1356
  */
1211
- setOnlyDamagedByPlayer(toggle: boolean): void {
1212
- inv<void>('0x473598683095D430', this.handle, toggle);
1357
+ get IsOnScreen(): boolean {
1358
+ return !!inv<boolean>('0x613C15D5D8DB781F', this.handle, rai());
1213
1359
  }
1214
1360
 
1215
1361
  /**
1216
- * @param p1
1217
- * @param p2
1362
+ * Old name: _SET_ENTITY_DECALS_DISABLED
1363
+ *
1364
+ * @param toggle
1218
1365
  */
1219
- setIsTargetPriority(p1: boolean, p2: number): void {
1220
- inv<void>('0x0A5D170C44CB2189', this.handle, p1, f(p2));
1366
+ set Noweapondecals(toggle: boolean) {
1367
+ inv<void>('0xC64E597783BE9A1D', this.handle, toggle);
1221
1368
  }
1222
1369
 
1223
1370
  /**
1224
- * @param pos
1225
- * @param flags
1226
1371
  * @returns
1227
1372
  */
1228
- hasClearLosToCoord(pos: Vector3, flags: number): any {
1229
- return inv<number>('0x0C9DBF48C6BA6E4C', this.handle, f(pos.x), f(pos.y), f(pos.z), flags);
1373
+ get Health(): number {
1374
+ return inv<number>('0x82368787EA73C0F7', this.handle, rai());
1230
1375
  }
1231
1376
 
1232
1377
  /**
1233
- * @param flagId Refer to [enum: eCarryingFlags]
1234
- * @param value
1378
+ * sets the fill in state for some objects like for the stew, coffee mug ,poker chips, jugs ? P1 is either 0 or 2 p2 seems to be a label/name p3 is the fill in state, max seems to be for some 3.0 (most is 1.0) - 0.0
1379
+ * heres some of the labels/names found
1380
+ * tumbler_fill, Canvas, Stew_Fill, from Chip01_Ctrl to Chip10_Ctrl, from empty_jug01_Ctrl to empty_jug20_Ctrl, from full_jug01_Ctrl to full_jug20_Ctrl, CTRL_cupFill, Food_DOF_Fill, from WhiteChip_Ctrl_0 to WhiteChip_Ctrl_10, from BlueChip_Ctrl_0 to BlueChip_Ctrl_10, from BlackChip_Ctrl_0 to BlackChip_Ctrl_10, from RedChip_Ctrl_0 to RedChip_Ctrl_10,
1381
+ *
1382
+ * @param p1
1383
+ * @param p2
1384
+ * @param fill
1235
1385
  */
1236
- setCarryingFlag(flagId: eCarryingFlags, value: boolean): void {
1237
- inv<void>('0x18FF3110CF47115D', this.handle, flagId, value);
1386
+ setFillInStateForEntity(p1: number, p2: string | null, fill: number): void {
1387
+ inv<void>('0x669655FFB29EF1A9', this.handle, p1, p2, f(fill));
1238
1388
  }
1239
1389
 
1240
1390
  /**
1241
1391
  * @returns
1242
1392
  */
1243
- getIsPredator(): any {
1244
- return inv<number>('0x5594AFE9DE0C01B7', this.handle);
1393
+ doesHavePhysics(): boolean {
1394
+ return !!inv<boolean>('0xA512B3F1B2A0B51C', this.handle, rai());
1245
1395
  }
1246
1396
 
1247
1397
  /**
1248
- * enum eCarriableState
1249
- * {
1250
- * CARRIABLE_STATE_NONE,
1251
- * CARRIABLE_STATE_TRANSITIONING_TO_HOGTIED,
1252
- * CARRIABLE_STATE_CARRIABLE_INTRO,
1253
- * CARRIABLE_STATE_CARRIABLE,
1254
- * CARRIABLE_STATE_BEING_PICKED_UP_FROM_GROUND,
1255
- * CARRIABLE_STATE_CARRIED_BY_HUMAN,
1256
- * CARRIABLE_STATE_BEING_PLACED_ON_GROUND,
1257
- * CARRIABLE_STATE_CARRIED_BY_MOUNT,
1258
- * CARRIABLE_STATE_BEING_PLACED_ON_MOUNT,
1259
- * CARRIABLE_STATE_BEING_PICKED_UP_FROM_MOUNT,
1260
- * CARRIABLE_STATE_BEING_CUT_FREE,
1261
- * CARRIABLE_STATE_BEING_PLACED_ON_GROUND_ESCAPE,
1262
- * CARRIABLE_STATE_BEING_PLACED_IN_VEHICLE
1263
- * };
1398
+ * Returns true if calling script owns specified entity
1264
1399
  *
1265
1400
  * @returns
1266
1401
  */
1267
- getCarriableState(): number {
1268
- return inv<number>('0x61914209C36EFDDB', this.handle, rai());
1402
+ doesThreadOwnThisEntity(): any {
1403
+ return inv<number>('0x88AD6CC10D8D35B2', this.handle);
1269
1404
  }
1270
1405
 
1271
1406
  /**
1272
- * @param value
1407
+ * Attach an entity to coordinates physically better name may be perfered? seems to be used with boats `p_skiff02x` ? The last 6 params are always 0 everywhere in the base code. p7 = 500.0 some kind of time? p8 =1
1408
+ *
1409
+ * @param pos
1410
+ * @param offset
1411
+ * @param p7
1412
+ * @param p8
1413
+ * @param p9
1414
+ * @param p10
1415
+ * @param p11
1416
+ * @param p12
1417
+ * @param p13
1418
+ * @param p14
1273
1419
  */
1274
- setMaxHealth(value: number): void {
1275
- inv<void>('0x166E7CF68597D8B5', this.handle, value);
1420
+ attachToCoordsPhysically(pos: Vector3, offset: Vector3, p7: number, p8: boolean, p9: number, p10: number, p11: number, p12: number, p13: number, p14: number): void {
1421
+ inv<void>('0x445D7D8EA66E373E', this.handle, f(pos.x), f(pos.y), f(pos.z), f(offset.x), f(offset.y), f(offset.z), f(p7), p8, p9, p10, p11, p12, p13, p14);
1276
1422
  }
1277
1423
 
1278
1424
  /**
1279
- * Params: p1 (probably animType) = 1, 0
1280
- *
1281
- * @param p1
1282
- * @returns
1425
+ * *REMOVE_DECALS** - _REMOVE_FORCED*
1283
1426
  */
1284
- isPlayingAnyAnim(p1: number): boolean {
1285
- return inv<boolean>('0x0B7CB1300CBFE19C', this.handle, p1, rai());
1427
+ N_0x5826EFD6D73C4DE5(): void {
1428
+ inv<void>('0x5826EFD6D73C4DE5', this.handle);
1286
1429
  }
1287
1430
 
1288
1431
  /**
1289
- * @param enabled
1432
+ * @param toggle
1290
1433
  */
1291
- setLightsEnabled(enabled: boolean): void {
1292
- inv<void>('0xEBDC12861D079ABA', this.handle, enabled);
1434
+ freezePosition(toggle: boolean): void {
1435
+ inv<void>('0x7D9EFB7AD6B19754', this.handle, toggle);
1293
1436
  }
1294
1437
 
1295
1438
  /**
1296
- * Offset values are relative to the entity. x = left/right
1297
- * y = forward/backward
1298
- * z = up/down
1439
+ * Alters entity's health by 'amount'. Can be negative (to drain health).
1440
+ * In the scripts entity2 and weaponHash are unused (zero).
1299
1441
  *
1300
- * @param offset
1442
+ * @param amount
1443
+ * @param entity2
1444
+ * @param weaponHash Refer to [enum: eWeaponHash]
1301
1445
  * @returns
1302
1446
  */
1303
- getOffsetFromInWorldCoords(offset: Vector3): Vector3 {
1304
- return Vector3.fromArray(inv<number[]>('0x1899F328B0E12848', this.handle, f(offset.x), f(offset.y), f(offset.z), rav()));
1447
+ changeHealth(amount: number, entity2: Entity, weaponHash: eWeaponHash): any {
1448
+ return inv<number>('0x835F131E7DC8F97A', this.handle, f(amount), entity2.handle, weaponHash);
1305
1449
  }
1306
1450
 
1307
1451
  /**
1308
- * Checks if entity1 is within the box defined by x/y/zSize of entity2. Last three parameters are almost always p5 = 0, p6 = 1, p7 = 0
1309
- *
1310
- * @param entity2
1311
- * @param xSize
1312
- * @param ySize
1313
- * @param zSize
1314
- * @param p5
1315
- * @param p6
1316
- * @param p7
1317
1452
  * @returns
1318
1453
  */
1319
- isAtEntity(entity2: Entity, xSize: number, ySize: number, zSize: number, p5: boolean, p6: boolean, p7: number): boolean {
1320
- return inv<boolean>('0xC057F02B837A27F6', this.handle, entity2.handle, f(xSize), f(ySize), f(zSize), p5, p6, p7, rai());
1454
+ get AttachedTo(): Entity | null {
1455
+ return createFromHandle<Entity>('Entity', inv<number>('0x56D713888A566481', this.handle, rai()));
1321
1456
  }
1322
1457
 
1323
1458
  /**
1324
1459
  * @param toggle
1325
1460
  */
1326
- setVisible(toggle: boolean): void {
1327
- inv<void>('0x1794B4FCC84D812F', this.handle, toggle);
1461
+ set OnlyDamagedByPlayer(toggle: boolean) {
1462
+ inv<void>('0x473598683095D430', this.handle, toggle);
1328
1463
  }
1329
1464
 
1330
1465
  /**
1331
- * Old name: _SET_ENTITY_CLEANUP_BY_ENGINE
1332
- *
1333
- * @param toggle
1466
+ * @param p1
1467
+ * @param p2
1334
1468
  */
1335
- setShouldFreezeWaitingOnCollision(toggle: boolean): void {
1336
- inv<void>('0x740CB4F3F602C9F4', this.handle, toggle);
1469
+ setIsTargetPriority(p1: boolean, p2: number): void {
1470
+ inv<void>('0x0A5D170C44CB2189', this.handle, p1, f(p2));
1337
1471
  }
1338
1472
 
1339
1473
  /**
1340
- * Note: this native was removed in 1232 but added back in 1311
1341
- * Old name: _GET_ENTITY_PROOFS
1342
- *
1474
+ * @param pos
1475
+ * @param flags
1343
1476
  * @returns
1344
1477
  */
1345
- getProofs(): number {
1346
- return inv<number>('0x6CF0DAD7FA1088EA', this.handle, rai());
1478
+ hasClearLosToCoord(pos: Vector3, flags: number): any {
1479
+ return inv<number>('0x0C9DBF48C6BA6E4C', this.handle, f(pos.x), f(pos.y), f(pos.z), flags);
1347
1480
  }
1348
1481
 
1349
1482
  /**
1350
- * skin - everything alpha except skin
1351
- * Set entity alpha level. Ranging from 0 to 255 but changes occur after every 20 percent (after every 51).
1352
- *
1353
- * @param alphaLevel
1354
- * @param skin
1483
+ * @param flagId Refer to [enum: eCarryingFlags]
1484
+ * @param value
1355
1485
  */
1356
- setAlpha(alphaLevel: number, skin: boolean): void {
1357
- inv<void>('0x0DF7692B1D9E7BA7', this.handle, alphaLevel, skin);
1486
+ setCarryingFlag(flagId: eCarryingFlags, value: boolean): void {
1487
+ inv<void>('0x18FF3110CF47115D', this.handle, flagId, value);
1358
1488
  }
1359
1489
 
1360
1490
  /**
1361
1491
  * @returns
1362
1492
  */
1363
- getThreatTier(): number {
1364
- return inv<number>('0xE12F56CB25D9CE23', this.handle, rai());
1493
+ get IsPredator(): any {
1494
+ return inv<number>('0x5594AFE9DE0C01B7', this.handle);
1365
1495
  }
1366
1496
 
1367
1497
  /**
@@ -1369,14 +1499,14 @@ export class Entity implements IHandle {
1369
1499
  *
1370
1500
  * @returns
1371
1501
  */
1372
- getType(): number {
1502
+ get Type(): number {
1373
1503
  return inv<number>('0x97F696ACA466B4E0', this.handle, rai());
1374
1504
  }
1375
1505
 
1376
1506
  /**
1377
1507
  * @returns
1378
1508
  */
1379
- isOwnedByPersistenceSystem(): any {
1509
+ get IsOwnedByPersistenceSystem(): any {
1380
1510
  return inv<number>('0xA7E51B53309EAC97', this.handle);
1381
1511
  }
1382
1512
 
@@ -1387,7 +1517,7 @@ export class Entity implements IHandle {
1387
1517
  * @returns
1388
1518
  */
1389
1519
  isPlayingAnim(animDict: string | null, animName: string | null, animType: number): boolean {
1390
- return inv<boolean>('0xDEE49D5CA6C49148', this.handle, animDict, animName, animType, rai());
1520
+ return !!inv<boolean>('0xDEE49D5CA6C49148', this.handle, animDict, animName, animType, rai());
1391
1521
  }
1392
1522
 
1393
1523
  /**
@@ -1401,7 +1531,7 @@ export class Entity implements IHandle {
1401
1531
  * @returns
1402
1532
  */
1403
1533
  hasBeenDamagedByAnyVehicle(): boolean {
1404
- return inv<boolean>('0x695D7C26DE65C423', this.handle, rai());
1534
+ return !!inv<boolean>('0x695D7C26DE65C423', this.handle, rai());
1405
1535
  }
1406
1536
 
1407
1537
  /**
@@ -1422,15 +1552,15 @@ export class Entity implements IHandle {
1422
1552
  *
1423
1553
  * @returns
1424
1554
  */
1425
- getSubmergedLevel(): number {
1555
+ get SubmergedLevel(): number {
1426
1556
  return inv<number>('0x4A77C3F73FD9E831', this.handle, raf());
1427
1557
  }
1428
1558
 
1429
1559
  /**
1430
1560
  * @returns
1431
1561
  */
1432
- isAttached(): boolean {
1433
- return inv<boolean>('0xEE6AD63ABF59C0B7', this.handle, rai());
1562
+ get IsAttached(): boolean {
1563
+ return !!inv<boolean>('0xEE6AD63ABF59C0B7', this.handle, rai());
1434
1564
  }
1435
1565
 
1436
1566
  /**
@@ -1445,242 +1575,123 @@ export class Entity implements IHandle {
1445
1575
  /**
1446
1576
  * @param looted
1447
1577
  */
1448
- setFullyLooted(looted: boolean): void {
1578
+ set FullyLooted(looted: boolean) {
1449
1579
  inv<void>('0x6BCF5F3D8FFE988D', this.handle, looted);
1450
1580
  }
1451
1581
 
1452
1582
  /**
1453
1583
  * @returns
1454
1584
  */
1455
- isAttachedToAnyVehicle(): boolean {
1456
- return inv<boolean>('0x12DF6E0D2E736749', this.handle, rai());
1585
+ get IsAttachedToAnyVehicle(): boolean {
1586
+ return !!inv<boolean>('0x12DF6E0D2E736749', this.handle, rai());
1457
1587
  }
1458
1588
 
1459
1589
  /**
1460
- * Used in Script Function DUELING_DID_PLAYER_DISARM_OPPONENT
1461
- *
1462
- * @param entity2
1463
- * @param p2
1464
- * @param p3
1465
1590
  * @returns
1466
1591
  */
1467
- N_0x3EC28DA1FFAC9DDD(entity2: Entity, p2: any, p3: any): boolean {
1468
- return inv<boolean>('0x3EC28DA1FFAC9DDD', this.handle, entity2.handle, p2, p3, rai());
1469
- }
1470
-
1471
- /**
1472
- * Must be called from a background script, otherwise it will do nothing.
1473
- */
1474
- delete2(): void {
1475
- inv<void>('0x5E94EA09E7207C16', this.handle);
1592
+ get IsUpsidedown(): boolean {
1593
+ return !!inv<boolean>('0x109DE3DA41AAD94A', this.handle, rai());
1476
1594
  }
1477
1595
 
1478
1596
  /**
1479
1597
  * @param p1
1480
1598
  * @returns
1481
1599
  */
1482
- isInAir(p1: any): boolean {
1483
- return inv<boolean>('0x886E37EC497200B6', this.handle, p1, rai());
1484
- }
1485
-
1486
- /**
1487
- * @returns
1488
- */
1489
- isAMissionEntity(): boolean {
1490
- return inv<boolean>('0x138190F64DB4BBD1', this.handle, rai());
1491
- }
1492
-
1493
- /**
1494
- * @returns
1495
- */
1496
- isAttachedToAnyPed(): boolean {
1497
- return inv<boolean>('0xC841153DED2CA89A', this.handle, rai());
1498
- }
1499
-
1500
- /**
1501
- * @param to
1502
- * @returns
1503
- */
1504
- isAttachedToEntity(to: Entity): boolean {
1505
- return inv<boolean>('0x154A3C529497053E', this.handle, to.handle, rai());
1506
- }
1507
-
1508
- /**
1509
- * @returns
1510
- */
1511
- hasBeenDamagedByAnyObject(): boolean {
1512
- return inv<boolean>('0x73BB763880CD23A6', this.handle, rai());
1600
+ doesBelongToThisScript(p1: boolean): boolean {
1601
+ return !!inv<boolean>('0x622B1980CBE13332', this.handle, p1, rai());
1513
1602
  }
1514
1603
 
1515
1604
  /**
1516
- * @param rotationOrder
1605
+ * Returns a hash of an entity's name. (Alternative Name: _GET_ENTITY_PROMPT_NAME_HASH)
1606
+ *
1517
1607
  * @returns
1518
1608
  */
1519
- getRotation(rotationOrder: number): Vector3 {
1520
- return Vector3.fromArray(inv<number[]>('0xE09CAF86C32CB48F', this.handle, rotationOrder, rav()));
1609
+ get CarriableFromEntity(): number {
1610
+ return (inv<number>('0x31FEF6A20F00B963', this.handle, rai())) & 0xFFFFFFFF;
1521
1611
  }
1522
1612
 
1523
1613
  /**
1524
1614
  * @param toggle
1615
+ * @param keepPhysics
1525
1616
  */
1526
- setMotionBlur(toggle: boolean): void {
1527
- inv<void>('0x516C6ABD18322B63', this.handle, toggle);
1528
- }
1529
-
1530
- resetAlpha(): void {
1531
- inv<void>('0x744B9EF44779D9AB', this.handle);
1617
+ setCollision(toggle: boolean, keepPhysics: boolean): void {
1618
+ inv<void>('0xF66F820909453B8C', this.handle, toggle, keepPhysics);
1532
1619
  }
1533
1620
 
1534
1621
  /**
1535
- * Checks if entity is within x/y/zSize distance of x/y/z. Last three are unknown ints, almost always p7 = 0, p8 = 1, p9 = 0
1536
- *
1537
- * @param pos
1538
- * @param xSize
1539
- * @param ySize
1540
- * @param zSize
1541
- * @param p7
1542
- * @param p8
1543
- * @param p9
1622
+ * @param p1
1544
1623
  * @returns
1545
1624
  */
1546
- isAtCoord(pos: Vector3, xSize: number, ySize: number, zSize: number, p7: boolean, p8: boolean, p9: number): boolean {
1547
- return inv<boolean>('0x5E58342602E94718', this.handle, f(pos.x), f(pos.y), f(pos.z), f(xSize), f(ySize), f(zSize), p7, p8, p9, rai());
1548
- }
1549
-
1550
- /**
1551
- * @param entity2
1552
- * @param p2
1553
- * @param boneIndex
1554
- * @param offset
1555
- * @param p7
1556
- * @param p8
1557
- * @param p9
1558
- * @param p10
1559
- * @param p11
1560
- * @param p12
1561
- * @param p13
1562
- * @param p14
1563
- * @param p15
1564
- * @param p16
1565
- * @param p17
1566
- * @param p18
1567
- * @param p19
1568
- * @param p20
1569
- * @param p21
1570
- */
1571
- attachToEntityPhysically(entity2: Entity, p2: number, boneIndex: number, offset: Vector3, p7: number, p8: number, p9: number, p10: number, p11: number, p12: number, p13: number, p14: boolean, p15: boolean, p16: boolean, p17: boolean, p18: number, p19: boolean, p20: number, p21: number): void {
1572
- inv<void>('0xB629A43CA1643481', this.handle, entity2.handle, p2, boneIndex, f(offset.x), f(offset.y), f(offset.z), f(p7), f(p8), f(p9), f(p10), f(p11), f(p12), f(p13), p14, p15, p16, p17, p18, p19, f(p20), f(p21));
1625
+ placeOnGroundProperly(p1: boolean): any {
1626
+ return inv<number>('0x9587913B9E772D29', this.handle, p1);
1573
1627
  }
1574
1628
 
1575
1629
  /**
1576
1630
  * @returns
1577
1631
  */
1578
- getHeightAboveGround(): number {
1579
- return inv<number>('0x0D3B5BAEA08F63E9', this.handle, raf());
1632
+ get IsInWater(): boolean {
1633
+ return !!inv<boolean>('0xDDE5C125AC446723', this.handle, rai());
1580
1634
  }
1581
1635
 
1582
1636
  /**
1583
- * @param pos
1584
- * @param heading
1585
- * @param p5
1586
- * @param p6
1637
+ * @returns Returns `true` if the entity exists
1587
1638
  */
1588
- setCoordsAndHeadingNoOffset(pos: Vector3, heading: number, p5: boolean, p6: boolean): void {
1589
- inv<void>('0x0918E3565C20F03C', this.handle, f(pos.x), f(pos.y), f(pos.z), f(heading), p5, p6);
1639
+ doesExist(): boolean {
1640
+ return !!inv<boolean>('0xD42BD6EB2E0F1677', this.handle, rai());
1590
1641
  }
1591
1642
 
1592
1643
  /**
1593
- * Creates a spherical cone at origin that extends to surface with the angle specified. Then returns true if the entity is inside the spherical cone Angle is measured in degrees.
1594
- *
1595
- * @param originX
1596
- * @param originY
1597
- * @param originZ
1598
- * @param edgeX
1599
- * @param edgeY
1600
- * @param edgeZ
1601
- * @param angle
1602
- * @param p8
1603
- * @param p9
1604
- * @param p10
1605
1644
  * @returns
1606
1645
  */
1607
- isInAngledArea(originX: number, originY: number, originZ: number, edgeX: number, edgeY: number, edgeZ: number, angle: number, p8: boolean, p9: boolean, p10: any): boolean {
1608
- return inv<boolean>('0xD3151E53134595E5', this.handle, f(originX), f(originY), f(originZ), f(edgeX), f(edgeY), f(edgeZ), f(angle), p8, p9, p10, rai());
1609
- }
1610
-
1611
- clearLastDamageEntity(): void {
1612
- inv<void>('0xBB19AC7D4DCEFD0F', this.handle);
1613
- }
1614
-
1615
- /**
1616
- * @param toggle
1617
- */
1618
- setAlwaysPrerender(toggle: boolean): void {
1619
- inv<void>('0xACAD101E1FB66689', this.handle, toggle);
1646
+ get Alpha(): number {
1647
+ return inv<number>('0x1BB501624FAF2BEA', this.handle, rai());
1620
1648
  }
1621
1649
 
1622
1650
  /**
1623
- * Note that the third parameter(denoted as z) is "up and down" with positive numbers encouraging upwards movement.
1651
+ * This native only works on `Ped` and `Object` entity types
1624
1652
  *
1625
- * @param pos
1653
+ * @param flagId Refer to [enum: eCarryingFlags]
1654
+ * @returns
1626
1655
  */
1627
- setVelocity(pos: Vector3): void {
1628
- inv<void>('0x1C99BB7B6E96D16F', this.handle, f(pos.x), f(pos.y), f(pos.z));
1656
+ getCarryingFlag(flagId: eCarryingFlags): number {
1657
+ return inv<number>('0x808077647856DE62', this.handle, flagId, rai());
1629
1658
  }
1630
1659
 
1631
1660
  /**
1632
- * SET_ENTITY_LO*
1633
- *
1634
1661
  * @param p1
1635
- * @param p2
1636
- * @param p3
1637
- */
1638
- N_0xAF7F3099B9FEB535(p1: number, p2: number, p3: number): void {
1639
- inv<void>('0xAF7F3099B9FEB535', this.handle, f(p1), f(p2), f(p3));
1640
- }
1641
-
1642
- /**
1643
- * @returns
1644
1662
  */
1645
- N_0xAF72EC7E1B54539B(): Entity | null {
1646
- return createFromHandle<Entity>('Entity', inv<number>('0xAF72EC7E1B54539B', this.handle, rai()));
1663
+ forceAiAndAnimationUpdate(p1: boolean): void {
1664
+ inv<void>('0x4C9E96473D4F1A88', this.handle, p1);
1647
1665
  }
1648
1666
 
1649
1667
  /**
1650
- * Simply returns whatever is passed to it (Regardless of whether the handle is valid or not).
1668
+ * Axis - Invert Axis Flags
1651
1669
  *
1652
- * @returns
1670
+ * @param pos
1671
+ * @param xAxis
1672
+ * @param yAxis
1673
+ * @param zAxis
1653
1674
  */
1654
- getObjectIndexFromIndex(): Prop | null {
1655
- return createFromHandle<Prop>('Prop', inv<number>('0x280BBE5601EAA983', this.handle, rai()));
1675
+ setCoordsNoOffset(pos: Vector3, xAxis: boolean, yAxis: boolean, zAxis: boolean): void {
1676
+ inv<void>('0x239A3351AC1DA385', this.handle, f(pos.x), f(pos.y), f(pos.z), xAxis, yAxis, zAxis);
1656
1677
  }
1657
1678
 
1658
1679
  /**
1659
- * Has the entity1 got a clear line of sight to the other entity2 from the direction entity1 is facing.
1680
+ * Returns (CUR_HEALTH / MAX_HEALTH)
1660
1681
  *
1661
- * @param entity2
1662
- * @param traceType
1663
1682
  * @returns
1664
1683
  */
1665
- hasClearLosToEntityInFront(entity2: Entity, traceType: number): boolean {
1666
- return inv<boolean>('0xE88F19660651D566', this.handle, entity2.handle, traceType, rai());
1684
+ get HealthFloat(): number {
1685
+ return inv<number>('0x96C638784DB4C815', this.handle, raf());
1667
1686
  }
1668
1687
 
1669
- /**
1670
- * @returns
1671
- */
1672
- isOnTrainTrack(): any {
1673
- return inv<number>('0x857ACB0AB4BD0D55', this.handle);
1674
- }
1675
1688
 
1676
1689
  /**
1677
- * @param angle
1678
- * @returns
1690
+ * Gets the network ID of this entity for network synchronization.
1679
1691
  */
1680
- isUpright(angle: number): boolean {
1681
- return inv<boolean>('0xF6F6AFD8D4FB2658', this.handle, f(angle), rai());
1692
+ get NetworkId(): number {
1693
+ return inv<number>('0xA11700682F3AD45C', this.handle, rai());
1682
1694
  }
1683
-
1684
1695
  }
1685
1696
 
1686
1697
  registerHandle('Entity', Entity);