@infernus/core 0.8.7 → 0.9.1
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/dist/bundle.d.ts +1553 -1551
- package/dist/bundle.js +1 -1
- package/dist/bundle.mjs +1 -0
- package/package.json +10 -3
- package/rollup.config.mjs +5 -2
- package/.eslintrc +0 -3
- package/src/controllers/command/index.ts +0 -57
- package/src/controllers/filterscript/index.ts +0 -69
- package/src/controllers/gamemode/index.ts +0 -277
- package/src/controllers/gamemode/settings.ts +0 -3
- package/src/controllers/gametext/index.ts +0 -61
- package/src/controllers/gangzone/baseGangZone.ts +0 -284
- package/src/controllers/gangzone/gangZoneBus.ts +0 -8
- package/src/controllers/gangzone/gangZoneEvent.ts +0 -91
- package/src/controllers/gangzone/index.ts +0 -2
- package/src/controllers/i18n/index.ts +0 -81
- package/src/controllers/index.ts +0 -12
- package/src/controllers/menu/baseMenu.ts +0 -203
- package/src/controllers/menu/index.ts +0 -2
- package/src/controllers/menu/menuBus.ts +0 -8
- package/src/controllers/menu/menuEvent.ts +0 -76
- package/src/controllers/netstats/index.ts +0 -43
- package/src/controllers/npc/index.ts +0 -2
- package/src/controllers/npc/npcEvent.ts +0 -26
- package/src/controllers/npc/npcFunc.ts +0 -64
- package/src/controllers/player/basePlayer.ts +0 -980
- package/src/controllers/player/index.ts +0 -3
- package/src/controllers/player/pauseChecker.ts +0 -39
- package/src/controllers/player/playerBus.ts +0 -9
- package/src/controllers/player/playerEvent.ts +0 -468
- package/src/controllers/promise/client/index.ts +0 -31
- package/src/controllers/promise/dialog/index.ts +0 -143
- package/src/controllers/textdraw/baseTextDraw.ts +0 -416
- package/src/controllers/textdraw/index.ts +0 -2
- package/src/controllers/textdraw/textdrawBus.ts +0 -8
- package/src/controllers/textdraw/textdrawEvent.ts +0 -61
- package/src/controllers/vehicle/baseVehicle.ts +0 -503
- package/src/controllers/vehicle/index.ts +0 -2
- package/src/controllers/vehicle/vehicleBus.ts +0 -8
- package/src/controllers/vehicle/vehicleEvent.ts +0 -201
- package/src/enums/artwork.ts +0 -5
- package/src/enums/clickSources.ts +0 -3
- package/src/enums/dialogStyles.ts +0 -8
- package/src/enums/editResponseTypes.ts +0 -5
- package/src/enums/index.ts +0 -18
- package/src/enums/invalid.ts +0 -13
- package/src/enums/keys.ts +0 -25
- package/src/enums/limits.ts +0 -18
- package/src/enums/marker.ts +0 -5
- package/src/enums/netstat.ts +0 -11
- package/src/enums/npc.ts +0 -11
- package/src/enums/object.ts +0 -25
- package/src/enums/player.ts +0 -92
- package/src/enums/record.ts +0 -5
- package/src/enums/specialActions.ts +0 -22
- package/src/enums/streamer.ts +0 -10
- package/src/enums/textdrawFonts.ts +0 -23
- package/src/enums/vehicle.ts +0 -32
- package/src/enums/weapon.ts +0 -82
- package/src/interfaces/index.ts +0 -233
- package/src/logger/index.ts +0 -24
- package/src/main.ts +0 -6
- package/src/types/index.ts +0 -48
- package/src/utils/EventBus.ts +0 -60
- package/src/utils/animateUtils.ts +0 -2504
- package/src/utils/colorUtils.ts +0 -43
- package/src/utils/helperUtils.ts +0 -403
- package/src/utils/vehicleUtils.ts +0 -321
- package/src/wrapper/native/callbacks/index.ts +0 -395
- package/src/wrapper/native/functions/index.ts +0 -3131
- package/src/wrapper/streamer/3dtext/3dTextBus.ts +0 -8
- package/src/wrapper/streamer/3dtext/3dTextEvent.ts +0 -70
- package/src/wrapper/streamer/3dtext/base3DText.ts +0 -184
- package/src/wrapper/streamer/3dtext/index.ts +0 -2
- package/src/wrapper/streamer/actor/actorBus.ts +0 -8
- package/src/wrapper/streamer/actor/actorEvent.ts +0 -95
- package/src/wrapper/streamer/actor/baseActor.ts +0 -278
- package/src/wrapper/streamer/actor/index.ts +0 -2
- package/src/wrapper/streamer/area/areaBus.ts +0 -8
- package/src/wrapper/streamer/area/areaEvent.ts +0 -99
- package/src/wrapper/streamer/area/baseArea.ts +0 -450
- package/src/wrapper/streamer/area/index.ts +0 -2
- package/src/wrapper/streamer/checkpoint/baseCheckpoint.ts +0 -136
- package/src/wrapper/streamer/checkpoint/checkPointBus.ts +0 -8
- package/src/wrapper/streamer/checkpoint/checkPointEvent.ts +0 -100
- package/src/wrapper/streamer/checkpoint/index.ts +0 -2
- package/src/wrapper/streamer/common/index.ts +0 -318
- package/src/wrapper/streamer/index.ts +0 -9
- package/src/wrapper/streamer/mapIcon/baseMapIcon.ts +0 -128
- package/src/wrapper/streamer/mapIcon/index.ts +0 -2
- package/src/wrapper/streamer/mapIcon/mapIconBus.ts +0 -8
- package/src/wrapper/streamer/mapIcon/mapIconEvent.ts +0 -67
- package/src/wrapper/streamer/object/baseObject.ts +0 -415
- package/src/wrapper/streamer/object/index.ts +0 -2
- package/src/wrapper/streamer/object/objectBus.ts +0 -8
- package/src/wrapper/streamer/object/objectEvent.ts +0 -177
- package/src/wrapper/streamer/pickup/basePickup.ts +0 -114
- package/src/wrapper/streamer/pickup/index.ts +0 -2
- package/src/wrapper/streamer/pickup/pickupBus.ts +0 -8
- package/src/wrapper/streamer/pickup/pickupEvent.ts +0 -84
- package/src/wrapper/streamer/raceCP/baseRaceCP.ts +0 -151
- package/src/wrapper/streamer/raceCP/index.ts +0 -2
- package/src/wrapper/streamer/raceCP/raceCPBus.ts +0 -8
- package/src/wrapper/streamer/raceCP/raceCPEvent.ts +0 -100
- package/tsconfig.json +0 -16
- /package/{LICENSE → LICENSE.md} +0 -0
|
@@ -1,416 +0,0 @@
|
|
|
1
|
-
import type { TextDrawAlignEnum } from "@/enums";
|
|
2
|
-
import { LimitsEnum, TextDrawFontsEnum } from "@/enums";
|
|
3
|
-
import type { ITextDraw } from "@/interfaces";
|
|
4
|
-
import { logger } from "@/logger";
|
|
5
|
-
import * as fns from "@/wrapper/native/functions";
|
|
6
|
-
import {
|
|
7
|
-
IsValidPlayer3DTextLabel,
|
|
8
|
-
IsValidTextDraw,
|
|
9
|
-
IsTextDrawVisibleForPlayer,
|
|
10
|
-
PlayerTextDrawGetString,
|
|
11
|
-
TextDrawGetString,
|
|
12
|
-
PlayerTextDrawSetPos,
|
|
13
|
-
TextDrawSetPos,
|
|
14
|
-
PlayerTextDrawGetLetterSize,
|
|
15
|
-
TextDrawGetLetterSize,
|
|
16
|
-
PlayerTextDrawGetTextSize,
|
|
17
|
-
TextDrawGetTextSize,
|
|
18
|
-
PlayerTextDrawGetPos,
|
|
19
|
-
TextDrawGetPos,
|
|
20
|
-
PlayerTextDrawGetColour,
|
|
21
|
-
TextDrawGetColour,
|
|
22
|
-
PlayerTextDrawGetBoxColour,
|
|
23
|
-
TextDrawGetBoxColour,
|
|
24
|
-
PlayerTextDrawGetBackgroundColour,
|
|
25
|
-
TextDrawGetBackgroundColour,
|
|
26
|
-
PlayerTextDrawGetShadow,
|
|
27
|
-
TextDrawGetShadow,
|
|
28
|
-
PlayerTextDrawGetOutline,
|
|
29
|
-
TextDrawGetOutline,
|
|
30
|
-
PlayerTextDrawGetFont,
|
|
31
|
-
TextDrawGetFont,
|
|
32
|
-
PlayerTextDrawIsBox,
|
|
33
|
-
TextDrawIsBox,
|
|
34
|
-
PlayerTextDrawIsProportional,
|
|
35
|
-
TextDrawIsProportional,
|
|
36
|
-
PlayerTextDrawIsSelectable,
|
|
37
|
-
TextDrawIsSelectable,
|
|
38
|
-
PlayerTextDrawGetAlignment,
|
|
39
|
-
TextDrawGetAlignment,
|
|
40
|
-
PlayerTextDrawGetPreviewModel,
|
|
41
|
-
TextDrawGetPreviewModel,
|
|
42
|
-
PlayerTextDrawGetPreviewRot,
|
|
43
|
-
TextDrawGetPreviewRot,
|
|
44
|
-
PlayerTextDrawGetPreviewVehicleColours,
|
|
45
|
-
TextDrawGetPreviewVehicleColours,
|
|
46
|
-
} from "@infernus/wrapper";
|
|
47
|
-
|
|
48
|
-
import type { Player } from "../player";
|
|
49
|
-
import { textDrawBus, textDrawHooks } from "./textdrawBus";
|
|
50
|
-
|
|
51
|
-
export class TextDraw<P extends Player> {
|
|
52
|
-
private static createdGlobalCount = 0;
|
|
53
|
-
private static createdPlayerCount = 0;
|
|
54
|
-
private readonly sourceInfo: ITextDraw<P>;
|
|
55
|
-
private _id = -1;
|
|
56
|
-
get id() {
|
|
57
|
-
return this._id;
|
|
58
|
-
}
|
|
59
|
-
constructor(textDraw: ITextDraw<P>) {
|
|
60
|
-
this.sourceInfo = textDraw;
|
|
61
|
-
}
|
|
62
|
-
create(): void | this {
|
|
63
|
-
if (this.id !== -1)
|
|
64
|
-
return logger.warn("[TextDraw]: Unable to create the textdraw again");
|
|
65
|
-
const { x, y, text, player } = this.sourceInfo;
|
|
66
|
-
if (!player) {
|
|
67
|
-
if (TextDraw.createdGlobalCount === LimitsEnum.MAX_TEXT_DRAWS)
|
|
68
|
-
return logger.warn(
|
|
69
|
-
"[TextDraw]: Unable to continue to create textdraw, maximum allowable quantity has been reached"
|
|
70
|
-
);
|
|
71
|
-
this._id = fns.TextDrawCreate(x, y, text);
|
|
72
|
-
TextDraw.createdGlobalCount++;
|
|
73
|
-
} else {
|
|
74
|
-
if (TextDraw.createdPlayerCount === LimitsEnum.MAX_TEXT_DRAWS)
|
|
75
|
-
return logger.warn(
|
|
76
|
-
"[TextDraw]: Unable to continue to create textdraw, maximum allowable quantity has been reached"
|
|
77
|
-
);
|
|
78
|
-
this._id = fns.CreatePlayerTextDraw(player.id, x, y, text);
|
|
79
|
-
TextDraw.createdPlayerCount++;
|
|
80
|
-
// Player-textdraws are automatically destroyed when a player disconnects.
|
|
81
|
-
samp.addEventListener("OnPlayerDisconnect", this.unregisterEvent);
|
|
82
|
-
}
|
|
83
|
-
textDrawBus.emit(textDrawHooks.created, {
|
|
84
|
-
key: { id: this.id, global: player === undefined },
|
|
85
|
-
value: this,
|
|
86
|
-
});
|
|
87
|
-
return this;
|
|
88
|
-
}
|
|
89
|
-
destroy(): void | this {
|
|
90
|
-
if (this.id === -1)
|
|
91
|
-
return TextDraw.beforeCreateWarn("destroy the textdraw");
|
|
92
|
-
const { player } = this.sourceInfo;
|
|
93
|
-
if (!player) {
|
|
94
|
-
fns.TextDrawDestroy(this.id);
|
|
95
|
-
TextDraw.createdGlobalCount--;
|
|
96
|
-
} else {
|
|
97
|
-
fns.PlayerTextDrawDestroy(player.id, this.id);
|
|
98
|
-
TextDraw.createdPlayerCount--;
|
|
99
|
-
}
|
|
100
|
-
textDrawBus.emit(textDrawHooks.destroyed, {
|
|
101
|
-
id: this.id,
|
|
102
|
-
global: player === undefined,
|
|
103
|
-
});
|
|
104
|
-
this._id = -1;
|
|
105
|
-
return this;
|
|
106
|
-
}
|
|
107
|
-
setFont(style: 0 | 1 | 2 | 3 | TextDrawFontsEnum): void | this {
|
|
108
|
-
if (this.id === -1) return TextDraw.beforeCreateWarn("set font");
|
|
109
|
-
const { player } = this.sourceInfo;
|
|
110
|
-
if (player) fns.PlayerTextDrawFont(player.id, this.id, style);
|
|
111
|
-
else fns.TextDrawFont(this.id, style);
|
|
112
|
-
return this;
|
|
113
|
-
}
|
|
114
|
-
setColour(Colour: string | number): void | this {
|
|
115
|
-
if (this.id === -1) return TextDraw.beforeCreateWarn("set Colour");
|
|
116
|
-
const { player } = this.sourceInfo;
|
|
117
|
-
if (player) fns.PlayerTextDrawColour(player.id, this.id, Colour);
|
|
118
|
-
else fns.TextDrawColour(this.id, Colour);
|
|
119
|
-
return this;
|
|
120
|
-
}
|
|
121
|
-
setBoxColours(Colour: string | number): void | this {
|
|
122
|
-
if (this.id === -1) return TextDraw.beforeCreateWarn("set box Colour");
|
|
123
|
-
const { player } = this.sourceInfo;
|
|
124
|
-
if (player) fns.PlayerTextDrawBoxColour(player.id, this.id, Colour);
|
|
125
|
-
else fns.TextDrawBoxColour(this.id, Colour);
|
|
126
|
-
return this;
|
|
127
|
-
}
|
|
128
|
-
setBackgroundColours(Colour: string | number): void | this {
|
|
129
|
-
if (this.id === -1)
|
|
130
|
-
return TextDraw.beforeCreateWarn("set background Colour");
|
|
131
|
-
const { player } = this.sourceInfo;
|
|
132
|
-
if (player) fns.PlayerTextDrawBackgroundColour(player.id, this.id, Colour);
|
|
133
|
-
else fns.TextDrawBackgroundColour(this.id, Colour);
|
|
134
|
-
return this;
|
|
135
|
-
}
|
|
136
|
-
setAlignment(alignment: TextDrawAlignEnum): void | this {
|
|
137
|
-
if (this.id === -1) return TextDraw.beforeCreateWarn("set alignment");
|
|
138
|
-
const { player } = this.sourceInfo;
|
|
139
|
-
if (player) fns.PlayerTextDrawAlignment(player.id, this.id, alignment);
|
|
140
|
-
else fns.TextDrawAlignment(this.id, alignment);
|
|
141
|
-
return this;
|
|
142
|
-
}
|
|
143
|
-
setLetterSize(x: number, y: number): void | this {
|
|
144
|
-
if (this.id === -1) return TextDraw.beforeCreateWarn("set letter size");
|
|
145
|
-
const { player } = this.sourceInfo;
|
|
146
|
-
if (player) fns.PlayerTextDrawLetterSize(player.id, this.id, x, y);
|
|
147
|
-
else fns.TextDrawLetterSize(this.id, x, y);
|
|
148
|
-
return this;
|
|
149
|
-
}
|
|
150
|
-
setOutline(size: number): void | this {
|
|
151
|
-
if (this.id === -1) return TextDraw.beforeCreateWarn("set outline model");
|
|
152
|
-
if (size < 0) return logger.warn("[TextDraw]: Invalid outline value");
|
|
153
|
-
const { player } = this.sourceInfo;
|
|
154
|
-
if (player) fns.PlayerTextDrawSetOutline(player.id, this.id, size);
|
|
155
|
-
else fns.TextDrawSetOutline(this.id, size);
|
|
156
|
-
return this;
|
|
157
|
-
}
|
|
158
|
-
setPreviewModel(modelIndex: number): void | this {
|
|
159
|
-
if (this.id === -1) return TextDraw.beforeCreateWarn("set preview model");
|
|
160
|
-
this.setFont(TextDrawFontsEnum.MODEL_PREVIEW);
|
|
161
|
-
const { player } = this.sourceInfo;
|
|
162
|
-
if (player)
|
|
163
|
-
fns.PlayerTextDrawSetPreviewModel(player.id, this.id, modelIndex);
|
|
164
|
-
else fns.TextDrawSetPreviewModel(this.id, modelIndex);
|
|
165
|
-
return this;
|
|
166
|
-
}
|
|
167
|
-
setPreviewRot(
|
|
168
|
-
fRotX: number,
|
|
169
|
-
fRotY: number,
|
|
170
|
-
fRotZ: number,
|
|
171
|
-
fZoom = 1
|
|
172
|
-
): void | this {
|
|
173
|
-
if (this.id === -1) return TextDraw.beforeCreateWarn("set preview rot");
|
|
174
|
-
this.setFont(TextDrawFontsEnum.MODEL_PREVIEW);
|
|
175
|
-
const { player } = this.sourceInfo;
|
|
176
|
-
if (player)
|
|
177
|
-
fns.PlayerTextDrawSetPreviewRot(
|
|
178
|
-
player.id,
|
|
179
|
-
this.id,
|
|
180
|
-
fRotX,
|
|
181
|
-
fRotY,
|
|
182
|
-
fRotZ,
|
|
183
|
-
fZoom
|
|
184
|
-
);
|
|
185
|
-
else fns.TextDrawSetPreviewRot(this.id, fRotX, fRotY, fRotZ, fZoom);
|
|
186
|
-
return this;
|
|
187
|
-
}
|
|
188
|
-
setPreviewVehColours(Colour1: string, Colour2: string): void | this {
|
|
189
|
-
if (this.id === -1) return TextDraw.beforeCreateWarn("set preview veh col");
|
|
190
|
-
this.setFont(TextDrawFontsEnum.MODEL_PREVIEW);
|
|
191
|
-
const { player } = this.sourceInfo;
|
|
192
|
-
if (player)
|
|
193
|
-
fns.PlayerTextDrawSetPreviewVehicleColours(
|
|
194
|
-
player.id,
|
|
195
|
-
this.id,
|
|
196
|
-
Colour1,
|
|
197
|
-
Colour2
|
|
198
|
-
);
|
|
199
|
-
else fns.TextDrawSetPreviewVehicleColours(this.id, Colour1, Colour2);
|
|
200
|
-
return this;
|
|
201
|
-
}
|
|
202
|
-
setProportional(set = true): void | this {
|
|
203
|
-
if (this.id === -1) return TextDraw.beforeCreateWarn("set Proportional");
|
|
204
|
-
const { player } = this.sourceInfo;
|
|
205
|
-
if (player) fns.PlayerTextDrawSetProportional(player.id, this.id, set);
|
|
206
|
-
else fns.TextDrawSetProportional(this.id, set);
|
|
207
|
-
return this;
|
|
208
|
-
}
|
|
209
|
-
setSelectable(set: boolean): void | this {
|
|
210
|
-
if (this.id === -1) return TextDraw.beforeCreateWarn("set Selectable");
|
|
211
|
-
const { player } = this.sourceInfo;
|
|
212
|
-
if (player) fns.PlayerTextDrawSetSelectable(player.id, this.id, set);
|
|
213
|
-
else fns.TextDrawSetSelectable(this.id, set);
|
|
214
|
-
return this;
|
|
215
|
-
}
|
|
216
|
-
setShadow(size: number): void | this {
|
|
217
|
-
if (this.id === -1) return TextDraw.beforeCreateWarn("set shadow");
|
|
218
|
-
if (size < 0) return logger.warn("[TextDraw]: Invalid shadow value");
|
|
219
|
-
const { player } = this.sourceInfo;
|
|
220
|
-
if (player) fns.PlayerTextDrawSetShadow(player.id, this.id, size);
|
|
221
|
-
else fns.TextDrawSetShadow(this.id, size);
|
|
222
|
-
return this;
|
|
223
|
-
}
|
|
224
|
-
setString(text: string): void | this {
|
|
225
|
-
if (this.id === -1) return TextDraw.beforeCreateWarn("set string");
|
|
226
|
-
if (text.length === 0 || text.length > 1024)
|
|
227
|
-
return logger.warn("[TextDraw]: Invalid text length");
|
|
228
|
-
const { player } = this.sourceInfo;
|
|
229
|
-
if (player) fns.PlayerTextDrawSetString(player.id, this.id, text);
|
|
230
|
-
else fns.TextDrawSetString(this.id, text);
|
|
231
|
-
return this;
|
|
232
|
-
}
|
|
233
|
-
setTextSize(x: number, y: number): void | this {
|
|
234
|
-
if (this.id === -1) return TextDraw.beforeCreateWarn("set TextSize");
|
|
235
|
-
fns.TextDrawTextSize(this.id, x, y);
|
|
236
|
-
return this;
|
|
237
|
-
}
|
|
238
|
-
useBox(use: boolean): void | this {
|
|
239
|
-
if (this.id === -1) return TextDraw.beforeCreateWarn("set TextSize");
|
|
240
|
-
const { player } = this.sourceInfo;
|
|
241
|
-
if (player) fns.PlayerTextDrawUseBox(player.id, this.id, use);
|
|
242
|
-
else fns.TextDrawUseBox(this.id, use);
|
|
243
|
-
return this;
|
|
244
|
-
}
|
|
245
|
-
private static beforeCreateWarn(msg: string): void {
|
|
246
|
-
logger.warn(`[TextDraw]: Unable to ${msg} before create`);
|
|
247
|
-
}
|
|
248
|
-
private unregisterEvent() {
|
|
249
|
-
this.destroy();
|
|
250
|
-
samp.removeEventListener("OnPlayerDisconnect", this.unregisterEvent);
|
|
251
|
-
return 1;
|
|
252
|
-
}
|
|
253
|
-
// player's textdraw should be shown / hidden only for whom it is created.
|
|
254
|
-
show(player?: P): void | this {
|
|
255
|
-
if (this.id === -1) return TextDraw.beforeCreateWarn("show");
|
|
256
|
-
const p = this.sourceInfo.player;
|
|
257
|
-
if (p) fns.PlayerTextDrawShow(p.id, this.id);
|
|
258
|
-
else {
|
|
259
|
-
if (player) fns.TextDrawShowForPlayer(player.id, this.id);
|
|
260
|
-
else return logger.warn("[TextDraw]: invalid player for show");
|
|
261
|
-
}
|
|
262
|
-
return this;
|
|
263
|
-
}
|
|
264
|
-
hide(player?: P): void | this {
|
|
265
|
-
if (this.id === -1) return TextDraw.beforeCreateWarn("hide");
|
|
266
|
-
const p = this.sourceInfo.player;
|
|
267
|
-
if (p) fns.PlayerTextDrawHide(p.id, this.id);
|
|
268
|
-
else {
|
|
269
|
-
if (player) fns.TextDrawHideForPlayer(player.id, this.id);
|
|
270
|
-
else return logger.warn("[TextDraw]: invalid player for hide");
|
|
271
|
-
}
|
|
272
|
-
return this;
|
|
273
|
-
}
|
|
274
|
-
showAll(): void | this {
|
|
275
|
-
if (this.id === -1) return TextDraw.beforeCreateWarn("show");
|
|
276
|
-
const p = this.sourceInfo.player;
|
|
277
|
-
if (!p) {
|
|
278
|
-
fns.TextDrawShowForAll(this.id);
|
|
279
|
-
return this;
|
|
280
|
-
}
|
|
281
|
-
return logger.warn(
|
|
282
|
-
"[TextDraw]: player's textdraw should not be show for all."
|
|
283
|
-
);
|
|
284
|
-
}
|
|
285
|
-
hideAll(): void | this {
|
|
286
|
-
if (this.id === -1) return TextDraw.beforeCreateWarn("hideAll");
|
|
287
|
-
const p = this.sourceInfo.player;
|
|
288
|
-
if (!p) {
|
|
289
|
-
fns.TextDrawHideForAll(this.id);
|
|
290
|
-
return this;
|
|
291
|
-
}
|
|
292
|
-
return logger.warn(
|
|
293
|
-
"[TextDraw]: player's textdraw should not be hide for all."
|
|
294
|
-
);
|
|
295
|
-
}
|
|
296
|
-
isValid(): boolean {
|
|
297
|
-
const p = this.sourceInfo.player;
|
|
298
|
-
if (p) return IsValidPlayer3DTextLabel(p.id, this.id);
|
|
299
|
-
return IsValidTextDraw(this.id);
|
|
300
|
-
}
|
|
301
|
-
isVisibleForPlayer<P extends Player>(player: P): boolean {
|
|
302
|
-
if (this.id === -1) return false;
|
|
303
|
-
return IsTextDrawVisibleForPlayer(player.id, this.id);
|
|
304
|
-
}
|
|
305
|
-
getString(): string {
|
|
306
|
-
if (this.id === -1) return this.sourceInfo.text;
|
|
307
|
-
const p = this.sourceInfo.player;
|
|
308
|
-
if (p) return PlayerTextDrawGetString(p.id, this.id);
|
|
309
|
-
return TextDrawGetString(this.id);
|
|
310
|
-
}
|
|
311
|
-
setPos(fX: number, fY: number): void | this {
|
|
312
|
-
if (this.id === -1) return TextDraw.beforeCreateWarn("set position");
|
|
313
|
-
const p = this.sourceInfo.player;
|
|
314
|
-
if (p) PlayerTextDrawSetPos(p.id, this.id, fX, fY);
|
|
315
|
-
else TextDrawSetPos(this.id, fX, fY);
|
|
316
|
-
return this;
|
|
317
|
-
}
|
|
318
|
-
getLetterSize() {
|
|
319
|
-
if (this.id === -1) return TextDraw.beforeCreateWarn("get letter size");
|
|
320
|
-
const p = this.sourceInfo.player;
|
|
321
|
-
if (p) return PlayerTextDrawGetLetterSize(p.id, this.id);
|
|
322
|
-
return TextDrawGetLetterSize(this.id);
|
|
323
|
-
}
|
|
324
|
-
getTextSize() {
|
|
325
|
-
if (this.id === -1) return TextDraw.beforeCreateWarn("get text size");
|
|
326
|
-
const p = this.sourceInfo.player;
|
|
327
|
-
if (p) return PlayerTextDrawGetTextSize(p.id, this.id);
|
|
328
|
-
return TextDrawGetTextSize(this.id);
|
|
329
|
-
}
|
|
330
|
-
getPos() {
|
|
331
|
-
if (this.id === -1) return TextDraw.beforeCreateWarn("get position");
|
|
332
|
-
const p = this.sourceInfo.player;
|
|
333
|
-
if (p) return PlayerTextDrawGetPos(p.id, this.id);
|
|
334
|
-
return TextDrawGetPos(this.id);
|
|
335
|
-
}
|
|
336
|
-
getColour() {
|
|
337
|
-
if (this.id === -1) return TextDraw.beforeCreateWarn("get Colour");
|
|
338
|
-
const p = this.sourceInfo.player;
|
|
339
|
-
if (p) return PlayerTextDrawGetColour(p.id, this.id);
|
|
340
|
-
return TextDrawGetColour(this.id);
|
|
341
|
-
}
|
|
342
|
-
getBoxColour() {
|
|
343
|
-
if (this.id === -1) return TextDraw.beforeCreateWarn("get box Colour");
|
|
344
|
-
const p = this.sourceInfo.player;
|
|
345
|
-
if (p) return PlayerTextDrawGetBoxColour(p.id, this.id);
|
|
346
|
-
return TextDrawGetBoxColour(this.id);
|
|
347
|
-
}
|
|
348
|
-
getBackgroundColour() {
|
|
349
|
-
if (this.id === -1) return TextDraw.beforeCreateWarn("get bg Colour");
|
|
350
|
-
const p = this.sourceInfo.player;
|
|
351
|
-
if (p) return PlayerTextDrawGetBackgroundColour(p.id, this.id);
|
|
352
|
-
return TextDrawGetBackgroundColour(this.id);
|
|
353
|
-
}
|
|
354
|
-
getShadow() {
|
|
355
|
-
if (this.id === -1) return TextDraw.beforeCreateWarn("get shadow");
|
|
356
|
-
const p = this.sourceInfo.player;
|
|
357
|
-
if (p) return PlayerTextDrawGetShadow(p.id, this.id);
|
|
358
|
-
return TextDrawGetShadow(this.id);
|
|
359
|
-
}
|
|
360
|
-
getOutline() {
|
|
361
|
-
if (this.id === -1) return TextDraw.beforeCreateWarn("get outline");
|
|
362
|
-
const p = this.sourceInfo.player;
|
|
363
|
-
if (p) return PlayerTextDrawGetOutline(p.id, this.id);
|
|
364
|
-
return TextDrawGetOutline(this.id);
|
|
365
|
-
}
|
|
366
|
-
getFont() {
|
|
367
|
-
if (this.id === -1) return TextDraw.beforeCreateWarn("get font");
|
|
368
|
-
const p = this.sourceInfo.player;
|
|
369
|
-
if (p) return PlayerTextDrawGetFont(p.id, this.id);
|
|
370
|
-
return TextDrawGetFont(this.id);
|
|
371
|
-
}
|
|
372
|
-
isBox() {
|
|
373
|
-
if (this.id === -1) return false;
|
|
374
|
-
const p = this.sourceInfo.player;
|
|
375
|
-
if (p) return PlayerTextDrawIsBox(p.id, this.id);
|
|
376
|
-
return TextDrawIsBox(this.id);
|
|
377
|
-
}
|
|
378
|
-
isProportional() {
|
|
379
|
-
if (this.id === -1) return false;
|
|
380
|
-
const p = this.sourceInfo.player;
|
|
381
|
-
if (p) return PlayerTextDrawIsProportional(p.id, this.id);
|
|
382
|
-
return TextDrawIsProportional(this.id);
|
|
383
|
-
}
|
|
384
|
-
isSelectable() {
|
|
385
|
-
if (this.id === -1) return false;
|
|
386
|
-
const p = this.sourceInfo.player;
|
|
387
|
-
if (p) return PlayerTextDrawIsSelectable(p.id, this.id);
|
|
388
|
-
return TextDrawIsSelectable(this.id);
|
|
389
|
-
}
|
|
390
|
-
getAlignment() {
|
|
391
|
-
if (this.id === -1) return TextDraw.beforeCreateWarn("get alignment");
|
|
392
|
-
const p = this.sourceInfo.player;
|
|
393
|
-
if (p) return PlayerTextDrawGetAlignment(p.id, this.id);
|
|
394
|
-
return TextDrawGetAlignment(this.id);
|
|
395
|
-
}
|
|
396
|
-
getPreviewModel() {
|
|
397
|
-
if (this.id === -1) return TextDraw.beforeCreateWarn("get preview model");
|
|
398
|
-
const p = this.sourceInfo.player;
|
|
399
|
-
if (p) return PlayerTextDrawGetPreviewModel(p.id, this.id);
|
|
400
|
-
return TextDrawGetPreviewModel(this.id);
|
|
401
|
-
}
|
|
402
|
-
getPreviewRot() {
|
|
403
|
-
if (this.id === -1)
|
|
404
|
-
return TextDraw.beforeCreateWarn("get preview rotation");
|
|
405
|
-
const p = this.sourceInfo.player;
|
|
406
|
-
if (p) return PlayerTextDrawGetPreviewRot(p.id, this.id);
|
|
407
|
-
return TextDrawGetPreviewRot(this.id);
|
|
408
|
-
}
|
|
409
|
-
getPreviewVehColours() {
|
|
410
|
-
if (this.id === -1)
|
|
411
|
-
return TextDraw.beforeCreateWarn("get preview vel Colours");
|
|
412
|
-
const p = this.sourceInfo.player;
|
|
413
|
-
if (p) return PlayerTextDrawGetPreviewVehicleColours(p.id, this.id);
|
|
414
|
-
return TextDrawGetPreviewVehicleColours(this.id);
|
|
415
|
-
}
|
|
416
|
-
}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { InvalidEnum } from "@/enums";
|
|
2
|
-
import type { ICommonTextDrawKey } from "@/interfaces";
|
|
3
|
-
import type { TCommonCallback } from "@/types";
|
|
4
|
-
import { promisifyCallback } from "@/utils/helperUtils";
|
|
5
|
-
import {
|
|
6
|
-
OnGameModeExit,
|
|
7
|
-
OnPlayerClickPlayerTextDraw,
|
|
8
|
-
OnPlayerClickTextDraw,
|
|
9
|
-
} from "@/wrapper/native/callbacks";
|
|
10
|
-
import type { Player } from "../player";
|
|
11
|
-
import type { TextDraw } from "./baseTextDraw";
|
|
12
|
-
import { textDrawBus, textDrawHooks } from "./textdrawBus";
|
|
13
|
-
|
|
14
|
-
export class TextDrawEvent<P extends Player, T extends TextDraw<P>> {
|
|
15
|
-
readonly textDraws = new Map<ICommonTextDrawKey, T>();
|
|
16
|
-
private readonly players;
|
|
17
|
-
constructor(playersMap: Map<number, P>, destroyOnExit = true) {
|
|
18
|
-
this.players = playersMap;
|
|
19
|
-
textDrawBus.on(
|
|
20
|
-
textDrawHooks.created,
|
|
21
|
-
(res: { key: ICommonTextDrawKey; value: T }) => {
|
|
22
|
-
this.textDraws.set(res.key, res.value);
|
|
23
|
-
}
|
|
24
|
-
);
|
|
25
|
-
textDrawBus.on(textDrawHooks.destroyed, (res: ICommonTextDrawKey) => {
|
|
26
|
-
if (this.textDraws.has(res)) this.textDraws.delete(res);
|
|
27
|
-
});
|
|
28
|
-
if (destroyOnExit) {
|
|
29
|
-
OnGameModeExit(() => {
|
|
30
|
-
this.textDraws.forEach((t) => t.destroy());
|
|
31
|
-
this.textDraws.clear();
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
OnPlayerClickTextDraw((playerid, clickedid): number => {
|
|
35
|
-
const p = this.players.get(playerid);
|
|
36
|
-
if (!p) return 0;
|
|
37
|
-
const t = this.textDraws.get({ id: clickedid, global: true });
|
|
38
|
-
const pFn = promisifyCallback(
|
|
39
|
-
this,
|
|
40
|
-
"onPlayerClick",
|
|
41
|
-
"OnPlayerClickTextDraw"
|
|
42
|
-
);
|
|
43
|
-
return pFn(p, t || InvalidEnum.TEXT_DRAW);
|
|
44
|
-
});
|
|
45
|
-
OnPlayerClickPlayerTextDraw((playerid, clickedid): number => {
|
|
46
|
-
const p = this.players.get(playerid);
|
|
47
|
-
if (!p) return 0;
|
|
48
|
-
const t = this.textDraws.get({ id: clickedid, global: false });
|
|
49
|
-
const pFn = promisifyCallback(
|
|
50
|
-
this,
|
|
51
|
-
"onPlayerClick",
|
|
52
|
-
"OnPlayerClickPlayerTextDraw"
|
|
53
|
-
);
|
|
54
|
-
return pFn(p, t || InvalidEnum.TEXT_DRAW);
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
onPlayerClick?(
|
|
58
|
-
player: P,
|
|
59
|
-
textdraw: T | InvalidEnum.TEXT_DRAW
|
|
60
|
-
): TCommonCallback;
|
|
61
|
-
}
|