@nativewrappers/fivem 0.0.79 → 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.
- package/Audio.d.ts +2 -2
- package/Audio.js +99 -0
- package/Blip.d.ts +4 -3
- package/Blip.js +113 -0
- package/Camera.d.ts +3 -3
- package/Camera.js +190 -0
- package/Checkpoint.d.ts +2 -2
- package/Checkpoint.js +51 -0
- package/Events.js +80 -0
- package/Game.d.ts +10 -3
- package/Game.js +478 -0
- package/GameplayCamera.d.ts +2 -2
- package/GameplayCamera.js +152 -0
- package/Model.js +210 -0
- package/NetworkedScene.d.ts +2 -1
- package/NetworkedScene.js +50 -0
- package/ParticleEffect.d.ts +4 -3
- package/ParticleEffect.js +128 -0
- package/ParticleEffectAsset.d.ts +2 -2
- package/ParticleEffectAsset.js +133 -0
- package/Pickup.d.ts +1 -1
- package/Pickup.js +27 -0
- package/Raycast.d.ts +5 -3
- package/Raycast.js +132 -0
- package/RelationshipGroup.d.ts +1 -1
- package/RelationshipGroup.js +72 -0
- package/Rope.d.ts +1 -1
- package/Rope.js +149 -0
- package/TaskSequence.js +52 -0
- package/Tasks.d.ts +8 -3
- package/Tasks.js +334 -0
- package/World.d.ts +13 -4
- package/World.js +945 -0
- package/cfx/StateBagChangeHandler.js +0 -0
- package/cfx/index.d.ts +1 -1
- package/cfx/index.js +4 -0
- package/common/Command.js +111 -0
- package/common/Convar.js +58 -0
- package/common/GlobalData.js +16 -0
- package/common/Kvp.js +137 -0
- package/common/Resource.js +54 -0
- package/common/decors/Events.js +170 -0
- package/common/net/NetworkedMap.js +225 -0
- package/common/types.js +0 -0
- package/common/utils/ClassTypes.js +15 -0
- package/common/utils/Color.js +33 -0
- package/common/utils/Delay.d.ts +1 -0
- package/common/utils/Delay.js +6 -0
- package/common/utils/Maths.js +18 -0
- package/common/utils/Point.d.ts +9 -0
- package/common/utils/Point.js +36 -0
- package/common/utils/PointF.d.ts +1 -1
- package/common/utils/PointF.js +18 -0
- package/common/utils/Quaternion.d.ts +1 -1
- package/common/utils/Quaternion.js +33 -0
- package/common/utils/Vector.js +589 -0
- package/common/utils/cleanPlayerName.js +17 -0
- package/common/utils/enumValues.js +20 -0
- package/common/utils/getStringFromUInt8Array.js +6 -0
- package/common/utils/getUInt32FromUint8Array.js +6 -0
- package/enums/Alignment.js +9 -0
- package/enums/AnimationFlags.js +38 -0
- package/enums/AudioFlag.js +41 -0
- package/enums/BadgeStyle.js +186 -0
- package/enums/Blip.js +229 -0
- package/enums/Bone.js +105 -0
- package/enums/CameraShake.js +17 -0
- package/enums/CameraTypes.js +11 -0
- package/enums/CheckboxStyle.js +8 -0
- package/enums/Checkpoint.js +68 -0
- package/enums/CloudHat.js +27 -0
- package/enums/Control.js +364 -0
- package/enums/CursorSprite.js +18 -0
- package/enums/Driving.js +38 -0
- package/enums/ExplosionType.js +45 -0
- package/enums/FiringPattern.js +23 -0
- package/enums/Font.js +11 -0
- package/enums/ForceType.js +12 -0
- package/enums/Gender.js +8 -0
- package/enums/HelmetType.js +9 -0
- package/enums/HudColor.js +187 -0
- package/enums/HudComponent.js +57 -0
- package/enums/InputMode.js +8 -0
- package/enums/InvertAxis.js +10 -0
- package/enums/Language.js +18 -0
- package/enums/LeaveVehicleFlags.js +14 -0
- package/enums/LoadingSpinnerType.js +11 -0
- package/enums/MarkerType.js +48 -0
- package/enums/MenuAlignment.js +8 -0
- package/enums/NotificationType.js +14 -0
- package/enums/Parachute.js +19 -0
- package/enums/PickupType.js +77 -0
- package/enums/RadioStation.js +28 -0
- package/enums/RagdollType.js +10 -0
- package/enums/RaycastEnums.js +33 -0
- package/enums/Relationship.js +13 -0
- package/enums/RopeType.js +9 -0
- package/enums/ScreenEffect.js +87 -0
- package/enums/SpeechModifier.js +43 -0
- package/enums/Vehicle.js +396 -0
- package/enums/Weather.js +22 -0
- package/enums/ZoneID.js +95 -0
- package/hashes/MaterialHash.js +220 -0
- package/hashes/PedHash.js +728 -0
- package/hashes/VehicleHash.js +526 -0
- package/hashes/WeaponHash.js +155 -0
- package/hashes/WeatherTypeHash.js +22 -0
- package/interfaces/Dimensions.d.ts +1 -1
- package/interfaces/Dimensions.js +0 -0
- package/models/BaseEntity.d.ts +10 -8
- package/models/BaseEntity.js +576 -0
- package/models/Entity.d.ts +0 -1
- package/models/Entity.js +0 -0
- package/models/EntityBone.d.ts +1 -1
- package/models/EntityBone.js +32 -0
- package/models/EntityBoneCollection.d.ts +1 -1
- package/models/EntityBoneCollection.js +27 -0
- package/models/Ped.d.ts +13 -5
- package/models/Ped.js +711 -0
- package/models/PedBone.d.ts +3 -2
- package/models/PedBone.js +18 -0
- package/models/PedBoneCollection.d.ts +3 -1
- package/models/PedBoneCollection.js +31 -0
- package/models/Player.d.ts +4 -2
- package/models/Player.js +188 -0
- package/models/Prop.d.ts +1 -1
- package/models/Prop.js +34 -0
- package/models/Vehicle.d.ts +9 -4
- package/models/Vehicle.js +582 -0
- package/models/VehicleDoor.d.ts +1 -1
- package/models/VehicleDoor.js +52 -0
- package/models/VehicleDoorCollection.d.ts +1 -1
- package/models/VehicleDoorCollection.js +66 -0
- package/models/VehicleMod.d.ts +1 -1
- package/models/VehicleMod.js +43 -0
- package/models/VehicleModCollection.d.ts +2 -2
- package/models/VehicleModCollection.js +227 -0
- package/models/VehicleToggleMod.d.ts +1 -1
- package/models/VehicleToggleMod.js +37 -0
- package/models/VehicleWheel.js +31 -0
- package/models/VehicleWheelCollection.d.ts +1 -1
- package/models/VehicleWheelCollection.js +61 -0
- package/models/VehicleWindow.d.ts +1 -1
- package/models/VehicleWindow.js +43 -0
- package/models/VehicleWindowCollection.d.ts +1 -1
- package/models/VehicleWindowCollection.js +62 -0
- package/package.json +2 -2
- package/ui/Container.d.ts +4 -2
- package/ui/Container.js +39 -0
- package/ui/Effects.d.ts +1 -1
- package/ui/Effects.js +112 -0
- package/ui/Fading.js +74 -0
- package/ui/Hud.d.ts +3 -2
- package/ui/Hud.js +47 -0
- package/ui/InstructionalButtons.js +42 -0
- package/ui/LoadingPrompt.d.ts +1 -1
- package/ui/LoadingPrompt.js +37 -0
- package/ui/Notification.js +17 -0
- package/ui/Rectangle.d.ts +4 -2
- package/ui/Rectangle.js +46 -0
- package/ui/Scaleform.d.ts +2 -1
- package/ui/Scaleform.js +240 -0
- package/ui/Screen.d.ts +6 -3
- package/ui/Screen.js +83 -0
- package/ui/Sprite.d.ts +3 -1
- package/ui/Sprite.js +70 -0
- package/ui/Text.d.ts +6 -3
- package/ui/Text.js +119 -0
- package/ui/Timerbar.js +241 -0
- package/ui/interfaces/IButton.d.ts +1 -1
- package/ui/interfaces/IButton.js +0 -0
- package/ui/interfaces/IDrawable.d.ts +3 -1
- package/ui/interfaces/IDrawable.js +0 -0
- package/ui/menu/Menu.d.ts +9 -4
- package/ui/menu/Menu.js +830 -0
- package/ui/menu/MenuControl.js +20 -0
- package/ui/menu/MenuControls.js +17 -0
- package/ui/menu/MenuSettings.d.ts +1 -1
- package/ui/menu/MenuSettings.js +57 -0
- package/ui/menu/items/UIMenuCheckboxItem.d.ts +3 -3
- package/ui/menu/items/UIMenuCheckboxItem.js +70 -0
- package/ui/menu/items/UIMenuItem.d.ts +10 -4
- package/ui/menu/items/UIMenuItem.js +1103 -0
- package/ui/menu/items/UIMenuListItem.d.ts +3 -3
- package/ui/menu/items/UIMenuListItem.js +118 -0
- package/ui/menu/items/UIMenuSeparatorItem.d.ts +1 -1
- package/ui/menu/items/UIMenuSeparatorItem.js +37 -0
- package/ui/menu/items/UIMenuSliderItem.d.ts +4 -3
- package/ui/menu/items/UIMenuSliderItem.js +180 -0
- package/ui/menu/items/panels/AbstractUIMenuPanel.d.ts +4 -3
- package/ui/menu/items/panels/AbstractUIMenuPanel.js +49 -0
- package/ui/menu/items/panels/UIMenuColorPanel.d.ts +3 -3
- package/ui/menu/items/panels/UIMenuColorPanel.js +215 -0
- package/ui/menu/items/panels/UIMenuGridPanel.d.ts +3 -3
- package/ui/menu/items/panels/UIMenuGridPanel.js +216 -0
- package/ui/menu/items/panels/UIMenuPercentagePanel.d.ts +2 -2
- package/ui/menu/items/panels/UIMenuPercentagePanel.js +138 -0
- package/ui/menu/items/panels/UIMenuStatisticsPanel.d.ts +3 -2
- package/ui/menu/items/panels/UIMenuStatisticsPanel.js +88 -0
- package/ui/menu/items/panels/UIMenuStatisticsPanelItem.d.ts +2 -1
- package/ui/menu/items/panels/UIMenuStatisticsPanelItem.js +48 -0
- package/ui/menu/modules/ListItem.js +18 -0
- package/utils/Animations.js +43 -0
- package/utils/Crypto.js +33 -0
- package/utils/LiteEvent.js +25 -0
- package/utils/Maths.js +18 -0
- package/utils/Point.js +36 -0
- package/utils/Size.js +16 -0
- package/utils/String.d.ts +1 -1
- package/utils/String.js +35 -0
- package/weapon/DlcWeaponData.d.ts +1 -1
- package/weapon/DlcWeaponData.js +40 -0
- package/weapon/Mk2WeaponHash.js +18 -0
- package/weapon/Weapon.d.ts +7 -7
- package/weapon/Weapon.js +276 -0
- package/weapon/WeaponAsset.d.ts +1 -1
- package/weapon/WeaponAsset.js +87 -0
- package/weapon/WeaponCollection.d.ts +3 -2
- package/weapon/WeaponCollection.js +179 -0
- package/weapon/WeaponDisplayNameByHash.d.ts +1 -1
- package/weapon/WeaponDisplayNameByHash.js +73 -0
- package/weapon/WeaponGroup.js +22 -0
- package/weapon/WeaponHudStats.d.ts +1 -1
- package/weapon/WeaponHudStats.js +33 -0
- package/weapon/WeaponLivery.js +17 -0
- package/weapon/WeaponLiveryColor.js +38 -0
- package/weapon/WeaponTint.js +46 -0
- package/weaponComponent/ComponentAttachmentPoint.js +22 -0
- package/weaponComponent/ComponentAttachmentPointByHash.js +307 -0
- package/weaponComponent/ComponentDisplayNameByHash.js +278 -0
- package/weaponComponent/DlcWeaponComponentData.js +40 -0
- package/weaponComponent/InvalidWeaponComponent.d.ts +1 -1
- package/weaponComponent/InvalidWeaponComponent.js +31 -0
- package/weaponComponent/WeaponComponent.d.ts +4 -4
- package/weaponComponent/WeaponComponent.js +124 -0
- package/weaponComponent/WeaponComponentCollection.d.ts +2 -2
- package/weaponComponent/WeaponComponentCollection.js +187 -0
- package/weaponComponent/WeaponComponentHash.js +670 -0
- package/weaponComponent/WeaponComponentHashesByWeaponHash.d.ts +1 -1
- package/weaponComponent/WeaponComponentHashesByWeaponHash.js +864 -0
- package/weaponComponent/WeaponComponentHudStats.js +33 -0
- package/common/index.d.ts +0 -8
- package/common/utils/Vector2.d.ts +0 -1
- package/common/utils/Vector3.d.ts +0 -1
- package/common/utils/Vector4.d.ts +0 -1
- package/common/utils/index.d.ts +0 -12
- package/enums/index.d.ts +0 -42
- package/hashes/index.d.ts +0 -5
- package/index.d.ts +0 -25
- package/index.js +0 -18794
- package/models/index.d.ts +0 -18
- package/ui/index.d.ts +0 -15
- package/ui/interfaces/index.d.ts +0 -2
- package/ui/menu/index.d.ts +0 -6
- package/ui/menu/items/index.d.ts +0 -6
- package/ui/menu/items/panels/index.d.ts +0 -6
- package/ui/menu/modules/index.d.ts +0 -1
- package/utils/PointF.d.ts +0 -7
- package/utils/Quaternion.d.ts +0 -10
- package/utils/enumValues.d.ts +0 -12
- package/utils/getStringFromUInt8Array.d.ts +0 -8
- package/utils/getUInt32FromUint8Array.d.ts +0 -8
- package/utils/index.d.ts +0 -9
- package/weapon/index.d.ts +0 -8
- package/weaponComponent/index.d.ts +0 -5
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { LiteEvent } from "
|
|
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
|
+
};
|
|
@@ -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 {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
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 {
|
|
2
|
-
import {
|
|
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 {
|
|
3
|
-
import {
|
|
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 {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
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;
|