@armoury/fivem-roleplay-gamemode-common 1.0.46 → 1.0.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/cjs/shared/models/house/house.js +13 -8
  2. package/dist/cjs/shared/models/index.js +4 -2
  3. package/dist/cjs/shared/models/items/deprecated/clothing/clothing-item.js +60 -0
  4. package/dist/cjs/shared/models/items/deprecated/clothing/index.js +17 -0
  5. package/dist/cjs/shared/models/items/deprecated/errors/index.js +17 -0
  6. package/dist/cjs/shared/models/items/deprecated/errors/item-error-base.js +29 -0
  7. package/dist/cjs/shared/models/items/deprecated/errors/item-errors.js +35 -0
  8. package/dist/cjs/shared/models/items/deprecated/errors/item-stash-error-base.js +29 -0
  9. package/dist/cjs/shared/models/items/deprecated/index.js +24 -0
  10. package/dist/cjs/shared/models/items/deprecated/item-stash.model.js +144 -0
  11. package/dist/cjs/shared/models/items/deprecated/item-transfer.model.js +2 -0
  12. package/dist/cjs/shared/models/items/deprecated/item.model.js +26 -0
  13. package/dist/cjs/shared/models/items/deprecated/items-base/index.js +17 -0
  14. package/dist/cjs/shared/models/items/deprecated/items-base/number-item.js +64 -0
  15. package/dist/cjs/shared/models/items/deprecated/stashes-base/generic-stash.js +30 -0
  16. package/dist/cjs/shared/models/items/deprecated/stashes-base/index.js +18 -0
  17. package/dist/cjs/shared/models/items/deprecated/stashes-base/infinite-stash.js +37 -0
  18. package/dist/cjs/shared/models/items/deprecated/weapons/index.js +17 -0
  19. package/dist/cjs/shared/models/items/deprecated/weapons/weapon-item.js +74 -0
  20. package/dist/cjs/shared/models/items/item.js +2 -0
  21. package/dist/cjs/shared/models/stash/stash.js +2 -0
  22. package/dist/esm/shared/models/house/house.js +13 -8
  23. package/dist/esm/shared/models/index.js +4 -2
  24. package/dist/esm/shared/models/items/deprecated/clothing/clothing-item.js +57 -0
  25. package/dist/esm/shared/models/items/deprecated/clothing/index.js +1 -0
  26. package/dist/esm/shared/models/items/deprecated/errors/index.js +1 -0
  27. package/dist/esm/shared/models/items/deprecated/errors/item-error-base.js +26 -0
  28. package/dist/esm/shared/models/items/deprecated/errors/item-errors.js +32 -0
  29. package/dist/esm/shared/models/items/deprecated/errors/item-stash-error-base.js +26 -0
  30. package/dist/esm/shared/models/items/deprecated/index.js +8 -0
  31. package/dist/esm/shared/models/items/deprecated/item-stash.model.js +141 -0
  32. package/dist/esm/shared/models/items/deprecated/item-transfer.model.js +1 -0
  33. package/dist/esm/shared/models/items/deprecated/item.model.js +23 -0
  34. package/dist/esm/shared/models/items/deprecated/items-base/index.js +1 -0
  35. package/dist/esm/shared/models/items/deprecated/items-base/number-item.js +61 -0
  36. package/dist/esm/shared/models/items/deprecated/stashes-base/generic-stash.js +27 -0
  37. package/dist/esm/shared/models/items/deprecated/stashes-base/index.js +2 -0
  38. package/dist/esm/shared/models/items/deprecated/stashes-base/infinite-stash.js +34 -0
  39. package/dist/esm/shared/models/items/deprecated/weapons/index.js +1 -0
  40. package/dist/esm/shared/models/items/deprecated/weapons/weapon-item.js +71 -0
  41. package/dist/esm/shared/models/items/item.js +1 -0
  42. package/dist/esm/shared/models/stash/stash.js +1 -0
  43. package/dist/types/shared/models/house/house.d.ts +2 -2
  44. package/dist/types/shared/models/index.d.ts +4 -2
  45. package/dist/types/shared/models/items/deprecated/clothing/clothing-item.d.ts +25 -0
  46. package/dist/types/shared/models/items/deprecated/clothing/index.d.ts +1 -0
  47. package/dist/types/shared/models/items/deprecated/errors/index.d.ts +1 -0
  48. package/dist/types/shared/models/items/deprecated/errors/item-error-base.d.ts +3 -0
  49. package/dist/types/shared/models/items/deprecated/errors/item-errors.d.ts +7 -0
  50. package/dist/types/shared/models/items/deprecated/errors/item-stash-error-base.d.ts +3 -0
  51. package/dist/types/shared/models/items/deprecated/index.d.ts +8 -0
  52. package/dist/types/shared/models/items/deprecated/item-stash.model.d.ts +53 -0
  53. package/dist/types/shared/models/items/deprecated/item-transfer.model.d.ts +5 -0
  54. package/dist/types/shared/models/items/deprecated/item.model.d.ts +50 -0
  55. package/dist/types/shared/models/items/deprecated/items-base/index.d.ts +1 -0
  56. package/dist/types/shared/models/items/deprecated/items-base/number-item.d.ts +14 -0
  57. package/dist/types/shared/models/items/deprecated/stashes-base/generic-stash.d.ts +7 -0
  58. package/dist/types/shared/models/items/deprecated/stashes-base/index.d.ts +2 -0
  59. package/dist/types/shared/models/items/deprecated/stashes-base/infinite-stash.d.ts +10 -0
  60. package/dist/types/shared/models/items/deprecated/weapons/index.d.ts +1 -0
  61. package/dist/types/shared/models/items/deprecated/weapons/weapon-item.d.ts +18 -0
  62. package/dist/types/shared/models/items/item.d.ts +2 -0
  63. package/dist/types/shared/models/stash/stash.d.ts +13 -0
  64. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ export {};
