@open-core/framework 0.1.0-alpha.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/LICENSE +373 -0
- package/README.md +360 -0
- package/dist/client/client-bootstrap.d.ts +1 -0
- package/dist/client/client-bootstrap.js +50 -0
- package/dist/client/client-container.d.ts +2 -0
- package/dist/client/client-container.js +6 -0
- package/dist/client/client-core.d.ts +1 -0
- package/dist/client/client-core.js +7 -0
- package/dist/client/controllers/spawner.controller.d.ts +12 -0
- package/dist/client/controllers/spawner.controller.js +51 -0
- package/dist/client/decorators/controller.d.ts +3 -0
- package/dist/client/decorators/controller.js +14 -0
- package/dist/client/decorators/export.d.ts +7 -0
- package/dist/client/decorators/export.js +15 -0
- package/dist/client/decorators/gameEvent.d.ts +47 -0
- package/dist/client/decorators/gameEvent.js +54 -0
- package/dist/client/decorators/index.d.ts +10 -0
- package/dist/client/decorators/index.js +26 -0
- package/dist/client/decorators/interval.d.ts +7 -0
- package/dist/client/decorators/interval.js +15 -0
- package/dist/client/decorators/key.d.ts +2 -0
- package/dist/client/decorators/key.js +10 -0
- package/dist/client/decorators/localEvent.d.ts +7 -0
- package/dist/client/decorators/localEvent.js +15 -0
- package/dist/client/decorators/nui.d.ts +1 -0
- package/dist/client/decorators/nui.js +9 -0
- package/dist/client/decorators/onNet.d.ts +1 -0
- package/dist/client/decorators/onNet.js +9 -0
- package/dist/client/decorators/resourceLifecycle.d.ts +11 -0
- package/dist/client/decorators/resourceLifecycle.js +24 -0
- package/dist/client/decorators/tick.d.ts +1 -0
- package/dist/client/decorators/tick.js +9 -0
- package/dist/client/index.d.ts +7 -0
- package/dist/client/index.js +23 -0
- package/dist/client/interfaces/appearance.interface.d.ts +19 -0
- package/dist/client/interfaces/appearance.interface.js +2 -0
- package/dist/client/player/player.d.ts +262 -0
- package/dist/client/player/player.js +480 -0
- package/dist/client/player/player.loader.d.ts +1 -0
- package/dist/client/player/player.loader.js +22 -0
- package/dist/client/services/appearance.service.d.ts +6 -0
- package/dist/client/services/appearance.service.js +89 -0
- package/dist/client/services/blip.service.d.ts +112 -0
- package/dist/client/services/blip.service.js +215 -0
- package/dist/client/services/index.d.ts +9 -0
- package/dist/client/services/index.js +25 -0
- package/dist/client/services/marker.service.d.ts +94 -0
- package/dist/client/services/marker.service.js +153 -0
- package/dist/client/services/notification.service.d.ts +76 -0
- package/dist/client/services/notification.service.js +111 -0
- package/dist/client/services/ped.service.d.ts +182 -0
- package/dist/client/services/ped.service.js +302 -0
- package/dist/client/services/progress.service.d.ts +82 -0
- package/dist/client/services/progress.service.js +210 -0
- package/dist/client/services/spawn.service.d.ts +73 -0
- package/dist/client/services/spawn.service.js +261 -0
- package/dist/client/services/streaming.service.d.ts +165 -0
- package/dist/client/services/streaming.service.js +341 -0
- package/dist/client/services/textui.service.d.ts +82 -0
- package/dist/client/services/textui.service.js +156 -0
- package/dist/client/services/vehicle.service.d.ts +168 -0
- package/dist/client/services/vehicle.service.js +296 -0
- package/dist/client/system/metadata-client.keys.d.ts +13 -0
- package/dist/client/system/metadata-client.keys.js +16 -0
- package/dist/client/system/processors/export.processor.d.ts +7 -0
- package/dist/client/system/processors/export.processor.js +39 -0
- package/dist/client/system/processors/gameEvent.processor.d.ts +10 -0
- package/dist/client/system/processors/gameEvent.processor.js +58 -0
- package/dist/client/system/processors/interval.processor.d.ts +7 -0
- package/dist/client/system/processors/interval.processor.js +43 -0
- package/dist/client/system/processors/key.processor.d.ts +8 -0
- package/dist/client/system/processors/key.processor.js +27 -0
- package/dist/client/system/processors/localEvent.processor.d.ts +7 -0
- package/dist/client/system/processors/localEvent.processor.js +38 -0
- package/dist/client/system/processors/netEvent.processor.d.ts +7 -0
- package/dist/client/system/processors/netEvent.processor.js +38 -0
- package/dist/client/system/processors/nui.processor.d.ts +7 -0
- package/dist/client/system/processors/nui.processor.js +40 -0
- package/dist/client/system/processors/resourceLifecycle.processor.d.ts +9 -0
- package/dist/client/system/processors/resourceLifecycle.processor.js +69 -0
- package/dist/client/system/processors/tick.processor.d.ts +5 -0
- package/dist/client/system/processors/tick.processor.js +37 -0
- package/dist/client/system/processors.register.d.ts +1 -0
- package/dist/client/system/processors.register.js +27 -0
- package/dist/client/types/game-events.d.ts +126 -0
- package/dist/client/types/game-events.js +83 -0
- package/dist/client/types/index.d.ts +1 -0
- package/dist/client/types/index.js +17 -0
- package/dist/client/ui-bridge.d.ts +116 -0
- package/dist/client/ui-bridge.js +201 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +41 -0
- package/dist/server/bootstrap.d.ts +16 -0
- package/dist/server/bootstrap.js +57 -0
- package/dist/server/bus/core-event-bus.d.ts +6 -0
- package/dist/server/bus/core-event-bus.js +31 -0
- package/dist/server/configs/api.config.d.ts +71 -0
- package/dist/server/configs/api.config.js +81 -0
- package/dist/server/configs/config.base.d.ts +63 -0
- package/dist/server/configs/config.base.js +64 -0
- package/dist/server/configs/index.d.ts +2 -0
- package/dist/server/configs/index.js +18 -0
- package/dist/server/container.d.ts +2 -0
- package/dist/server/container.js +6 -0
- package/dist/server/controllers/chat.controller.d.ts +10 -0
- package/dist/server/controllers/chat.controller.js +50 -0
- package/dist/server/controllers/command.controller.d.ts +7 -0
- package/dist/server/controllers/command.controller.js +47 -0
- package/dist/server/controllers/session.controller.d.ts +9 -0
- package/dist/server/controllers/session.controller.js +70 -0
- package/dist/server/core.d.ts +1 -0
- package/dist/server/core.js +7 -0
- package/dist/server/database/adapters/oxmysql.adapter.d.ts +89 -0
- package/dist/server/database/adapters/oxmysql.adapter.js +149 -0
- package/dist/server/database/database.contract.d.ts +128 -0
- package/dist/server/database/database.contract.js +29 -0
- package/dist/server/database/database.service.d.ts +216 -0
- package/dist/server/database/database.service.js +301 -0
- package/dist/server/database/index.d.ts +53 -0
- package/dist/server/database/index.js +70 -0
- package/dist/server/database/types.d.ts +67 -0
- package/dist/server/database/types.js +7 -0
- package/dist/server/database.d.ts +7 -0
- package/dist/server/database.js +23 -0
- package/dist/server/decorators/bind.d.ts +2 -0
- package/dist/server/decorators/bind.js +15 -0
- package/dist/server/decorators/command.d.ts +49 -0
- package/dist/server/decorators/command.js +23 -0
- package/dist/server/decorators/controller.d.ts +25 -0
- package/dist/server/decorators/controller.js +36 -0
- package/dist/server/decorators/export.d.ts +39 -0
- package/dist/server/decorators/export.js +47 -0
- package/dist/server/decorators/guard.d.ts +56 -0
- package/dist/server/decorators/guard.js +82 -0
- package/dist/server/decorators/index.d.ts +10 -0
- package/dist/server/decorators/index.js +29 -0
- package/dist/server/decorators/onFiveMEvent.d.ts +6 -0
- package/dist/server/decorators/onFiveMEvent.js +14 -0
- package/dist/server/decorators/onFrameworkEvent.d.ts +22 -0
- package/dist/server/decorators/onFrameworkEvent.js +29 -0
- package/dist/server/decorators/onNet.d.ts +58 -0
- package/dist/server/decorators/onNet.js +57 -0
- package/dist/server/decorators/onTick.d.ts +32 -0
- package/dist/server/decorators/onTick.js +40 -0
- package/dist/server/decorators/public.d.ts +27 -0
- package/dist/server/decorators/public.js +36 -0
- package/dist/server/decorators/requiresState.d.ts +56 -0
- package/dist/server/decorators/requiresState.js +63 -0
- package/dist/server/decorators/throttle.d.ts +48 -0
- package/dist/server/decorators/throttle.js +63 -0
- package/dist/server/decorators/utils.d.ts +57 -0
- package/dist/server/decorators/utils.js +63 -0
- package/dist/server/entities/index.d.ts +1 -0
- package/dist/server/entities/index.js +17 -0
- package/dist/server/entities/player.d.ts +157 -0
- package/dist/server/entities/player.js +217 -0
- package/dist/server/error-handler.d.ts +2 -0
- package/dist/server/error-handler.js +43 -0
- package/dist/server/helpers/resolve-method.d.ts +5 -0
- package/dist/server/helpers/resolve-method.js +18 -0
- package/dist/server/index.d.ts +10 -0
- package/dist/server/index.js +31 -0
- package/dist/server/loaders/exports.loader.d.ts +0 -0
- package/dist/server/loaders/exports.loader.js +23 -0
- package/dist/server/loaders/playerSession.loader.d.ts +1 -0
- package/dist/server/loaders/playerSession.loader.js +51 -0
- package/dist/server/services/access-control.service.d.ts +56 -0
- package/dist/server/services/access-control.service.js +99 -0
- package/dist/server/services/chat.service.d.ts +7 -0
- package/dist/server/services/chat.service.js +31 -0
- package/dist/server/services/command.service.d.ts +15 -0
- package/dist/server/services/command.service.js +77 -0
- package/dist/server/services/config.service.d.ts +75 -0
- package/dist/server/services/config.service.js +116 -0
- package/dist/server/services/default/default-security.handler.d.ts +6 -0
- package/dist/server/services/default/default-security.handler.js +26 -0
- package/dist/server/services/http/http.service.d.ts +50 -0
- package/dist/server/services/http/http.service.js +126 -0
- package/dist/server/services/index.d.ts +10 -0
- package/dist/server/services/index.js +26 -0
- package/dist/server/services/parallel/index.d.ts +49 -0
- package/dist/server/services/parallel/index.js +67 -0
- package/dist/server/services/parallel/parallel-compute.service.d.ts +132 -0
- package/dist/server/services/parallel/parallel-compute.service.js +449 -0
- package/dist/server/services/parallel/types.d.ts +188 -0
- package/dist/server/services/parallel/types.js +7 -0
- package/dist/server/services/parallel/worker-pool.d.ts +83 -0
- package/dist/server/services/parallel/worker-pool.js +350 -0
- package/dist/server/services/parallel/worker.d.ts +19 -0
- package/dist/server/services/parallel/worker.js +49 -0
- package/dist/server/services/persistence.service.d.ts +59 -0
- package/dist/server/services/persistence.service.js +166 -0
- package/dist/server/services/player.service.d.ts +96 -0
- package/dist/server/services/player.service.js +132 -0
- package/dist/server/services/rate-limiter.service.d.ts +5 -0
- package/dist/server/services/rate-limiter.service.js +39 -0
- package/dist/server/services/registers.d.ts +1 -0
- package/dist/server/services/registers.js +18 -0
- package/dist/server/setup.d.ts +9 -0
- package/dist/server/setup.js +28 -0
- package/dist/server/system/metadata-server.keys.d.ts +10 -0
- package/dist/server/system/metadata-server.keys.js +13 -0
- package/dist/server/system/processors/command.processor.d.ts +9 -0
- package/dist/server/system/processors/command.processor.js +30 -0
- package/dist/server/system/processors/coreEvent.processor.d.ts +7 -0
- package/dist/server/system/processors/coreEvent.processor.js +41 -0
- package/dist/server/system/processors/export.processor.d.ts +7 -0
- package/dist/server/system/processors/export.processor.js +30 -0
- package/dist/server/system/processors/fivemEvent.processor.d.ts +7 -0
- package/dist/server/system/processors/fivemEvent.processor.js +40 -0
- package/dist/server/system/processors/netEvent.processor.d.ts +11 -0
- package/dist/server/system/processors/netEvent.processor.js +103 -0
- package/dist/server/system/processors/tick.processor.d.ts +5 -0
- package/dist/server/system/processors/tick.processor.js +36 -0
- package/dist/server/system/processors.register.d.ts +1 -0
- package/dist/server/system/processors.register.js +23 -0
- package/dist/server/system/schema-generator.d.ts +2 -0
- package/dist/server/system/schema-generator.js +34 -0
- package/dist/server/templates/admin/admin.controller-template.d.ts +12 -0
- package/dist/server/templates/admin/admin.controller-template.js +2 -0
- package/dist/server/templates/auth/auth-provider.contract.d.ts +58 -0
- package/dist/server/templates/auth/auth-provider.contract.js +23 -0
- package/dist/server/templates/index.d.ts +8 -0
- package/dist/server/templates/index.js +21 -0
- package/dist/server/templates/persistence/index.d.ts +30 -0
- package/dist/server/templates/persistence/index.js +34 -0
- package/dist/server/templates/persistence/player-persistence.contract.d.ts +86 -0
- package/dist/server/templates/persistence/player-persistence.contract.js +52 -0
- package/dist/server/templates/repository/index.d.ts +57 -0
- package/dist/server/templates/repository/index.js +61 -0
- package/dist/server/templates/repository/repository.contract.d.ts +224 -0
- package/dist/server/templates/repository/repository.contract.js +342 -0
- package/dist/server/templates/repository/repository.types.d.ts +51 -0
- package/dist/server/templates/repository/repository.types.js +7 -0
- package/dist/server/templates/security/permission.types.d.ts +32 -0
- package/dist/server/templates/security/permission.types.js +2 -0
- package/dist/server/templates/security/principal-provider.contract.d.ts +43 -0
- package/dist/server/templates/security/principal-provider.contract.js +19 -0
- package/dist/server/templates/security/security-handler.contract.d.ts +5 -0
- package/dist/server/templates/security/security-handler.contract.js +6 -0
- package/dist/server/types/core-events.d.ts +22 -0
- package/dist/server/types/core-events.js +2 -0
- package/dist/server/types/security.types.d.ts +7 -0
- package/dist/server/types/security.types.js +2 -0
- package/dist/shared/index.d.ts +1 -0
- package/dist/shared/index.js +17 -0
- package/dist/shared/logger/core-logger.d.ts +35 -0
- package/dist/shared/logger/core-logger.js +52 -0
- package/dist/shared/logger/index.d.ts +11 -0
- package/dist/shared/logger/index.js +26 -0
- package/dist/shared/logger/logger.config.d.ts +47 -0
- package/dist/shared/logger/logger.config.js +33 -0
- package/dist/shared/logger/logger.service.d.ts +161 -0
- package/dist/shared/logger/logger.service.js +279 -0
- package/dist/shared/logger/logger.types.d.ts +85 -0
- package/dist/shared/logger/logger.types.js +74 -0
- package/dist/shared/logger/transports/buffered.transport.d.ts +88 -0
- package/dist/shared/logger/transports/buffered.transport.js +174 -0
- package/dist/shared/logger/transports/console.transport.d.ts +37 -0
- package/dist/shared/logger/transports/console.transport.js +134 -0
- package/dist/shared/logger/transports/index.d.ts +3 -0
- package/dist/shared/logger/transports/index.js +19 -0
- package/dist/shared/logger/transports/transport.interface.d.ts +40 -0
- package/dist/shared/logger/transports/transport.interface.js +2 -0
- package/dist/system/class-constructor.d.ts +1 -0
- package/dist/system/class-constructor.js +2 -0
- package/dist/system/decorator-processor.d.ts +4 -0
- package/dist/system/decorator-processor.js +2 -0
- package/dist/system/metadata.scanner.d.ts +7 -0
- package/dist/system/metadata.scanner.js +45 -0
- package/dist/utils/errors.d.ts +14 -0
- package/dist/utils/errors.js +25 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.js +20 -0
- package/dist/utils/result.d.ts +12 -0
- package/dist/utils/result.js +10 -0
- package/dist/utils/rgb.d.ts +5 -0
- package/dist/utils/rgb.js +2 -0
- package/dist/utils/vector3.d.ts +13 -0
- package/dist/utils/vector3.js +27 -0
- package/package.json +98 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.NotificationService = void 0;
|
|
10
|
+
const tsyringe_1 = require("tsyringe");
|
|
11
|
+
/**
|
|
12
|
+
* Service for displaying native GTA V notifications.
|
|
13
|
+
*/
|
|
14
|
+
let NotificationService = class NotificationService {
|
|
15
|
+
/**
|
|
16
|
+
* Show a simple notification on screen.
|
|
17
|
+
*
|
|
18
|
+
* @param message - The message to display
|
|
19
|
+
* @param blink - Whether the notification should blink
|
|
20
|
+
*/
|
|
21
|
+
show(message, blink = false) {
|
|
22
|
+
SetNotificationTextEntry('STRING');
|
|
23
|
+
AddTextComponentString(message);
|
|
24
|
+
DrawNotification(blink, true);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Show a notification with a type indicator using throbber icons.
|
|
28
|
+
*
|
|
29
|
+
* @param message - The message to display
|
|
30
|
+
* @param type - The notification type
|
|
31
|
+
*/
|
|
32
|
+
showWithType(message, type = 'info') {
|
|
33
|
+
const iconMap = {
|
|
34
|
+
info: 1,
|
|
35
|
+
success: 2,
|
|
36
|
+
warning: 3,
|
|
37
|
+
error: 4,
|
|
38
|
+
};
|
|
39
|
+
BeginTextCommandThefeedPost('STRING');
|
|
40
|
+
AddTextComponentString(message);
|
|
41
|
+
EndTextCommandThefeedPostMessagetext('CHAR_SOCIAL_CLUB', 'CHAR_SOCIAL_CLUB', true, iconMap[type], '', message);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Show an advanced notification with picture/icon.
|
|
45
|
+
*
|
|
46
|
+
* @param options - Advanced notification options
|
|
47
|
+
*/
|
|
48
|
+
showAdvanced(options) {
|
|
49
|
+
const { title, subtitle = '', message, textureDict = 'CHAR_HUMANDEFAULT', textureName = 'CHAR_HUMANDEFAULT', iconType = 1, flash = false, saveToBrief = true, backgroundColor, } = options;
|
|
50
|
+
SetNotificationTextEntry('STRING');
|
|
51
|
+
AddTextComponentString(message);
|
|
52
|
+
if (backgroundColor !== undefined) {
|
|
53
|
+
SetNotificationBackgroundColor(backgroundColor);
|
|
54
|
+
}
|
|
55
|
+
SetNotificationMessage(textureDict, textureName, flash, iconType, title, subtitle);
|
|
56
|
+
DrawNotification(flash, saveToBrief);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Show a help notification (appears at top-left).
|
|
60
|
+
*
|
|
61
|
+
* @param message - The help message
|
|
62
|
+
* @param duration - How long to show in milliseconds (-1 for indefinite)
|
|
63
|
+
* @param beep - Play a beep sound
|
|
64
|
+
* @param looped - Keep showing until cleared
|
|
65
|
+
*/
|
|
66
|
+
showHelp(message, duration = 5000, beep = true, looped = false) {
|
|
67
|
+
BeginTextCommandDisplayHelp('STRING');
|
|
68
|
+
AddTextComponentSubstringPlayerName(message);
|
|
69
|
+
EndTextCommandDisplayHelp(0, looped, beep, duration);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Clear all help messages.
|
|
73
|
+
*/
|
|
74
|
+
clearHelp() {
|
|
75
|
+
ClearAllHelpMessages();
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Show a subtitle (centered at bottom of screen).
|
|
79
|
+
*
|
|
80
|
+
* @param message - The subtitle text
|
|
81
|
+
* @param duration - Duration in milliseconds
|
|
82
|
+
*/
|
|
83
|
+
showSubtitle(message, duration = 2500) {
|
|
84
|
+
BeginTextCommandPrint('STRING');
|
|
85
|
+
AddTextComponentSubstringPlayerName(message);
|
|
86
|
+
EndTextCommandPrint(duration, true);
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Clear the current subtitle.
|
|
90
|
+
*/
|
|
91
|
+
clearSubtitle() {
|
|
92
|
+
ClearPrints();
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Show a floating help text above the player's head.
|
|
96
|
+
*
|
|
97
|
+
* @param message - The message to display
|
|
98
|
+
*/
|
|
99
|
+
showFloatingHelp(message) {
|
|
100
|
+
const [x, y, z] = GetEntityCoords(PlayerPedId(), true);
|
|
101
|
+
SetFloatingHelpTextWorldPosition(1, x, y, z);
|
|
102
|
+
SetFloatingHelpTextStyle(1, 1, 2, -1, 3, 0);
|
|
103
|
+
BeginTextCommandDisplayHelp('STRING');
|
|
104
|
+
AddTextComponentSubstringPlayerName(message);
|
|
105
|
+
EndTextCommandDisplayHelp(2, false, false, -1);
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
exports.NotificationService = NotificationService;
|
|
109
|
+
exports.NotificationService = NotificationService = __decorate([
|
|
110
|
+
(0, tsyringe_1.injectable)()
|
|
111
|
+
], NotificationService);
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import type { Vector3 } from '../../utils';
|
|
2
|
+
export interface PedSpawnOptions {
|
|
3
|
+
/** Model name or hash */
|
|
4
|
+
model: string;
|
|
5
|
+
/** Spawn position */
|
|
6
|
+
position: Vector3;
|
|
7
|
+
/** Heading/rotation */
|
|
8
|
+
heading?: number;
|
|
9
|
+
/** Network the ped */
|
|
10
|
+
networked?: boolean;
|
|
11
|
+
/** Make the ped a mission entity */
|
|
12
|
+
missionEntity?: boolean;
|
|
13
|
+
/** Relationship group */
|
|
14
|
+
relationshipGroup?: string;
|
|
15
|
+
/** Whether to block non-temporary events */
|
|
16
|
+
blockEvents?: boolean;
|
|
17
|
+
}
|
|
18
|
+
export interface PedAnimationOptions {
|
|
19
|
+
/** Animation dictionary */
|
|
20
|
+
dict: string;
|
|
21
|
+
/** Animation name */
|
|
22
|
+
anim: string;
|
|
23
|
+
/** Blend in speed */
|
|
24
|
+
blendInSpeed?: number;
|
|
25
|
+
/** Blend out speed */
|
|
26
|
+
blendOutSpeed?: number;
|
|
27
|
+
/** Duration (-1 for looped) */
|
|
28
|
+
duration?: number;
|
|
29
|
+
/** Animation flags */
|
|
30
|
+
flags?: number;
|
|
31
|
+
/** Playback rate */
|
|
32
|
+
playbackRate?: number;
|
|
33
|
+
}
|
|
34
|
+
export interface ManagedPed {
|
|
35
|
+
id: string;
|
|
36
|
+
handle: number;
|
|
37
|
+
model: string;
|
|
38
|
+
position: Vector3;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Service for ped (NPC) operations and management.
|
|
42
|
+
*/
|
|
43
|
+
export declare class PedService {
|
|
44
|
+
private peds;
|
|
45
|
+
private idCounter;
|
|
46
|
+
/**
|
|
47
|
+
* Spawn a ped at a position.
|
|
48
|
+
*
|
|
49
|
+
* @param options - Spawn options
|
|
50
|
+
* @returns The ped ID and handle
|
|
51
|
+
*/
|
|
52
|
+
spawn(options: PedSpawnOptions): Promise<{
|
|
53
|
+
id: string;
|
|
54
|
+
handle: number;
|
|
55
|
+
}>;
|
|
56
|
+
/**
|
|
57
|
+
* Delete a ped by ID.
|
|
58
|
+
*
|
|
59
|
+
* @param id - The ped ID
|
|
60
|
+
*/
|
|
61
|
+
delete(id: string): boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Delete a ped by handle.
|
|
64
|
+
*
|
|
65
|
+
* @param handle - The ped handle
|
|
66
|
+
*/
|
|
67
|
+
deleteByHandle(handle: number): void;
|
|
68
|
+
/**
|
|
69
|
+
* Delete all managed peds.
|
|
70
|
+
*/
|
|
71
|
+
deleteAll(): void;
|
|
72
|
+
/**
|
|
73
|
+
* Play an animation on a ped.
|
|
74
|
+
*
|
|
75
|
+
* @param handle - Ped handle
|
|
76
|
+
* @param options - Animation options
|
|
77
|
+
*/
|
|
78
|
+
playAnimation(handle: number, options: PedAnimationOptions): Promise<void>;
|
|
79
|
+
/**
|
|
80
|
+
* Stop all animations on a ped.
|
|
81
|
+
*
|
|
82
|
+
* @param handle - Ped handle
|
|
83
|
+
*/
|
|
84
|
+
stopAnimation(handle: number): void;
|
|
85
|
+
/**
|
|
86
|
+
* Stop animation immediately on a ped.
|
|
87
|
+
*
|
|
88
|
+
* @param handle - Ped handle
|
|
89
|
+
*/
|
|
90
|
+
stopAnimationImmediately(handle: number): void;
|
|
91
|
+
/**
|
|
92
|
+
* Freeze a ped in place.
|
|
93
|
+
*
|
|
94
|
+
* @param handle - Ped handle
|
|
95
|
+
* @param freeze - Whether to freeze
|
|
96
|
+
*/
|
|
97
|
+
freeze(handle: number, freeze: boolean): void;
|
|
98
|
+
/**
|
|
99
|
+
* Set ped invincibility.
|
|
100
|
+
*
|
|
101
|
+
* @param handle - Ped handle
|
|
102
|
+
* @param invincible - Whether invincible
|
|
103
|
+
*/
|
|
104
|
+
setInvincible(handle: number, invincible: boolean): void;
|
|
105
|
+
/**
|
|
106
|
+
* Give a weapon to a ped.
|
|
107
|
+
*
|
|
108
|
+
* @param handle - Ped handle
|
|
109
|
+
* @param weapon - Weapon name/hash
|
|
110
|
+
* @param ammo - Ammo count
|
|
111
|
+
* @param hidden - Whether to hide the weapon
|
|
112
|
+
* @param forceInHand - Whether to force weapon in hand
|
|
113
|
+
*/
|
|
114
|
+
giveWeapon(handle: number, weapon: string, ammo?: number, hidden?: boolean, forceInHand?: boolean): void;
|
|
115
|
+
/**
|
|
116
|
+
* Remove all weapons from a ped.
|
|
117
|
+
*
|
|
118
|
+
* @param handle - Ped handle
|
|
119
|
+
*/
|
|
120
|
+
removeAllWeapons(handle: number): void;
|
|
121
|
+
/**
|
|
122
|
+
* Get the closest ped to the player.
|
|
123
|
+
*
|
|
124
|
+
* @param radius - Search radius
|
|
125
|
+
* @param excludePlayer - Exclude the player ped
|
|
126
|
+
* @returns Ped handle or null
|
|
127
|
+
*/
|
|
128
|
+
getClosest(radius?: number, excludePlayer?: boolean): number | null;
|
|
129
|
+
/**
|
|
130
|
+
* Get all peds in a radius.
|
|
131
|
+
*
|
|
132
|
+
* @param position - Center position
|
|
133
|
+
* @param radius - Search radius
|
|
134
|
+
* @param excludePlayer - Exclude the player ped
|
|
135
|
+
* @returns Array of ped handles
|
|
136
|
+
*/
|
|
137
|
+
getNearby(position: Vector3, radius: number, excludePlayer?: boolean): number[];
|
|
138
|
+
/**
|
|
139
|
+
* Make ped look at entity.
|
|
140
|
+
*
|
|
141
|
+
* @param handle - Ped handle
|
|
142
|
+
* @param entity - Entity to look at
|
|
143
|
+
* @param duration - Duration in ms (-1 for infinite)
|
|
144
|
+
*/
|
|
145
|
+
lookAtEntity(handle: number, entity: number, duration?: number): void;
|
|
146
|
+
/**
|
|
147
|
+
* Make ped look at position.
|
|
148
|
+
*
|
|
149
|
+
* @param handle - Ped handle
|
|
150
|
+
* @param position - Position to look at
|
|
151
|
+
* @param duration - Duration in ms (-1 for infinite)
|
|
152
|
+
*/
|
|
153
|
+
lookAtCoords(handle: number, position: Vector3, duration?: number): void;
|
|
154
|
+
/**
|
|
155
|
+
* Make ped walk to position.
|
|
156
|
+
*
|
|
157
|
+
* @param handle - Ped handle
|
|
158
|
+
* @param position - Target position
|
|
159
|
+
* @param speed - Walking speed (1.0 = walk, 2.0 = run)
|
|
160
|
+
*/
|
|
161
|
+
walkTo(handle: number, position: Vector3, speed?: number): void;
|
|
162
|
+
/**
|
|
163
|
+
* Set ped combat attributes.
|
|
164
|
+
*
|
|
165
|
+
* @param handle - Ped handle
|
|
166
|
+
* @param canFight - Whether the ped can fight
|
|
167
|
+
* @param canUseCover - Whether the ped can use cover
|
|
168
|
+
*/
|
|
169
|
+
setCombatAttributes(handle: number, canFight: boolean, canUseCover?: boolean): void;
|
|
170
|
+
/**
|
|
171
|
+
* Get a managed ped by ID.
|
|
172
|
+
*/
|
|
173
|
+
get(id: string): ManagedPed | undefined;
|
|
174
|
+
/**
|
|
175
|
+
* Get all managed peds.
|
|
176
|
+
*/
|
|
177
|
+
getAll(): ManagedPed[];
|
|
178
|
+
/**
|
|
179
|
+
* Check if a managed ped still exists.
|
|
180
|
+
*/
|
|
181
|
+
exists(id: string): boolean;
|
|
182
|
+
}
|
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.PedService = void 0;
|
|
10
|
+
const tsyringe_1 = require("tsyringe");
|
|
11
|
+
/**
|
|
12
|
+
* Service for ped (NPC) operations and management.
|
|
13
|
+
*/
|
|
14
|
+
let PedService = class PedService {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.peds = new Map();
|
|
17
|
+
this.idCounter = 0;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Spawn a ped at a position.
|
|
21
|
+
*
|
|
22
|
+
* @param options - Spawn options
|
|
23
|
+
* @returns The ped ID and handle
|
|
24
|
+
*/
|
|
25
|
+
async spawn(options) {
|
|
26
|
+
const { model, position, heading = 0, networked = false, missionEntity = true, blockEvents = true, } = options;
|
|
27
|
+
const modelHash = GetHashKey(model);
|
|
28
|
+
// Load the model
|
|
29
|
+
if (!IsModelInCdimage(modelHash) || !IsModelValid(modelHash)) {
|
|
30
|
+
throw new Error(`Invalid ped model: ${model}`);
|
|
31
|
+
}
|
|
32
|
+
RequestModel(modelHash);
|
|
33
|
+
while (!HasModelLoaded(modelHash)) {
|
|
34
|
+
await new Promise((r) => setTimeout(r, 0));
|
|
35
|
+
}
|
|
36
|
+
// Create the ped
|
|
37
|
+
const ped = CreatePed(4, modelHash, position.x, position.y, position.z, heading, networked, true);
|
|
38
|
+
SetModelAsNoLongerNeeded(modelHash);
|
|
39
|
+
if (!ped || ped === 0) {
|
|
40
|
+
throw new Error('Failed to create ped');
|
|
41
|
+
}
|
|
42
|
+
// Configure the ped
|
|
43
|
+
if (missionEntity) {
|
|
44
|
+
SetEntityAsMissionEntity(ped, true, true);
|
|
45
|
+
}
|
|
46
|
+
if (blockEvents) {
|
|
47
|
+
SetBlockingOfNonTemporaryEvents(ped, true);
|
|
48
|
+
}
|
|
49
|
+
// Set default relationship (neutral)
|
|
50
|
+
SetPedRelationshipGroupHash(ped, GetHashKey('CIVMALE'));
|
|
51
|
+
// Register in our map
|
|
52
|
+
const id = `ped_${++this.idCounter}`;
|
|
53
|
+
this.peds.set(id, { id, handle: ped, model, position });
|
|
54
|
+
return { id, handle: ped };
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Delete a ped by ID.
|
|
58
|
+
*
|
|
59
|
+
* @param id - The ped ID
|
|
60
|
+
*/
|
|
61
|
+
delete(id) {
|
|
62
|
+
const ped = this.peds.get(id);
|
|
63
|
+
if (!ped)
|
|
64
|
+
return false;
|
|
65
|
+
if (DoesEntityExist(ped.handle)) {
|
|
66
|
+
SetEntityAsMissionEntity(ped.handle, true, true);
|
|
67
|
+
DeletePed(ped.handle);
|
|
68
|
+
}
|
|
69
|
+
this.peds.delete(id);
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Delete a ped by handle.
|
|
74
|
+
*
|
|
75
|
+
* @param handle - The ped handle
|
|
76
|
+
*/
|
|
77
|
+
deleteByHandle(handle) {
|
|
78
|
+
if (DoesEntityExist(handle)) {
|
|
79
|
+
SetEntityAsMissionEntity(handle, true, true);
|
|
80
|
+
DeletePed(handle);
|
|
81
|
+
}
|
|
82
|
+
// Remove from our map if tracked
|
|
83
|
+
for (const [id, ped] of this.peds) {
|
|
84
|
+
if (ped.handle === handle) {
|
|
85
|
+
this.peds.delete(id);
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Delete all managed peds.
|
|
92
|
+
*/
|
|
93
|
+
deleteAll() {
|
|
94
|
+
for (const ped of this.peds.values()) {
|
|
95
|
+
if (DoesEntityExist(ped.handle)) {
|
|
96
|
+
SetEntityAsMissionEntity(ped.handle, true, true);
|
|
97
|
+
DeletePed(ped.handle);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
this.peds.clear();
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Play an animation on a ped.
|
|
104
|
+
*
|
|
105
|
+
* @param handle - Ped handle
|
|
106
|
+
* @param options - Animation options
|
|
107
|
+
*/
|
|
108
|
+
async playAnimation(handle, options) {
|
|
109
|
+
const { dict, anim, blendInSpeed = 8.0, blendOutSpeed = -8.0, duration = -1, flags = 1, playbackRate = 0.0, } = options;
|
|
110
|
+
if (!DoesEntityExist(handle))
|
|
111
|
+
return;
|
|
112
|
+
// Load anim dict
|
|
113
|
+
RequestAnimDict(dict);
|
|
114
|
+
while (!HasAnimDictLoaded(dict)) {
|
|
115
|
+
await new Promise((r) => setTimeout(r, 0));
|
|
116
|
+
}
|
|
117
|
+
TaskPlayAnim(handle, dict, anim, blendInSpeed, blendOutSpeed, duration, flags, playbackRate, false, false, false);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Stop all animations on a ped.
|
|
121
|
+
*
|
|
122
|
+
* @param handle - Ped handle
|
|
123
|
+
*/
|
|
124
|
+
stopAnimation(handle) {
|
|
125
|
+
if (!DoesEntityExist(handle))
|
|
126
|
+
return;
|
|
127
|
+
ClearPedTasks(handle);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Stop animation immediately on a ped.
|
|
131
|
+
*
|
|
132
|
+
* @param handle - Ped handle
|
|
133
|
+
*/
|
|
134
|
+
stopAnimationImmediately(handle) {
|
|
135
|
+
if (!DoesEntityExist(handle))
|
|
136
|
+
return;
|
|
137
|
+
ClearPedTasksImmediately(handle);
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Freeze a ped in place.
|
|
141
|
+
*
|
|
142
|
+
* @param handle - Ped handle
|
|
143
|
+
* @param freeze - Whether to freeze
|
|
144
|
+
*/
|
|
145
|
+
freeze(handle, freeze) {
|
|
146
|
+
if (!DoesEntityExist(handle))
|
|
147
|
+
return;
|
|
148
|
+
FreezeEntityPosition(handle, freeze);
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Set ped invincibility.
|
|
152
|
+
*
|
|
153
|
+
* @param handle - Ped handle
|
|
154
|
+
* @param invincible - Whether invincible
|
|
155
|
+
*/
|
|
156
|
+
setInvincible(handle, invincible) {
|
|
157
|
+
if (!DoesEntityExist(handle))
|
|
158
|
+
return;
|
|
159
|
+
SetEntityInvincible(handle, invincible);
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Give a weapon to a ped.
|
|
163
|
+
*
|
|
164
|
+
* @param handle - Ped handle
|
|
165
|
+
* @param weapon - Weapon name/hash
|
|
166
|
+
* @param ammo - Ammo count
|
|
167
|
+
* @param hidden - Whether to hide the weapon
|
|
168
|
+
* @param forceInHand - Whether to force weapon in hand
|
|
169
|
+
*/
|
|
170
|
+
giveWeapon(handle, weapon, ammo = 100, hidden = false, forceInHand = true) {
|
|
171
|
+
if (!DoesEntityExist(handle))
|
|
172
|
+
return;
|
|
173
|
+
const weaponHash = GetHashKey(weapon);
|
|
174
|
+
GiveWeaponToPed(handle, weaponHash, ammo, hidden, forceInHand);
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Remove all weapons from a ped.
|
|
178
|
+
*
|
|
179
|
+
* @param handle - Ped handle
|
|
180
|
+
*/
|
|
181
|
+
removeAllWeapons(handle) {
|
|
182
|
+
if (!DoesEntityExist(handle))
|
|
183
|
+
return;
|
|
184
|
+
RemoveAllPedWeapons(handle, true);
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Get the closest ped to the player.
|
|
188
|
+
*
|
|
189
|
+
* @param radius - Search radius
|
|
190
|
+
* @param excludePlayer - Exclude the player ped
|
|
191
|
+
* @returns Ped handle or null
|
|
192
|
+
*/
|
|
193
|
+
getClosest(radius = 10.0, excludePlayer = true) {
|
|
194
|
+
const playerPed = PlayerPedId();
|
|
195
|
+
const [px, py, pz] = GetEntityCoords(playerPed, true);
|
|
196
|
+
const [found, handle] = GetClosestPed(px, py, pz, radius, true, true, true, false, -1);
|
|
197
|
+
if (!found || handle === 0)
|
|
198
|
+
return null;
|
|
199
|
+
if (excludePlayer && handle === playerPed)
|
|
200
|
+
return null;
|
|
201
|
+
return handle;
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Get all peds in a radius.
|
|
205
|
+
*
|
|
206
|
+
* @param position - Center position
|
|
207
|
+
* @param radius - Search radius
|
|
208
|
+
* @param excludePlayer - Exclude the player ped
|
|
209
|
+
* @returns Array of ped handles
|
|
210
|
+
*/
|
|
211
|
+
getNearby(position, radius, excludePlayer = true) {
|
|
212
|
+
const peds = [];
|
|
213
|
+
const playerPed = PlayerPedId();
|
|
214
|
+
const [handle, _] = FindFirstPed(0);
|
|
215
|
+
let ped = handle;
|
|
216
|
+
do {
|
|
217
|
+
if (!DoesEntityExist(ped))
|
|
218
|
+
continue;
|
|
219
|
+
if (excludePlayer && ped === playerPed)
|
|
220
|
+
continue;
|
|
221
|
+
const [ex, ey, ez] = GetEntityCoords(ped, true);
|
|
222
|
+
const dist = Math.sqrt(Math.pow(ex - position.x, 2) + Math.pow(ey - position.y, 2) + Math.pow(ez - position.z, 2));
|
|
223
|
+
if (dist <= radius) {
|
|
224
|
+
peds.push(ped);
|
|
225
|
+
}
|
|
226
|
+
} while (FindNextPed(handle, ped));
|
|
227
|
+
EndFindPed(handle);
|
|
228
|
+
return peds;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Make ped look at entity.
|
|
232
|
+
*
|
|
233
|
+
* @param handle - Ped handle
|
|
234
|
+
* @param entity - Entity to look at
|
|
235
|
+
* @param duration - Duration in ms (-1 for infinite)
|
|
236
|
+
*/
|
|
237
|
+
lookAtEntity(handle, entity, duration = -1) {
|
|
238
|
+
if (!DoesEntityExist(handle))
|
|
239
|
+
return;
|
|
240
|
+
TaskLookAtEntity(handle, entity, duration, 2048, 3);
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Make ped look at position.
|
|
244
|
+
*
|
|
245
|
+
* @param handle - Ped handle
|
|
246
|
+
* @param position - Position to look at
|
|
247
|
+
* @param duration - Duration in ms (-1 for infinite)
|
|
248
|
+
*/
|
|
249
|
+
lookAtCoords(handle, position, duration = -1) {
|
|
250
|
+
if (!DoesEntityExist(handle))
|
|
251
|
+
return;
|
|
252
|
+
TaskLookAtCoord(handle, position.x, position.y, position.z, duration, 2048, 3);
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Make ped walk to position.
|
|
256
|
+
*
|
|
257
|
+
* @param handle - Ped handle
|
|
258
|
+
* @param position - Target position
|
|
259
|
+
* @param speed - Walking speed (1.0 = walk, 2.0 = run)
|
|
260
|
+
*/
|
|
261
|
+
walkTo(handle, position, speed = 1.0) {
|
|
262
|
+
if (!DoesEntityExist(handle))
|
|
263
|
+
return;
|
|
264
|
+
TaskGoStraightToCoord(handle, position.x, position.y, position.z, speed, -1, 0.0, 0.0);
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Set ped combat attributes.
|
|
268
|
+
*
|
|
269
|
+
* @param handle - Ped handle
|
|
270
|
+
* @param canFight - Whether the ped can fight
|
|
271
|
+
* @param canUseCover - Whether the ped can use cover
|
|
272
|
+
*/
|
|
273
|
+
setCombatAttributes(handle, canFight, canUseCover = true) {
|
|
274
|
+
if (!DoesEntityExist(handle))
|
|
275
|
+
return;
|
|
276
|
+
SetPedCombatAttributes(handle, 46, canFight); // Can fight
|
|
277
|
+
SetPedCombatAttributes(handle, 0, canUseCover); // Can use cover
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Get a managed ped by ID.
|
|
281
|
+
*/
|
|
282
|
+
get(id) {
|
|
283
|
+
return this.peds.get(id);
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* Get all managed peds.
|
|
287
|
+
*/
|
|
288
|
+
getAll() {
|
|
289
|
+
return Array.from(this.peds.values());
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Check if a managed ped still exists.
|
|
293
|
+
*/
|
|
294
|
+
exists(id) {
|
|
295
|
+
const ped = this.peds.get(id);
|
|
296
|
+
return ped ? DoesEntityExist(ped.handle) : false;
|
|
297
|
+
}
|
|
298
|
+
};
|
|
299
|
+
exports.PedService = PedService;
|
|
300
|
+
exports.PedService = PedService = __decorate([
|
|
301
|
+
(0, tsyringe_1.injectable)()
|
|
302
|
+
], PedService);
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
export interface ProgressOptions {
|
|
2
|
+
/** Progress label/title */
|
|
3
|
+
label: string;
|
|
4
|
+
/** Duration in milliseconds */
|
|
5
|
+
duration: number;
|
|
6
|
+
/** Whether to use a circular indicator */
|
|
7
|
+
useCircular?: boolean;
|
|
8
|
+
/** Whether the player can cancel (usually with a key) */
|
|
9
|
+
canCancel?: boolean;
|
|
10
|
+
/** Disable player controls during progress */
|
|
11
|
+
disableControls?: boolean;
|
|
12
|
+
/** Disable player movement */
|
|
13
|
+
disableMovement?: boolean;
|
|
14
|
+
/** Disable combat actions */
|
|
15
|
+
disableCombat?: boolean;
|
|
16
|
+
/** Animation to play during progress */
|
|
17
|
+
animation?: {
|
|
18
|
+
dict: string;
|
|
19
|
+
anim: string;
|
|
20
|
+
flags?: number;
|
|
21
|
+
};
|
|
22
|
+
/** Prop to attach during progress */
|
|
23
|
+
prop?: {
|
|
24
|
+
model: string;
|
|
25
|
+
bone: number;
|
|
26
|
+
offset: {
|
|
27
|
+
x: number;
|
|
28
|
+
y: number;
|
|
29
|
+
z: number;
|
|
30
|
+
};
|
|
31
|
+
rotation: {
|
|
32
|
+
x: number;
|
|
33
|
+
y: number;
|
|
34
|
+
z: number;
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
export interface ProgressState {
|
|
39
|
+
active: boolean;
|
|
40
|
+
progress: number;
|
|
41
|
+
label: string;
|
|
42
|
+
startTime: number;
|
|
43
|
+
duration: number;
|
|
44
|
+
options: ProgressOptions;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Service for displaying progress bars/indicators.
|
|
48
|
+
*/
|
|
49
|
+
export declare class ProgressService {
|
|
50
|
+
private state;
|
|
51
|
+
private tickHandle;
|
|
52
|
+
private callback;
|
|
53
|
+
private propHandle;
|
|
54
|
+
/**
|
|
55
|
+
* Start a progress action.
|
|
56
|
+
*
|
|
57
|
+
* @param options - Progress options
|
|
58
|
+
* @returns Promise that resolves with true if completed, false if cancelled
|
|
59
|
+
*/
|
|
60
|
+
start(options: ProgressOptions): Promise<boolean>;
|
|
61
|
+
/**
|
|
62
|
+
* Cancel the current progress.
|
|
63
|
+
*/
|
|
64
|
+
cancel(): void;
|
|
65
|
+
/**
|
|
66
|
+
* Check if a progress is currently active.
|
|
67
|
+
*/
|
|
68
|
+
isActive(): boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Get current progress percentage (0-100).
|
|
71
|
+
*/
|
|
72
|
+
getProgress(): number;
|
|
73
|
+
/**
|
|
74
|
+
* Get current progress state.
|
|
75
|
+
*/
|
|
76
|
+
getState(): ProgressState | null;
|
|
77
|
+
private startProgress;
|
|
78
|
+
private drawProgressBar;
|
|
79
|
+
private cleanup;
|
|
80
|
+
private loadAnimDict;
|
|
81
|
+
private loadModel;
|
|
82
|
+
}
|