@nativewrappers/fivem 0.0.80 → 0.0.81

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 (265) hide show
  1. package/Audio.d.ts +2 -2
  2. package/Audio.js +99 -0
  3. package/Blip.d.ts +4 -3
  4. package/Blip.js +113 -0
  5. package/Camera.d.ts +3 -3
  6. package/Camera.js +190 -0
  7. package/Checkpoint.d.ts +2 -2
  8. package/Checkpoint.js +51 -0
  9. package/Events.js +80 -0
  10. package/Game.d.ts +10 -3
  11. package/Game.js +478 -0
  12. package/GameplayCamera.d.ts +2 -2
  13. package/GameplayCamera.js +152 -0
  14. package/Model.js +210 -0
  15. package/NetworkedScene.d.ts +2 -1
  16. package/NetworkedScene.js +50 -0
  17. package/ParticleEffect.d.ts +4 -3
  18. package/ParticleEffect.js +128 -0
  19. package/ParticleEffectAsset.d.ts +2 -2
  20. package/ParticleEffectAsset.js +133 -0
  21. package/Pickup.d.ts +1 -1
  22. package/Pickup.js +27 -0
  23. package/Raycast.d.ts +5 -3
  24. package/Raycast.js +132 -0
  25. package/RelationshipGroup.d.ts +1 -1
  26. package/RelationshipGroup.js +72 -0
  27. package/Rope.d.ts +1 -1
  28. package/Rope.js +149 -0
  29. package/TaskSequence.js +52 -0
  30. package/Tasks.d.ts +8 -3
  31. package/Tasks.js +334 -0
  32. package/World.d.ts +13 -4
  33. package/World.js +945 -0
  34. package/cfx/StateBagChangeHandler.js +0 -0
  35. package/cfx/index.d.ts +1 -1
  36. package/cfx/index.js +4 -0
  37. package/common/Command.js +111 -0
  38. package/common/Convar.js +58 -0
  39. package/common/GlobalData.js +16 -0
  40. package/common/Kvp.js +137 -0
  41. package/common/Resource.js +54 -0
  42. package/common/decors/Events.js +170 -0
  43. package/common/net/NetworkedMap.js +225 -0
  44. package/common/types.js +0 -0
  45. package/common/utils/ClassTypes.js +15 -0
  46. package/common/utils/Color.js +33 -0
  47. package/common/utils/Delay.d.ts +1 -0
  48. package/common/utils/Delay.js +6 -0
  49. package/common/utils/Maths.js +18 -0
  50. package/common/utils/Point.d.ts +9 -0
  51. package/common/utils/Point.js +36 -0
  52. package/common/utils/PointF.d.ts +1 -1
  53. package/common/utils/PointF.js +18 -0
  54. package/common/utils/Quaternion.d.ts +1 -1
  55. package/common/utils/Quaternion.js +33 -0
  56. package/common/utils/Vector.js +589 -0
  57. package/common/utils/cleanPlayerName.js +17 -0
  58. package/common/utils/enumValues.js +20 -0
  59. package/common/utils/getStringFromUInt8Array.js +6 -0
  60. package/common/utils/getUInt32FromUint8Array.js +6 -0
  61. package/enums/Alignment.js +9 -0
  62. package/enums/AnimationFlags.js +38 -0
  63. package/enums/AudioFlag.js +41 -0
  64. package/enums/BadgeStyle.js +186 -0
  65. package/enums/Blip.js +229 -0
  66. package/enums/Bone.js +105 -0
  67. package/enums/CameraShake.js +17 -0
  68. package/enums/CameraTypes.js +11 -0
  69. package/enums/CheckboxStyle.js +8 -0
  70. package/enums/Checkpoint.js +68 -0
  71. package/enums/CloudHat.js +27 -0
  72. package/enums/Control.js +364 -0
  73. package/enums/CursorSprite.js +18 -0
  74. package/enums/Driving.js +38 -0
  75. package/enums/ExplosionType.js +45 -0
  76. package/enums/FiringPattern.js +23 -0
  77. package/enums/Font.js +11 -0
  78. package/enums/ForceType.js +12 -0
  79. package/enums/Gender.js +8 -0
  80. package/enums/HelmetType.js +9 -0
  81. package/enums/HudColor.js +187 -0
  82. package/enums/HudComponent.js +57 -0
  83. package/enums/InputMode.js +8 -0
  84. package/enums/InvertAxis.js +10 -0
  85. package/enums/Language.js +18 -0
  86. package/enums/LeaveVehicleFlags.js +14 -0
  87. package/enums/LoadingSpinnerType.js +11 -0
  88. package/enums/MarkerType.js +48 -0
  89. package/enums/MenuAlignment.js +8 -0
  90. package/enums/NotificationType.js +14 -0
  91. package/enums/Parachute.js +19 -0
  92. package/enums/PickupType.js +77 -0
  93. package/enums/RadioStation.js +28 -0
  94. package/enums/RagdollType.js +10 -0
  95. package/enums/RaycastEnums.js +33 -0
  96. package/enums/Relationship.js +13 -0
  97. package/enums/RopeType.js +9 -0
  98. package/enums/ScreenEffect.js +87 -0
  99. package/enums/SpeechModifier.js +43 -0
  100. package/enums/Vehicle.js +396 -0
  101. package/enums/Weather.js +22 -0
  102. package/enums/ZoneID.js +95 -0
  103. package/hashes/MaterialHash.js +220 -0
  104. package/hashes/PedHash.js +728 -0
  105. package/hashes/VehicleHash.js +526 -0
  106. package/hashes/WeaponHash.js +155 -0
  107. package/hashes/WeatherTypeHash.js +22 -0
  108. package/interfaces/Dimensions.d.ts +1 -1
  109. package/interfaces/Dimensions.js +0 -0
  110. package/models/BaseEntity.d.ts +10 -8
  111. package/models/BaseEntity.js +576 -0
  112. package/models/Entity.d.ts +0 -1
  113. package/models/Entity.js +0 -0
  114. package/models/EntityBone.d.ts +1 -1
  115. package/models/EntityBone.js +32 -0
  116. package/models/EntityBoneCollection.d.ts +1 -1
  117. package/models/EntityBoneCollection.js +27 -0
  118. package/models/Ped.d.ts +13 -5
  119. package/models/Ped.js +711 -0
  120. package/models/PedBone.d.ts +3 -2
  121. package/models/PedBone.js +18 -0
  122. package/models/PedBoneCollection.d.ts +3 -1
  123. package/models/PedBoneCollection.js +31 -0
  124. package/models/Player.d.ts +4 -2
  125. package/models/Player.js +188 -0
  126. package/models/Prop.d.ts +1 -1
  127. package/models/Prop.js +34 -0
  128. package/models/Vehicle.d.ts +9 -4
  129. package/models/Vehicle.js +582 -0
  130. package/models/VehicleDoor.d.ts +1 -1
  131. package/models/VehicleDoor.js +52 -0
  132. package/models/VehicleDoorCollection.d.ts +1 -1
  133. package/models/VehicleDoorCollection.js +66 -0
  134. package/models/VehicleMod.d.ts +1 -1
  135. package/models/VehicleMod.js +43 -0
  136. package/models/VehicleModCollection.d.ts +2 -2
  137. package/models/VehicleModCollection.js +227 -0
  138. package/models/VehicleToggleMod.d.ts +1 -1
  139. package/models/VehicleToggleMod.js +37 -0
  140. package/models/VehicleWheel.js +31 -0
  141. package/models/VehicleWheelCollection.d.ts +1 -1
  142. package/models/VehicleWheelCollection.js +61 -0
  143. package/models/VehicleWindow.d.ts +1 -1
  144. package/models/VehicleWindow.js +43 -0
  145. package/models/VehicleWindowCollection.d.ts +1 -1
  146. package/models/VehicleWindowCollection.js +62 -0
  147. package/package.json +2 -2
  148. package/ui/Container.d.ts +4 -2
  149. package/ui/Container.js +39 -0
  150. package/ui/Effects.d.ts +1 -1
  151. package/ui/Effects.js +112 -0
  152. package/ui/Fading.js +74 -0
  153. package/ui/Hud.d.ts +3 -2
  154. package/ui/Hud.js +47 -0
  155. package/ui/InstructionalButtons.js +42 -0
  156. package/ui/LoadingPrompt.d.ts +1 -1
  157. package/ui/LoadingPrompt.js +37 -0
  158. package/ui/Notification.js +17 -0
  159. package/ui/Rectangle.d.ts +4 -2
  160. package/ui/Rectangle.js +46 -0
  161. package/ui/Scaleform.d.ts +2 -1
  162. package/ui/Scaleform.js +240 -0
  163. package/ui/Screen.d.ts +6 -3
  164. package/ui/Screen.js +83 -0
  165. package/ui/Sprite.d.ts +3 -1
  166. package/ui/Sprite.js +70 -0
  167. package/ui/Text.d.ts +6 -3
  168. package/ui/Text.js +119 -0
  169. package/ui/Timerbar.js +241 -0
  170. package/ui/interfaces/IButton.d.ts +1 -1
  171. package/ui/interfaces/IButton.js +0 -0
  172. package/ui/interfaces/IDrawable.d.ts +3 -1
  173. package/ui/interfaces/IDrawable.js +0 -0
  174. package/ui/menu/Menu.d.ts +9 -4
  175. package/ui/menu/Menu.js +830 -0
  176. package/ui/menu/MenuControl.js +20 -0
  177. package/ui/menu/MenuControls.js +17 -0
  178. package/ui/menu/MenuSettings.d.ts +1 -1
  179. package/ui/menu/MenuSettings.js +57 -0
  180. package/ui/menu/items/UIMenuCheckboxItem.d.ts +3 -3
  181. package/ui/menu/items/UIMenuCheckboxItem.js +70 -0
  182. package/ui/menu/items/UIMenuItem.d.ts +10 -4
  183. package/ui/menu/items/UIMenuItem.js +1103 -0
  184. package/ui/menu/items/UIMenuListItem.d.ts +3 -3
  185. package/ui/menu/items/UIMenuListItem.js +118 -0
  186. package/ui/menu/items/UIMenuSeparatorItem.d.ts +1 -1
  187. package/ui/menu/items/UIMenuSeparatorItem.js +37 -0
  188. package/ui/menu/items/UIMenuSliderItem.d.ts +4 -3
  189. package/ui/menu/items/UIMenuSliderItem.js +180 -0
  190. package/ui/menu/items/panels/AbstractUIMenuPanel.d.ts +4 -3
  191. package/ui/menu/items/panels/AbstractUIMenuPanel.js +49 -0
  192. package/ui/menu/items/panels/UIMenuColorPanel.d.ts +3 -3
  193. package/ui/menu/items/panels/UIMenuColorPanel.js +215 -0
  194. package/ui/menu/items/panels/UIMenuGridPanel.d.ts +3 -3
  195. package/ui/menu/items/panels/UIMenuGridPanel.js +216 -0
  196. package/ui/menu/items/panels/UIMenuPercentagePanel.d.ts +2 -2
  197. package/ui/menu/items/panels/UIMenuPercentagePanel.js +138 -0
  198. package/ui/menu/items/panels/UIMenuStatisticsPanel.d.ts +3 -2
  199. package/ui/menu/items/panels/UIMenuStatisticsPanel.js +88 -0
  200. package/ui/menu/items/panels/UIMenuStatisticsPanelItem.d.ts +2 -1
  201. package/ui/menu/items/panels/UIMenuStatisticsPanelItem.js +48 -0
  202. package/ui/menu/modules/ListItem.js +18 -0
  203. package/utils/Animations.js +43 -0
  204. package/utils/Crypto.js +33 -0
  205. package/utils/LiteEvent.js +25 -0
  206. package/utils/Maths.js +18 -0
  207. package/utils/Point.js +36 -0
  208. package/utils/Size.js +16 -0
  209. package/utils/String.d.ts +1 -1
  210. package/utils/String.js +35 -0
  211. package/weapon/DlcWeaponData.d.ts +1 -1
  212. package/weapon/DlcWeaponData.js +40 -0
  213. package/weapon/Mk2WeaponHash.js +18 -0
  214. package/weapon/Weapon.d.ts +7 -7
  215. package/weapon/Weapon.js +276 -0
  216. package/weapon/WeaponAsset.d.ts +1 -1
  217. package/weapon/WeaponAsset.js +87 -0
  218. package/weapon/WeaponCollection.d.ts +3 -2
  219. package/weapon/WeaponCollection.js +179 -0
  220. package/weapon/WeaponDisplayNameByHash.d.ts +1 -1
  221. package/weapon/WeaponDisplayNameByHash.js +73 -0
  222. package/weapon/WeaponGroup.js +22 -0
  223. package/weapon/WeaponHudStats.d.ts +1 -1
  224. package/weapon/WeaponHudStats.js +33 -0
  225. package/weapon/WeaponLivery.js +17 -0
  226. package/weapon/WeaponLiveryColor.js +38 -0
  227. package/weapon/WeaponTint.js +46 -0
  228. package/weaponComponent/ComponentAttachmentPoint.js +22 -0
  229. package/weaponComponent/ComponentAttachmentPointByHash.js +307 -0
  230. package/weaponComponent/ComponentDisplayNameByHash.js +278 -0
  231. package/weaponComponent/DlcWeaponComponentData.js +40 -0
  232. package/weaponComponent/InvalidWeaponComponent.d.ts +1 -1
  233. package/weaponComponent/InvalidWeaponComponent.js +31 -0
  234. package/weaponComponent/WeaponComponent.d.ts +4 -4
  235. package/weaponComponent/WeaponComponent.js +124 -0
  236. package/weaponComponent/WeaponComponentCollection.d.ts +2 -2
  237. package/weaponComponent/WeaponComponentCollection.js +187 -0
  238. package/weaponComponent/WeaponComponentHash.js +670 -0
  239. package/weaponComponent/WeaponComponentHashesByWeaponHash.d.ts +1 -1
  240. package/weaponComponent/WeaponComponentHashesByWeaponHash.js +864 -0
  241. package/weaponComponent/WeaponComponentHudStats.js +33 -0
  242. package/common/index.d.ts +0 -8
  243. package/common/utils/Vector2.d.ts +0 -1
  244. package/common/utils/Vector3.d.ts +0 -1
  245. package/common/utils/Vector4.d.ts +0 -1
  246. package/common/utils/index.d.ts +0 -12
  247. package/enums/index.d.ts +0 -42
  248. package/hashes/index.d.ts +0 -5
  249. package/index.d.ts +0 -25
  250. package/index.js +0 -18794
  251. package/models/index.d.ts +0 -18
  252. package/ui/index.d.ts +0 -15
  253. package/ui/interfaces/index.d.ts +0 -2
  254. package/ui/menu/index.d.ts +0 -6
  255. package/ui/menu/items/index.d.ts +0 -6
  256. package/ui/menu/items/panels/index.d.ts +0 -6
  257. package/ui/menu/modules/index.d.ts +0 -1
  258. package/utils/PointF.d.ts +0 -7
  259. package/utils/Quaternion.d.ts +0 -10
  260. package/utils/enumValues.d.ts +0 -12
  261. package/utils/getStringFromUInt8Array.d.ts +0 -8
  262. package/utils/getUInt32FromUint8Array.d.ts +0 -8
  263. package/utils/index.d.ts +0 -9
  264. package/weapon/index.d.ts +0 -8
  265. package/weaponComponent/index.d.ts +0 -5