@@ -8,7 +8,7 @@ export interface House {
8
8
  readonly sellingPrice: number;
9
9
  readonly rentPrice: number;
10
10
  readonly requiredLevel: number;
11
- readonly metadata?: HouseMetadata;
11
+ metadata?: HouseMetadata;
12
12
  }
13
13
  export declare class House {
14
14
  readonly id: number;
@@ -20,7 +20,7 @@ export declare class House {
20
20
  readonly sellingPrice: number;
21
21
  readonly rentPrice: number;
22
22
  readonly requiredLevel: number;
23
- readonly metadata?: HouseMetadata;
23
+ metadata?: HouseMetadata;
24
24
  constructor(id: number, owner: number | null, entrance: Position, exit: Position, originalValue: number, address: string, sellingPrice?: number, rentPrice?: number, requiredLevel?: number, metadata?: HouseMetadata);
25
25
  static toStub(house: House): Stub<House>;
26
26
  }
@@ -4,9 +4,11 @@ export * from './account';
4
4
  export * from './character';
5
5
  /** Persistable */
6
6
  export * from './persistable/persistable';
7
+ /** Stash */
8
+ export * from './stash/stash';
9
+ /** Item */
10
+ export * from './items/item';
7
11
  /** House */
8
12
  export * from './house/house';
9
- /** Item (Deprecated) */
10
- export * from './items';
11
13
  /** Business (Deprecated) */
12
14
  export * from './businesses';
@@ -0,0 +1,25 @@
1
+ import { IItem, IItemBase, Item } from "../item.model";
2
+ export declare abstract class Clothing extends Item<IClothingItem> implements IItem<IClothingItem> {
3
+ amount: number;
4
+ get weight(): number;
5
+ constructor(_name: string, _value?: IClothingItem);
6
+ add(_amount: number): Clothing;
7
+ consume(_amount: number): Clothing;
8
+ empty(): Clothing;
9
+ serialize(): {
10
+ [key: string]: IClothingItem;
11
+ };
12
+ deserialize(serialized: {
13
+ [key: string]: IClothingItem;
14
+ }): Clothing;
15
+ }
16
+ export interface IClothingItem extends IItemBase {
17
+ components: {
18
+ [key: number]: IClothingComponent;
19
+ };
20
+ }
21
+ export interface IClothingComponent {
22
+ drawableId: number;
23
+ textureId: number;
24
+ paletteId: number;
25
+ }
@@ -0,0 +1 @@
1
+ export * from './clothing-item';
@@ -0,0 +1 @@
1
+ export * from './item-errors';
@@ -0,0 +1,3 @@
1
+ export declare class ItemError<T extends ItemError<T>> extends Error {
2
+ constructor(msg: string);
3
+ }
@@ -0,0 +1,7 @@
1
+ import { ItemStashError } from "./item-stash-error-base";
2
+ export declare class ItemStashSlotsInsuficientError extends ItemStashError<ItemStashSlotsInsuficientError> {
3
+ constructor(msg?: string);
4
+ }
5
+ export declare class ItemStashGenericError extends ItemStashError<ItemStashGenericError> {
6
+ constructor(msg?: string);
7
+ }
@@ -0,0 +1,3 @@
1
+ export declare class ItemStashError<T extends ItemStashError<T>> extends Error {
2
+ constructor(msg: string);
3
+ }
@@ -0,0 +1,8 @@
1
+ export * from './item-stash.model';
2
+ export * from './item.model';
3
+ export * from './item-transfer.model';
4
+ export * from './items-base';
5
+ export * from './stashes-base';
6
+ export * from './errors';
7
+ export * from './clothing';
8
+ export * from './weapons';
@@ -0,0 +1,53 @@
1
+ import { IItemBase } from "./item.model";
2
+ export declare class ItemStash<T extends IItemBase> {
3
+ readonly name: string;
4
+ readonly slots: number;
5
+ readonly weightPerSlot: number;
6
+ _items: Map<number, T>;
7
+ get items(): ReadonlyArray<T>;
8
+ constructor(name: string, slots: number, weightPerSlot: number);
9
+ add(item: T, slot?: number): boolean;
10
+ consume(item: T, amount: number): void;
11
+ has(itemIdentifier: string): boolean;
12
+ serialize(): {
13
+ [key: string]: any;
14
+ };
15
+ toUI(): {
16
+ title: string;
17
+ items: import("./item.model").IItemUIMapping[];
18
+ };
19
+ /**
20
+ * Adds an item to a stash.
21
+ * @param stash Stash to add the item to
22
+ * @param item Item to add to the stash
23
+ * @param slot The slot where the item should be placed into
24
+ * @returns Weight added to the stash
25
+ */
26
+ static addToSlot<T extends IItemBase>(stash: ItemStash<T>, item: T, slot: number): number;
27
+ /**
28
+ * Removes an X amount of whichever item lies in the specified slot
29
+ * @param stash Stash to remove the amount of the item from
30
+ * @param slot Slot of the stash which will have this amount of the item removed
31
+ * @param amount The amount of the item to be removed
32
+ * @returns The amount that has been removed (the amount in the slot can be lower than the provided amount-to-be-removed)
33
+ */
34
+ static removeFromSlot<T extends IItemBase>(stash: ItemStash<T>, slot: number, amount: number): number;
35
+ static clone<T extends IItemBase>(stash: ItemStash<T>): ItemStash<T>;
36
+ }
37
+ export interface IItemStashBase {
38
+ name: string;
39
+ slots: number;
40
+ weightPerSlot: number;
41
+ has(itemIdentifier: string): boolean;
42
+ serialize(): {
43
+ [key: string]: any;
44
+ };
45
+ deserialize(serialized: {
46
+ [key: string]: any;
47
+ }): void;
48
+ }
49
+ export interface IItemStash<T extends IItemBase> extends IItemStashBase {
50
+ items: ReadonlyArray<T>;
51
+ add(item: T, slot?: number): boolean;
52
+ consume(item: T, amount: number): boolean;
53
+ }
@@ -0,0 +1,5 @@
1
+ import { IItemStashBase } from "./item-stash.model";
2
+ export interface IItemTransfer {
3
+ from: IItemStashBase;
4
+ to: IItemStashBase;
5
+ }
@@ -0,0 +1,50 @@
1
+ export declare abstract class Item<T> {
2
+ identifier: string;
3
+ weightPerUnit: number;
4
+ fullyOccupiesSlot: boolean;
5
+ value: T;
6
+ constructor(identifier: string, weightPerUnit: number, fullyOccupiesSlot: boolean, value: T);
7
+ toUI(slot?: number): IItemUIMapping;
8
+ }
9
+ export interface IItem<T> extends IItemBase {
10
+ value: T;
11
+ add(amount: number): IItem<T>;
12
+ consume(amount: number): IItem<T>;
13
+ empty(): IItem<T>;
14
+ serialize(): {
15
+ [key: string]: T;
16
+ };
17
+ deserialize(serialized: {
18
+ [key: string]: T;
19
+ }): IItem<T>;
20
+ }
21
+ export interface IItemBase {
22
+ identifier: string;
23
+ amount: number;
24
+ weight: number;
25
+ weightPerUnit: number;
26
+ fullyOccupiesSlot: boolean;
27
+ add(amount: number): IItemBase;
28
+ consume(amount: number): IItemBase;
29
+ empty(): IItemBase;
30
+ serialize(): {
31
+ [key: string]: any;
32
+ };
33
+ deserialize(serialized: {
34
+ [key: string]: any;
35
+ }): IItemBase;
36
+ toUI(currentSlot?: number): IItemUIMapping;
37
+ }
38
+ export interface IItemUIMapping {
39
+ image: string;
40
+ bottomRight: string;
41
+ type: string;
42
+ description: string;
43
+ topLeft: string;
44
+ _piKey: string;
45
+ outline: string;
46
+ width: number;
47
+ metadata?: {
48
+ [key: string]: any;
49
+ };
50
+ }
@@ -0,0 +1 @@
1
+ export * from './number-item';
@@ -0,0 +1,14 @@
1
+ import { IItem, Item } from "../item.model";
2
+ export declare abstract class NumberItem extends Item<number> implements IItem<number> {
3
+ get amount(): number;
4
+ get weight(): number;
5
+ add(amount: number): NumberItem;
6
+ consume(amount: number): NumberItem;
7
+ empty(): NumberItem;
8
+ serialize(): {
9
+ [key: string]: number;
10
+ };
11
+ deserialize(serialized: {
12
+ [key: string]: number;
13
+ }): NumberItem;
14
+ }
@@ -0,0 +1,7 @@
1
+ import { ItemStash } from "../item-stash.model";
2
+ import { IItemBase } from "../item.model";
3
+ export declare class GenericStash extends ItemStash<IItemBase> {
4
+ deserialize(serialized: {
5
+ [key: string]: any;
6
+ }): void;
7
+ }
@@ -0,0 +1,2 @@
1
+ export * from './generic-stash';
2
+ export * from './infinite-stash';
@@ -0,0 +1,10 @@
1
+ import { ItemStash } from "../item-stash.model";
2
+ import { IItemBase } from "../item.model";
3
+ export declare class InfiniteStash extends ItemStash<IItemBase> {
4
+ add(_item: IItemBase, slot?: number): boolean;
5
+ consume(_item: IItemBase, _amount: number): void;
6
+ has(_itemIdentifier: string): boolean;
7
+ deserialize(serialized: {
8
+ [key: string]: any;
9
+ }): void;
10
+ }
@@ -0,0 +1 @@
1
+ export * from './weapon-item';
@@ -0,0 +1,18 @@
1
+ import { IItem, IItemBase, Item } from "../item.model";
2
+ export declare abstract class WeaponItem extends Item<IWeaponItem> implements IItem<IWeaponItem> {
3
+ get amount(): number;
4
+ get weight(): number;
5
+ add(amount: number): WeaponItem;
6
+ consume(amount: number): WeaponItem;
7
+ empty(): WeaponItem;
8
+ serialize(): {
9
+ [key: string]: IWeaponItem;
10
+ };
11
+ deserialize(serialized: {
12
+ [key: string]: IWeaponItem;
13
+ }): WeaponItem;
14
+ }
15
+ export interface IWeaponItem extends IItemBase {
16
+ ammo: number;
17
+ id: string;
18
+ }
@@ -0,0 +1,2 @@
1
+ export interface Item {
2
+ }
@@ -0,0 +1,13 @@
1
+ export interface Stash {
2
+ readonly id: number;
3
+ readonly owningPersistableId: number | null;
4
+ readonly maxSlots: number;
5
+ readonly maxWeight: number;
6
+ slots?: Array<StashSlot>;
7
+ }
8
+ export interface StashSlot {
9
+ itemIdentifier: string;
10
+ amount: number;
11
+ slotIndex: number;
12
+ readonly stashId: number;
13
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@armoury/fivem-roleplay-gamemode-common",
3
- "version": "1.0.46",
3
+ "version": "1.0.49",
4
4
  "description": "Shared APIs for the Armoury FiveM roleplay gamemode",
5
5
  "main": "dist/cjs/shared/index.js",
6
6
  "module": "dist/esm/shared/index.js",
@@ -14,7 +14,7 @@
14
14
  },
15
15
  "files": ["dist"],
16
16
  "peerDependencies": {
17
- "@armoury/fivem-framework-common": "^1.0.46"
17
+ "@armoury/fivem-framework-common": "^1.0.49"
18
18
  },
19
19
  "scripts": {
20
20
  "build": "npm run build:cjs && npm run build:esm && npm run build:types",