@armoury/fivem-framework-common 1.0.62 → 1.0.66

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.
@@ -6,6 +6,7 @@ const command_decorator_1 = require("./command.decorator");
6
6
  const event_listener_decorator_1 = require("./event-listener.decorator");
7
7
  const export_decorator_1 = require("./export.decorator");
8
8
  const key_binding_decorator_1 = require("./key-binding.decorator");
9
+ const interaction_decorator_1 = require("./interaction.decorator");
9
10
  const ui_listener_decorator_1 = require("./ui-listener.decorator");
10
11
  const decoratedTargets = new WeakSet();
11
12
  class DecoratorUtils {
@@ -41,6 +42,7 @@ function Decorate(instance, _prototype, providers, decorationType = DecorationTy
41
42
  (0, export_decorator_1.Exports)(instance, _prototype, relevantProvidersForClass);
42
43
  (0, key_binding_decorator_1.KeyBindings)(instance, _prototype, relevantProvidersForClass);
43
44
  if (decorationType === DecorationType.CLIENT) {
45
+ (0, interaction_decorator_1.Interactions)(instance, _prototype, relevantProvidersForClass);
44
46
  (0, ui_listener_decorator_1.UIListeners)(instance, _prototype, relevantProvidersForClass);
45
47
  }
46
48
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UIListener = exports.KeyBinding = exports.Export = exports.EVENT_DIRECTIONS = exports.EventListener = exports.Controller = exports.Command = void 0;
3
+ exports.UIListener = exports.Interaction = exports.KeyBinding = exports.Export = exports.EVENT_DIRECTIONS = exports.EventListener = exports.Controller = exports.Command = void 0;
4
4
  var command_decorator_1 = require("./command.decorator");
5
5
  Object.defineProperty(exports, "Command", { enumerable: true, get: function () { return command_decorator_1.Command; } });
6
6
  var controller_decorator_1 = require("./controller.decorator");
@@ -12,5 +12,7 @@ var export_decorator_1 = require("./export.decorator");
12
12
  Object.defineProperty(exports, "Export", { enumerable: true, get: function () { return export_decorator_1.Export; } });
13
13
  var key_binding_decorator_1 = require("./key-binding.decorator");
14
14
  Object.defineProperty(exports, "KeyBinding", { enumerable: true, get: function () { return key_binding_decorator_1.KeyBinding; } });
15
+ var interaction_decorator_1 = require("./interaction.decorator");
16
+ Object.defineProperty(exports, "Interaction", { enumerable: true, get: function () { return interaction_decorator_1.Interaction; } });
15
17
  var ui_listener_decorator_1 = require("./ui-listener.decorator");
16
18
  Object.defineProperty(exports, "UIListener", { enumerable: true, get: function () { return ui_listener_decorator_1.UIListener; } });
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Interaction = Interaction;
4
+ exports.Interactions = Interactions;
5
+ const decorator_utils_1 = require("./decorator.utils");
6
+ const ui_listener_decorator_1 = require("./ui-listener.decorator");
7
+ function Interaction(data) {
8
+ return function (target, propertyKey, descriptor) {
9
+ Reflect.defineMetadata(`arm_interaction_${data.interactableType}_${Math.floor(Math.random() * Number.MAX_SAFE_INTEGER)}`, data, target);
10
+ (0, ui_listener_decorator_1.UIListener)({ eventName: `getAvailableInteractions:${data.interactableType}` })(target, propertyKey, descriptor);
11
+ };
12
+ }
13
+ function Interactions(target, _prototype, providers) {
14
+ const mappings = decorator_utils_1.DecoratorUtils.map(target, _prototype, providers ?? []);
15
+ const isServer = Cfx.Client.IsDuplicityVersion();
16
+ if (isServer) {
17
+ return;
18
+ }
19
+ for (const mapping of mappings) {
20
+ if (!mapping.key.startsWith('arm_interaction_')) {
21
+ continue;
22
+ }
23
+ Cfx.exports['armoury'].sendUIMessage({
24
+ type: 'game:interactable:prompt:register',
25
+ interactableType: mapping.value?.interactableType,
26
+ resource: Cfx.Client.GetCurrentResourceName(),
27
+ });
28
+ }
29
+ }
@@ -20,6 +20,8 @@ __exportStar(require("./stub"), exports);
20
20
  __exportStar(require("./session"), exports);
21
21
  __exportStar(require("./session-update-type"), exports);
22
22
  __exportStar(require("./session-claim"), exports);
23
+ /** Interactable */
24
+ __exportStar(require("./interactable"), exports);
23
25
  /** Zones */
24
26
  __exportStar(require("./zone"), exports);
25
27
  /** Pickups */
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.INTERACTABLE_TYPE_VEHICLE = exports.INTERACTABLE_TYPE_PLAYER_PED = exports.INTERACTABLE_TYPE_NPC_PED = void 0;
4
+ exports.INTERACTABLE_TYPE_NPC_PED = 0;
5
+ exports.INTERACTABLE_TYPE_PLAYER_PED = 1;
6
+ exports.INTERACTABLE_TYPE_VEHICLE = 2;
@@ -1,8 +1,9 @@
1
- import { Commands } from "./command.decorator";
2
- import { EventListeners } from "./event-listener.decorator";
3
- import { Exports } from "./export.decorator";
4
- import { KeyBindings } from "./key-binding.decorator";
5
- import { UIListeners } from "./ui-listener.decorator";
1
+ import { Commands } from './command.decorator';
2
+ import { EventListeners } from './event-listener.decorator';
3
+ import { Exports } from './export.decorator';
4
+ import { KeyBindings } from './key-binding.decorator';
5
+ import { Interactions } from './interaction.decorator';
6
+ import { UIListeners } from './ui-listener.decorator';
6
7
  const decoratedTargets = new WeakSet();
7
8
  export class DecoratorUtils {
8
9
  static map(target, _prototype, providers) {
@@ -36,6 +37,7 @@ export function Decorate(instance, _prototype, providers, decorationType = Decor
36
37
  Exports(instance, _prototype, relevantProvidersForClass);
37
38
  KeyBindings(instance, _prototype, relevantProvidersForClass);
38
39
  if (decorationType === DecorationType.CLIENT) {
40
+ Interactions(instance, _prototype, relevantProvidersForClass);
39
41
  UIListeners(instance, _prototype, relevantProvidersForClass);
40
42
  }
41
43
  }
@@ -3,4 +3,5 @@ export { Controller } from './controller.decorator';
3
3
  export { EventListener, EVENT_DIRECTIONS } from './event-listener.decorator';
4
4
  export { Export } from './export.decorator';
5
5
  export { KeyBinding } from './key-binding.decorator';
6
+ export { Interaction } from './interaction.decorator';
6
7
  export { UIListener } from './ui-listener.decorator';
@@ -0,0 +1,25 @@
1
+ import { DecoratorUtils } from './decorator.utils';
2
+ import { UIListener } from './ui-listener.decorator';
3
+ export function Interaction(data) {
4
+ return function (target, propertyKey, descriptor) {
5
+ Reflect.defineMetadata(`arm_interaction_${data.interactableType}_${Math.floor(Math.random() * Number.MAX_SAFE_INTEGER)}`, data, target);
6
+ UIListener({ eventName: `getAvailableInteractions:${data.interactableType}` })(target, propertyKey, descriptor);
7
+ };
8
+ }
9
+ export function Interactions(target, _prototype, providers) {
10
+ const mappings = DecoratorUtils.map(target, _prototype, providers ?? []);
11
+ const isServer = Cfx.Client.IsDuplicityVersion();
12
+ if (isServer) {
13
+ return;
14
+ }
15
+ for (const mapping of mappings) {
16
+ if (!mapping.key.startsWith('arm_interaction_')) {
17
+ continue;
18
+ }
19
+ Cfx.exports['armoury'].sendUIMessage({
20
+ type: 'game:interactable:prompt:register',
21
+ interactableType: mapping.value?.interactableType,
22
+ resource: Cfx.Client.GetCurrentResourceName(),
23
+ });
24
+ }
25
+ }
@@ -4,6 +4,8 @@ export * from './stub';
4
4
  export * from './session';
5
5
  export * from './session-update-type';
6
6
  export * from './session-claim';
7
+ /** Interactable */
8
+ export * from './interactable';
7
9
  /** Zones */
8
10
  export * from './zone';
9
11
  /** Pickups */
@@ -0,0 +1,3 @@
1
+ export const INTERACTABLE_TYPE_NPC_PED = 0;
2
+ export const INTERACTABLE_TYPE_PLAYER_PED = 1;
3
+ export const INTERACTABLE_TYPE_VEHICLE = 2;
@@ -1,4 +1,4 @@
1
- import { Provider } from "injection-js";
1
+ import { Provider } from 'injection-js';
2
2
  export declare class DecoratorUtils {
3
3
  static map(target: any, _prototype: any, providers: Object[]): {
4
4
  key: any;
@@ -3,4 +3,5 @@ export { Controller } from './controller.decorator';
3
3
  export { EventListener, EVENT_DIRECTIONS } from './event-listener.decorator';
4
4
  export { Export } from './export.decorator';
5
5
  export { KeyBinding } from './key-binding.decorator';
6
+ export { Interaction } from './interaction.decorator';
6
7
  export { UIListener } from './ui-listener.decorator';
@@ -0,0 +1,4 @@
1
+ export declare function Interaction(data: {
2
+ interactableType: number;
3
+ }): <T extends (...args: any[]) => any>(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor<T> & (Parameters<T> extends [object, ...unknown[]] ? unknown : never)) => void;
4
+ export declare function Interactions(target: any, _prototype: any, providers?: Object[]): void;
@@ -4,6 +4,8 @@ export * from './stub';
4
4
  export * from './session';
5
5
  export * from './session-update-type';
6
6
  export * from './session-claim';
7
+ /** Interactable */
8
+ export * from './interactable';
7
9
  /** Zones */
8
10
  export * from './zone';
9
11
  /** Pickups */
@@ -0,0 +1,3 @@
1
+ export declare const INTERACTABLE_TYPE_NPC_PED = 0;
2
+ export declare const INTERACTABLE_TYPE_PLAYER_PED = 1;
3
+ export declare const INTERACTABLE_TYPE_VEHICLE = 2;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@armoury/fivem-framework-common",
3
- "version": "1.0.62",
3
+ "version": "1.0.66",
4
4
  "description": "Shared APIs for the Armoury FiveM framework",
5
5
  "main": "dist/cjs/common/index.js",
6
6
  "module": "dist/esm/common/index.js",