@@ -1,6 +1,6 @@
1
- import { LiteEvent } from "../../../utils";
2
- import type { ListItem } from "../modules/";
3
- import { UIMenuItem } from "./";
1
+ import { LiteEvent } from "fivem/utils/LiteEvent";
2
+ import type { ListItem } from "../modules/ListItem";
3
+ import { UIMenuItem } from "./UIMenuItem";
4
4
  export declare class UIMenuListItem extends UIMenuItem {
5
5
  readonly listChanged: LiteEvent;
6
6
  readonly listSelected: LiteEvent;
@@ -0,0 +1,118 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { Color } from "../../../common/utils/Color";
4
+ import { Alignment } from "fivem/enums/Alignment";
5
+ import { Font } from "fivem/enums/Font";
6
+ import { Sprite } from "fivem/ui/Sprite";
7
+ import { Text } from "fivem/ui/Text";
8
+ import { LiteEvent } from "fivem/utils/LiteEvent";
9
+ import { Point } from "fivem/utils/Point";
10
+ import { Size } from "fivem/utils/Size";
11
+ import { _String } from "fivem/utils/String";
12
+ import { Menu } from "../Menu";
13
+ import { UIMenuItem } from "./UIMenuItem";
14
+ class UIMenuListItem extends UIMenuItem {
15
+ static {
16
+ __name(this, "UIMenuListItem");
17
+ }
18
+ listChanged = new LiteEvent();
19
+ listSelected = new LiteEvent();
20
+ supportsRightBadge = false;
21
+ supportsRightLabel = false;
22
+ _itemText;
23
+ _leftArrow;
24
+ _rightArrow;
25
+ _index = 0;
26
+ _arrowOnlyOnSelected = false;
27
+ _items = [];
28
+ _textWidth = 0;
29
+ constructor(text, items, startIndex = 0, description, arrowOnlyOnSelected = true) {
30
+ super(text, description);
31
+ this._leftArrow = new Sprite("commonmenu", "arrowleft", new Point(), new Size(30, 30));
32
+ this._rightArrow = new Sprite("commonmenu", "arrowright", new Point(), new Size(30, 30));
33
+ this._itemText = new Text("", new Point(), 0.35, Color.White, Font.ChaletLondon, Alignment.Right);
34
+ this.ArrowOnlyOnSelected = arrowOnlyOnSelected;
35
+ this.Items = items;
36
+ this.Index = startIndex;
37
+ }
38
+ get Items() {
39
+ return this._items;
40
+ }
41
+ set Items(value) {
42
+ if (!value) {
43
+ throw new Error("Items can't be null");
44
+ }
45
+ this._items = value;
46
+ }
47
+ get SelectedItem() {
48
+ return this.Items[this.Index];
49
+ }
50
+ set SelectedItem(value) {
51
+ const index = this.Items.findIndex((i) => i.id === value.id);
52
+ if (index >= 0) {
53
+ this.Index = index;
54
+ }
55
+ }
56
+ get SelectedValue() {
57
+ const item = this.SelectedItem;
58
+ return item ? item.value : null;
59
+ }
60
+ get Index() {
61
+ return this._index % this.Items.length;
62
+ }
63
+ set Index(value) {
64
+ if (!this._items.length) {
65
+ return;
66
+ }
67
+ value = value < 0 ? this._items.length - 1 : value > this._items.length - 1 ? 0 : value;
68
+ this._index = value;
69
+ this._textWidth = 0;
70
+ }
71
+ get ArrowOnlyOnSelected() {
72
+ return this._arrowOnlyOnSelected;
73
+ }
74
+ set ArrowOnlyOnSelected(value) {
75
+ this._arrowOnlyOnSelected = value;
76
+ }
77
+ get IsMouseInBoundsOfLeftArrow() {
78
+ return this.parent ? this.parent.isMouseInBounds(this._leftArrow.pos, this._leftArrow.size) : false;
79
+ }
80
+ get IsMouseInBoundsOfRightArrow() {
81
+ return this.parent ? this.parent.isMouseInBounds(this._rightArrow.pos, this._rightArrow.size) : false;
82
+ }
83
+ setVerticalPosition(y) {
84
+ const yOffset = y + this.offset.Y + 147;
85
+ this._leftArrow.pos.Y = yOffset;
86
+ this._rightArrow.pos.Y = yOffset;
87
+ this._itemText.pos.Y = yOffset;
88
+ super.setVerticalPosition(y);
89
+ }
90
+ draw() {
91
+ super.draw();
92
+ if (this._textWidth === void 0) {
93
+ const caption = this._getSelectedItemCaption();
94
+ this._itemText.caption = caption;
95
+ this._textWidth = _String.measureString(caption, this._itemText.font, this._itemText.scale, Menu.screenWidth);
96
+ }
97
+ this._rightArrow.pos.X = this.offset.X + (this.parent ? this.parent.WidthOffset : 0) + 400;
98
+ this._itemText.pos.X = this._rightArrow.pos.X + 5;
99
+ this._itemText.color = this.enabled ? this.selected ? this.HighlightedForeColor : this.ForeColor : new Color(163, 159, 148);
100
+ if (this._arrowOnlyOnSelected && !this.selected) {
101
+ this._itemText.pos.X += this._rightArrow.size.width / 2;
102
+ } else {
103
+ this._leftArrow.color = this._itemText.color;
104
+ this._rightArrow.color = this._itemText.color;
105
+ this._leftArrow.pos.X = this._itemText.pos.X - this._textWidth - this._leftArrow.size.width + 5;
106
+ this._leftArrow.draw(Menu.screenResolution);
107
+ this._rightArrow.draw(Menu.screenResolution);
108
+ }
109
+ this._itemText.draw(void 0, Menu.screenResolution);
110
+ }
111
+ _getSelectedItemCaption() {
112
+ const item = this.SelectedItem;
113
+ return item ? item.name : "";
114
+ }
115
+ }
116
+ export {
117
+ UIMenuListItem
118
+ };
@@ -1,4 +1,4 @@
1
- import { UIMenuItem } from "./";
1
+ import { UIMenuItem } from "./UIMenuItem";
2
2
  export declare class UIMenuSeparatorItem extends UIMenuItem {
3
3
  protected supportsDescription: boolean;
4
4
  protected supportsPanels: boolean;
@@ -0,0 +1,37 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { Alignment } from "fivem/enums/Alignment";
4
+ import { Menu } from "../Menu";
5
+ import { UIMenuItem } from "./UIMenuItem";
6
+ class UIMenuSeparatorItem extends UIMenuItem {
7
+ static {
8
+ __name(this, "UIMenuSeparatorItem");
9
+ }
10
+ supportsDescription = false;
11
+ supportsPanels = false;
12
+ supportsLeftBadge = false;
13
+ supportsRightBadge = false;
14
+ supportsRightLabel = false;
15
+ constructor(text) {
16
+ super(text ?? "");
17
+ this.text.alignment = Alignment.Centered;
18
+ }
19
+ setVerticalPosition(y) {
20
+ const yOffset = y + this.offset.Y;
21
+ this.rectangle.pos.Y = yOffset + 144;
22
+ this.text.pos.Y = yOffset + 147;
23
+ }
24
+ draw() {
25
+ const width = 431 + (this.parent ? this.parent.WidthOffset : 0);
26
+ this.rectangle.size.width = width;
27
+ this.rectangle.pos.X = this.offset.X;
28
+ this.rectangle.draw(void 0, Menu.screenResolution);
29
+ if (this.text.caption !== "") {
30
+ this.text.pos.X = this.offset.X + width / 2;
31
+ this.text.draw(void 0, Menu.screenResolution);
32
+ }
33
+ }
34
+ }
35
+ export {
36
+ UIMenuSeparatorItem
37
+ };
@@ -1,6 +1,7 @@
1
- import { UIMenuItem } from "./";
2
- import { Color, LiteEvent } from "../../../utils";
3
- import { BadgeStyle } from "../../../enums";
1
+ import { Color } from "../../../common/utils/Color";
2
+ import { BadgeStyle } from "fivem/enums/BadgeStyle";
3
+ import { LiteEvent } from "fivem/utils/LiteEvent";
4
+ import { UIMenuItem } from "./UIMenuItem";
4
5
  export declare class UIMenuSliderItem extends UIMenuItem {
5
6
  readonly sliderChanged: LiteEvent;
6
7
  readonly sliderSelected: LiteEvent;
@@ -0,0 +1,180 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { Color } from "../../../common/utils/Color";
4
+ import { BadgeStyle } from "fivem/enums/BadgeStyle";
5
+ import { Rectangle } from "fivem/ui/Rectangle";
6
+ import { Sprite } from "fivem/ui/Sprite";
7
+ import { LiteEvent } from "fivem/utils/LiteEvent";
8
+ import { Point } from "fivem/utils/Point";
9
+ import { Size } from "fivem/utils/Size";
10
+ import { Menu } from "../Menu";
11
+ import { UIMenuItem } from "./UIMenuItem";
12
+ class UIMenuSliderItem extends UIMenuItem {
13
+ static {
14
+ __name(this, "UIMenuSliderItem");
15
+ }
16
+ sliderChanged = new LiteEvent();
17
+ sliderSelected = new LiteEvent();
18
+ supportsRightBadge = false;
19
+ supportsRightLabel = false;
20
+ _index = 0;
21
+ _items = [];
22
+ _showDivider = true;
23
+ _arrowOnlyOnSelected = false;
24
+ _leftSliderBadge = BadgeStyle.None;
25
+ _rightSliderBadge = BadgeStyle.None;
26
+ _background;
27
+ _slider;
28
+ _divider;
29
+ _leftArrow;
30
+ _rightArrow;
31
+ _leftSliderBadgeSprite;
32
+ _rightSliderBadgeSprite;
33
+ constructor(text, items, startIndex = 0, description, showDivider = false, arrowOnlyOnSelected = false) {
34
+ super(text, description);
35
+ this._background = new Rectangle(new Point(), new Size(150, 9), new Color(4, 32, 57));
36
+ this._slider = new Rectangle(new Point(), new Size(75, 9), new Color(57, 116, 200));
37
+ this._divider = new Rectangle(new Point(), new Size(2.5, 20), Color.WhiteSmoke);
38
+ this._leftArrow = new Sprite("commonmenutu", "arrowleft", new Point(), new Size(15, 15));
39
+ this._rightArrow = new Sprite("commonmenutu", "arrowright", new Point(), new Size(15, 15));
40
+ this._leftSliderBadgeSprite = new Sprite("", "");
41
+ this._rightSliderBadgeSprite = new Sprite("", "");
42
+ this.ArrowOnlyOnSelected = arrowOnlyOnSelected;
43
+ this.ShowDivider = showDivider;
44
+ this.Items = items;
45
+ this.Index = startIndex;
46
+ }
47
+ get Index() {
48
+ return this._index % this._items.length;
49
+ }
50
+ set Index(value) {
51
+ this._index = 1e8 - 1e8 % this._items.length + value;
52
+ }
53
+ get Item() {
54
+ return this._items[this.Index];
55
+ }
56
+ get Items() {
57
+ return this._items;
58
+ }
59
+ set Items(value) {
60
+ this._items = value || [];
61
+ }
62
+ get ShowDivider() {
63
+ return this._showDivider;
64
+ }
65
+ set ShowDivider(value) {
66
+ this._showDivider = value;
67
+ }
68
+ get ArrowOnlyOnSelected() {
69
+ return this._arrowOnlyOnSelected;
70
+ }
71
+ set ArrowOnlyOnSelected(value) {
72
+ this._arrowOnlyOnSelected = value;
73
+ }
74
+ get BackgroundColor() {
75
+ return this._background.color;
76
+ }
77
+ set BackgroundColor(value) {
78
+ this._background.color = value || new Color(4, 32, 57);
79
+ }
80
+ get SliderColor() {
81
+ return this._slider.color;
82
+ }
83
+ set SliderColor(value) {
84
+ this._slider.color = value || new Color(57, 116, 200);
85
+ }
86
+ get DividerColor() {
87
+ return this._divider.color;
88
+ }
89
+ set DividerColor(value) {
90
+ this._divider.color = value || Color.WhiteSmoke;
91
+ }
92
+ get LeftSliderBadge() {
93
+ return this._leftSliderBadge;
94
+ }
95
+ set LeftSliderBadge(value) {
96
+ value = Number(value);
97
+ this._leftSliderBadge = value;
98
+ this._leftSliderBadgeSprite.TextureDict = UIMenuItem.badgeToTextureDict(value);
99
+ this._leftSliderBadgeSprite.size = UIMenuItem.getBadgeSize(value);
100
+ }
101
+ get RightSliderBadge() {
102
+ return this._rightSliderBadge;
103
+ }
104
+ set RightSliderBadge(value) {
105
+ value = Number(value);
106
+ this._rightSliderBadge = value;
107
+ this._rightSliderBadgeSprite.TextureDict = UIMenuItem.badgeToTextureDict(value);
108
+ this._rightSliderBadgeSprite.size = UIMenuItem.getBadgeSize(value);
109
+ }
110
+ get IsMouseInBoundsOfLeftArrow() {
111
+ return this.parent ? this.parent.isMouseInBounds(this._leftArrow.pos, this._leftArrow.size) : false;
112
+ }
113
+ get IsMouseInBoundsOfRightArrow() {
114
+ return this.parent ? this.parent.isMouseInBounds(this._rightArrow.pos, this._rightArrow.size) : false;
115
+ }
116
+ indexToItem(index) {
117
+ return this._items[index];
118
+ }
119
+ setVerticalPosition(y) {
120
+ const yOffset = y + this.offset.Y;
121
+ this._background.pos.Y = yOffset + 158.5;
122
+ this._slider.pos.Y = yOffset + 158.5;
123
+ this._divider.pos.Y = yOffset + 153;
124
+ this._leftArrow.pos.Y = yOffset + 155.5;
125
+ this._rightArrow.pos.Y = yOffset + 155.5;
126
+ this._leftSliderBadgeSprite.pos.Y = yOffset + 142 + UIMenuItem.getBadgeSpriteHeightOffset(this._leftSliderBadgeSprite);
127
+ this._rightSliderBadgeSprite.pos.Y = yOffset + 142 + UIMenuItem.getBadgeSpriteHeightOffset(this._rightSliderBadgeSprite);
128
+ super.setVerticalPosition(y);
129
+ }
130
+ draw() {
131
+ super.draw();
132
+ const showArrows = !this._arrowOnlyOnSelected || this.selected;
133
+ const x = this.offset.X + (this.parent ? this.parent.WidthOffset : 0);
134
+ this._background.pos.X = 431 + x - this._background.size.width;
135
+ if (showArrows) {
136
+ this._background.pos.X -= this._rightArrow.size.width / 2;
137
+ this._leftSliderBadgeSprite.pos.X = -this._leftArrow.size.width / 2;
138
+ } else {
139
+ this._leftSliderBadgeSprite.pos.X = 0;
140
+ }
141
+ if (this._rightSliderBadge !== BadgeStyle.None) {
142
+ const widthOffset = UIMenuItem.getBadgeSpriteWidthOffset(this._rightSliderBadgeSprite);
143
+ this._background.pos.X -= 40;
144
+ this._rightSliderBadgeSprite.pos.X = 431 + x;
145
+ this._rightSliderBadgeSprite.pos.X -= this._rightSliderBadgeSprite.size.width + widthOffset;
146
+ this._rightSliderBadgeSprite.textureName = this.badgeToTextureName(this._rightSliderBadge);
147
+ this._rightSliderBadgeSprite.color = this.badgeToColor(this._rightSliderBadge);
148
+ this._rightSliderBadgeSprite.draw(Menu.screenResolution);
149
+ } else {
150
+ this._background.pos.X -= this._rightArrow.size.width / 2;
151
+ }
152
+ if (this._leftSliderBadge !== BadgeStyle.None) {
153
+ const widthOffset = UIMenuItem.getBadgeSpriteWidthOffset(this._leftSliderBadgeSprite);
154
+ this._leftSliderBadgeSprite.pos.X -= this._leftSliderBadgeSprite.size.width + widthOffset;
155
+ this._leftSliderBadgeSprite.pos.X += this._background.pos.X;
156
+ this._leftSliderBadgeSprite.textureName = this.badgeToTextureName(this._leftSliderBadge);
157
+ this._leftSliderBadgeSprite.color = this.badgeToColor(this._leftSliderBadge);
158
+ this._leftSliderBadgeSprite.draw(Menu.screenResolution);
159
+ }
160
+ const sliderXOffset = (this._background.size.width - this._slider.size.width) / (this._items.length - 1) * this.Index;
161
+ this._slider.pos.X = this._background.pos.X + sliderXOffset;
162
+ this._leftArrow.color = this.enabled ? this.selected ? Color.Black : Color.WhiteSmoke : new Color(163, 159, 148);
163
+ this._rightArrow.color = this._leftArrow.color;
164
+ this._background.draw(void 0, Menu.screenResolution);
165
+ this._slider.draw(void 0, Menu.screenResolution);
166
+ if (showArrows) {
167
+ this._leftArrow.pos.X = this._background.pos.X - 15;
168
+ this._rightArrow.pos.X = this._background.pos.X + this._background.size.width;
169
+ this._leftArrow.draw(Menu.screenResolution);
170
+ this._rightArrow.draw(Menu.screenResolution);
171
+ }
172
+ if (this._showDivider) {
173
+ this._divider.pos.X = this._background.pos.X + this._background.size.width / 2;
174
+ this._divider.draw(void 0, Menu.screenResolution);
175
+ }
176
+ }
177
+ }
178
+ export {
179
+ UIMenuSliderItem
180
+ };
@@ -1,6 +1,7 @@
1
- import type { UIMenuItem } from "../";
2
- import { type Rectangle, Sprite } from "../../../";
3
- import { Menu } from "../../";
1
+ import type { Rectangle } from "fivem/ui/Rectangle";
2
+ import { Sprite } from "fivem/ui/Sprite";
3
+ import { Menu } from "../../Menu";
4
+ import type { UIMenuItem } from "../UIMenuItem";
4
5
  export declare abstract class AbstractUIMenuPanel {
5
6
  readonly id: string;
6
7
  protected parentItem?: UIMenuItem;
@@ -0,0 +1,49 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { Sprite } from "fivem/ui/Sprite";
4
+ import { Crypto } from "fivem/utils/Crypto";
5
+ import { Menu } from "../../Menu";
6
+ class AbstractUIMenuPanel {
7
+ static {
8
+ __name(this, "AbstractUIMenuPanel");
9
+ }
10
+ id = Crypto.uuidv4();
11
+ parentItem;
12
+ enabled = true;
13
+ background;
14
+ get ParentMenu() {
15
+ return this.parentItem ? this.parentItem.parent : void 0;
16
+ }
17
+ get ParentItem() {
18
+ return this.parentItem;
19
+ }
20
+ set ParentItem(value) {
21
+ this.parentItem = value;
22
+ }
23
+ get Enabled() {
24
+ return this.enabled;
25
+ }
26
+ set Enabled(value) {
27
+ this.enabled = value;
28
+ }
29
+ get Height() {
30
+ return this.background ? this.background.size.height : 0;
31
+ }
32
+ setVerticalPosition(y) {
33
+ if (this.background) this.background.pos.Y = y;
34
+ }
35
+ draw() {
36
+ if (this.background) {
37
+ this.background.size.width = 431 + (this.ParentMenu ? this.ParentMenu.WidthOffset : 0);
38
+ this.background.pos.X = this.parentItem ? this.parentItem.offset.X : 0;
39
+ if (this.background instanceof Sprite) {
40
+ this.background.draw(Menu.screenResolution);
41
+ } else {
42
+ this.background.draw(void 0, Menu.screenResolution);
43
+ }
44
+ }
45
+ }
46
+ }
47
+ export {
48
+ AbstractUIMenuPanel
49
+ };
@@ -1,6 +1,6 @@
1
- import { Color } from "../../../../utils";
2
- import { AbstractUIMenuPanel } from "./";
3
- import { Sprite } from "../../../";
1
+ import { Color } from "../../../../common/utils/Color";
2
+ import { Sprite } from "fivem/ui/Sprite";
3
+ import { AbstractUIMenuPanel } from "./AbstractUIMenuPanel";
4
4
  export declare class UIMenuColorPanel extends AbstractUIMenuPanel {
5
5
  protected readonly background: Sprite;
6
6
  private _title;
@@ -0,0 +1,215 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { Color } from "../../../../common/utils/Color";
4
+ import { Alignment } from "fivem/enums/Alignment";
5
+ import { Control } from "fivem/enums/Control";
6
+ import { Font } from "fivem/enums/Font";
7
+ import { Game } from "fivem/Game";
8
+ import { Rectangle } from "fivem/ui/Rectangle";
9
+ import { Sprite } from "fivem/ui/Sprite";
10
+ import { Text } from "fivem/ui/Text";
11
+ import { Point } from "fivem/utils/Point";
12
+ import { Size } from "fivem/utils/Size";
13
+ import { Menu } from "../../Menu";
14
+ import { AbstractUIMenuPanel } from "./AbstractUIMenuPanel";
15
+ class UIMenuColorPanel extends AbstractUIMenuPanel {
16
+ static {
17
+ __name(this, "UIMenuColorPanel");
18
+ }
19
+ background;
20
+ _title = "";
21
+ _text;
22
+ _colors = [];
23
+ _bar = [];
24
+ _lastColor = Color.Transparent;
25
+ _leftArrow;
26
+ _rightArrow;
27
+ _selectedRectangle;
28
+ // Pagination
29
+ _min = 0;
30
+ _max = 8;
31
+ _total = 9;
32
+ _index = 0;
33
+ constructor(title, colors) {
34
+ super();
35
+ this.background = new Sprite("commonmenu", "gradient_bgd", new Point(), new Size(431, 112));
36
+ this._leftArrow = new Sprite("commonmenu", "arrowleft", new Point(), new Size(30, 30));
37
+ this._rightArrow = new Sprite("commonmenu", "arrowright", new Point(), new Size(30, 30));
38
+ this._selectedRectangle = new Rectangle(new Point(), new Size(44.5, 8), Color.White);
39
+ this._text = new Text("", new Point(), 0.35, Color.White, Font.ChaletLondon, Alignment.Centered);
40
+ this.Title = title;
41
+ this.Colors = colors;
42
+ }
43
+ get Title() {
44
+ return this._title;
45
+ }
46
+ set Title(value) {
47
+ this._title = value ? value.trim() : "";
48
+ this._updateText();
49
+ }
50
+ get Colors() {
51
+ return this._colors;
52
+ }
53
+ set Colors(value) {
54
+ if (!value) {
55
+ value = [];
56
+ }
57
+ this._colors = value;
58
+ this._bar = [];
59
+ const colorRectangles = value.slice(0, this._total).map((color) => {
60
+ return new Rectangle(new Point(0, 0), new Size(44.5, 44.5), color);
61
+ });
62
+ this._bar.push(...colorRectangles);
63
+ this._refreshIndex();
64
+ this._updateSelection(true);
65
+ }
66
+ get Color() {
67
+ return this._colors[this.Index];
68
+ }
69
+ set Color(value) {
70
+ const index = this._colors.findIndex((c) => {
71
+ return c.a === value.a && c.r === value.r && c.g === value.g && c.b === value.b;
72
+ });
73
+ if (index !== -1) {
74
+ this.Index = index;
75
+ }
76
+ }
77
+ get Index() {
78
+ return this._index % this._colors.length;
79
+ }
80
+ set Index(value) {
81
+ value = 1e6 - 1e6 % this._colors.length + value;
82
+ if (this.Index === value % this._colors.length) {
83
+ return;
84
+ }
85
+ this._index = value;
86
+ const currentSelection = this.Index;
87
+ if (currentSelection > this._max) {
88
+ this._min = currentSelection - this._total + 1;
89
+ this._max = currentSelection;
90
+ } else if (currentSelection < this._min) {
91
+ this._min = currentSelection;
92
+ this._max = currentSelection + this._total - 1;
93
+ }
94
+ this._updateSelection();
95
+ }
96
+ updateParentItem() {
97
+ const last = this._lastColor;
98
+ const current = this.Color;
99
+ if (!last || last.a !== current.a || last.r !== current.r || last.g !== current.g || last.b !== current.b) {
100
+ this._lastColor = current;
101
+ if (this.ParentMenu) this.ParentMenu.panelActivated.emit(this.parentItem, this, this.Index, current);
102
+ if (this.parentItem) this.parentItem.panelActivated.emit(this, this.Index, current);
103
+ }
104
+ }
105
+ setVerticalPosition(y) {
106
+ super.setVerticalPosition(y);
107
+ this._selectedRectangle.pos.Y = y + 47;
108
+ this._leftArrow.pos.Y = y + 15;
109
+ this._rightArrow.pos.Y = y + 15;
110
+ this._text.pos.Y = y + 15;
111
+ this._bar.forEach(async (colorRect) => {
112
+ colorRect.pos.Y = y + 55;
113
+ });
114
+ }
115
+ draw() {
116
+ if (this.enabled) {
117
+ super.draw();
118
+ const x = (this.parentItem ? this.parentItem.offset.X : 0) + (this.ParentMenu ? this.ParentMenu.WidthOffset / 2 : 0);
119
+ this._selectedRectangle.pos.X = x + 15 + 44.5 * (this.Index - this._min);
120
+ this._leftArrow.pos.X = x + 7.5;
121
+ this._rightArrow.pos.X = x + 393.5;
122
+ this._text.pos.X = x + 215.5;
123
+ this._leftArrow.draw(Menu.screenResolution);
124
+ this._rightArrow.draw(Menu.screenResolution);
125
+ this._text.draw(void 0, Menu.screenResolution);
126
+ this._selectedRectangle.draw(void 0, Menu.screenResolution);
127
+ this._bar.forEach(async (colorRect, index) => {
128
+ colorRect.pos.X = x + 15 + 44.5 * index;
129
+ colorRect.draw(void 0, Menu.screenResolution);
130
+ });
131
+ this._processControls();
132
+ }
133
+ }
134
+ _refreshIndex() {
135
+ if (!this._colors.length) {
136
+ this._index = 1e3;
137
+ } else {
138
+ this._index = 1e3 - 1e3 % this._colors.length;
139
+ }
140
+ this._max = this._total - 1;
141
+ this._min = 0;
142
+ }
143
+ _updateSelection(preventUpdate = false) {
144
+ if (!preventUpdate) {
145
+ this.updateParentItem();
146
+ }
147
+ this._bar.forEach(async (colorRect, index) => {
148
+ colorRect.color = this._colors[this._min + index];
149
+ });
150
+ this._updateText();
151
+ }
152
+ _updateText() {
153
+ this._text.caption = `${this._title} [${this.Index + 1 || 0} / ${this._colors.length}]`;
154
+ }
155
+ _goLeft() {
156
+ if (this._colors.length > this._total) {
157
+ if (this.Index <= this._min) {
158
+ if (this.Index === 0) {
159
+ this._min = this._colors.length - this._total;
160
+ this._max = this._colors.length - 1;
161
+ this._index = 1e3 - 1e3 % this._colors.length;
162
+ this._index += this._colors.length - 1;
163
+ } else {
164
+ this._min--;
165
+ this._max--;
166
+ this._index--;
167
+ }
168
+ } else {
169
+ this._index--;
170
+ }
171
+ } else {
172
+ this._index--;
173
+ }
174
+ this._updateSelection();
175
+ }
176
+ _goRight() {
177
+ if (this._colors.length > this._total) {
178
+ if (this.Index >= this._max) {
179
+ if (this.Index === this._colors.length - 1) {
180
+ this._min = 0;
181
+ this._max = this._total - 1;
182
+ this._index = 1e3 - 1e3 % this._colors.length;
183
+ } else {
184
+ this._min++;
185
+ this._max++;
186
+ this._index++;
187
+ }
188
+ } else {
189
+ this._index++;
190
+ }
191
+ } else {
192
+ this._index++;
193
+ }
194
+ this._updateSelection();
195
+ }
196
+ _processControls() {
197
+ if (Game.isDisabledControlJustPressed(0, Control.Attack)) {
198
+ if (this.ParentMenu) {
199
+ if (this.ParentMenu.isMouseInBounds(this._leftArrow.pos, this._leftArrow.size)) {
200
+ this._goLeft();
201
+ } else if (this.ParentMenu.isMouseInBounds(this._rightArrow.pos, this._rightArrow.size)) {
202
+ this._goRight();
203
+ }
204
+ this._bar.forEach(async (colorRect, index) => {
205
+ if (this.ParentMenu?.isMouseInBounds(colorRect.pos, colorRect.size)) {
206
+ this.Index = this._min + index;
207
+ }
208
+ });
209
+ }
210
+ }
211
+ }
212
+ }
213
+ export {
214
+ UIMenuColorPanel
215
+ };
@@ -1,6 +1,6 @@
1
- import { Point } from "../../../../utils";
2
- import { AbstractUIMenuPanel } from "./";
3
- import { Sprite } from "../../../";
1
+ import { Sprite } from "fivem/ui/Sprite";
2
+ import { Point } from "fivem/utils/Point";
3
+ import { AbstractUIMenuPanel } from "./AbstractUIMenuPanel";
4
4
  export declare class UIMenuGridPanel extends AbstractUIMenuPanel {
5
5
  protected readonly background: Sprite;
6
6
  private _isCircleLocked;