@sagl/server 0.0.0-stage → 0.1.0-next.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 (129) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +61 -2
  3. package/dist/actions.d.ts +46 -0
  4. package/dist/actions.js +80 -0
  5. package/dist/actions.js.map +1 -0
  6. package/dist/animations.d.ts +32 -0
  7. package/dist/animations.js +95 -0
  8. package/dist/animations.js.map +1 -0
  9. package/dist/audio.d.ts +180 -0
  10. package/dist/audio.js +353 -0
  11. package/dist/audio.js.map +1 -0
  12. package/dist/audio_effects.d.ts +219 -0
  13. package/dist/audio_effects.js +84 -0
  14. package/dist/audio_effects.js.map +1 -0
  15. package/dist/camera.d.ts +188 -0
  16. package/dist/camera.js +247 -0
  17. package/dist/camera.js.map +1 -0
  18. package/dist/claims.d.ts +27 -0
  19. package/dist/claims.js +48 -0
  20. package/dist/claims.js.map +1 -0
  21. package/dist/commands.d.ts +135 -0
  22. package/dist/commands.js +373 -0
  23. package/dist/commands.js.map +1 -0
  24. package/dist/console.d.ts +21 -0
  25. package/dist/console.js +100 -0
  26. package/dist/console.js.map +1 -0
  27. package/dist/constants.d.ts +654 -0
  28. package/dist/constants.js +657 -0
  29. package/dist/constants.js.map +1 -0
  30. package/dist/cutscene.d.ts +47 -0
  31. package/dist/cutscene.js +190 -0
  32. package/dist/cutscene.js.map +1 -0
  33. package/dist/draw.d.ts +106 -0
  34. package/dist/draw.js +132 -0
  35. package/dist/draw.js.map +1 -0
  36. package/dist/effects.d.ts +91 -0
  37. package/dist/effects.js +116 -0
  38. package/dist/effects.js.map +1 -0
  39. package/dist/gangzones.d.ts +47 -0
  40. package/dist/gangzones.js +122 -0
  41. package/dist/gangzones.js.map +1 -0
  42. package/dist/geo.d.ts +11 -0
  43. package/dist/geo.js +25 -0
  44. package/dist/geo.js.map +1 -0
  45. package/dist/hud.d.ts +159 -0
  46. package/dist/hud.js +247 -0
  47. package/dist/hud.js.map +1 -0
  48. package/dist/index.d.ts +40 -0
  49. package/dist/index.js +43 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/interaction.d.ts +81 -0
  52. package/dist/interaction.js +143 -0
  53. package/dist/interaction.js.map +1 -0
  54. package/dist/junctions.d.ts +1 -0
  55. package/dist/junctions.js +330 -0
  56. package/dist/junctions.js.map +1 -0
  57. package/dist/map.d.ts +55 -0
  58. package/dist/map.js +71 -0
  59. package/dist/map.js.map +1 -0
  60. package/dist/menu.d.ts +96 -0
  61. package/dist/menu.js +129 -0
  62. package/dist/menu.js.map +1 -0
  63. package/dist/mission.d.ts +482 -0
  64. package/dist/mission.js +1258 -0
  65. package/dist/mission.js.map +1 -0
  66. package/dist/models.d.ts +56 -0
  67. package/dist/models.js +71 -0
  68. package/dist/models.js.map +1 -0
  69. package/dist/modshop.d.ts +229 -0
  70. package/dist/modshop.js +904 -0
  71. package/dist/modshop.js.map +1 -0
  72. package/dist/modshop_data.d.ts +44 -0
  73. package/dist/modshop_data.js +287 -0
  74. package/dist/modshop_data.js.map +1 -0
  75. package/dist/native.d.ts +809 -0
  76. package/dist/native.js +27 -0
  77. package/dist/native.js.map +1 -0
  78. package/dist/objects.d.ts +249 -0
  79. package/dist/objects.js +455 -0
  80. package/dist/objects.js.map +1 -0
  81. package/dist/paint.d.ts +124 -0
  82. package/dist/paint.js +84 -0
  83. package/dist/paint.js.map +1 -0
  84. package/dist/paynspray.d.ts +44 -0
  85. package/dist/paynspray.js +177 -0
  86. package/dist/paynspray.js.map +1 -0
  87. package/dist/ped.d.ts +335 -0
  88. package/dist/ped.js +536 -0
  89. package/dist/ped.js.map +1 -0
  90. package/dist/player.d.ts +685 -0
  91. package/dist/player.js +1163 -0
  92. package/dist/player.js.map +1 -0
  93. package/dist/screeneffects.d.ts +99 -0
  94. package/dist/screeneffects.js +257 -0
  95. package/dist/screeneffects.js.map +1 -0
  96. package/dist/scripts.d.ts +69 -0
  97. package/dist/scripts.js +125 -0
  98. package/dist/scripts.js.map +1 -0
  99. package/dist/server.d.ts +713 -0
  100. package/dist/server.js +1080 -0
  101. package/dist/server.js.map +1 -0
  102. package/dist/shopblips.d.ts +9 -0
  103. package/dist/shopblips.js +30 -0
  104. package/dist/shopblips.js.map +1 -0
  105. package/dist/special.d.ts +33 -0
  106. package/dist/special.js +26 -0
  107. package/dist/special.js.map +1 -0
  108. package/dist/splash.d.ts +42 -0
  109. package/dist/splash.js +55 -0
  110. package/dist/splash.js.map +1 -0
  111. package/dist/text.d.ts +19 -0
  112. package/dist/text.js +25 -0
  113. package/dist/text.js.map +1 -0
  114. package/dist/ui.d.ts +141 -0
  115. package/dist/ui.js +243 -0
  116. package/dist/ui.js.map +1 -0
  117. package/dist/vehicle.d.ts +306 -0
  118. package/dist/vehicle.js +612 -0
  119. package/dist/vehicle.js.map +1 -0
  120. package/dist/vehiclecolors.d.ts +26 -0
  121. package/dist/vehiclecolors.js +49 -0
  122. package/dist/vehiclecolors.js.map +1 -0
  123. package/dist/world.d.ts +222 -0
  124. package/dist/world.js +227 -0
  125. package/dist/world.js.map +1 -0
  126. package/dist/zone.d.ts +89 -0
  127. package/dist/zone.js +140 -0
  128. package/dist/zone.js.map +1 -0
  129. package/package.json +33 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mission.js","sourceRoot":"","sources":["../src/mission.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ import type { NativeServer } from "./native.js";
2
+ import type { Player } from "./player.js";
3
+ /** One of the server's own models (`server.models.add`). */
4
+ export interface CustomModelInfo {
5
+ /** Its id: -1000 to -30000, as SA-MP's. */
6
+ id: number;
7
+ /** The game model that stands in for it, and whose collision it has. */
8
+ base: number;
9
+ /** Its model, a client file (`.dff`). */
10
+ dff: string;
11
+ /** Its textures, a client file (`.txd`); none: the base's. */
12
+ txd?: string;
13
+ }
14
+ /** The ids custom models may have (SA-MP's). */
15
+ export declare const CUSTOM_MODEL_IDS: {
16
+ readonly first: -1000;
17
+ readonly last: -30000;
18
+ };
19
+ /** Whether `model` is a custom model's id (whether it's defined or not). */
20
+ export declare function isCustomModelId(model: number): boolean;
21
+ /**
22
+ * The server's own models, as SA-MP's AddSimpleModel: a DFF (and its TXD)
23
+ * from the client files, given an id (-1000 to -30000) to use wherever a
24
+ * model goes: `server.createObject`, `server.createPickup`,
25
+ * `player.attachObject`, `server.interactions.add`. Every player's game
26
+ * loads them as they join (their client files are there by then), and at
27
+ * once if they're added later.
28
+ * `server.models`.
29
+ *
30
+ * ```ts
31
+ * server.models.add(-1000, { base: 1216, dff: "models/handset.dff", txd: "models/handset.txd" });
32
+ * server.createObject(-1000, { x: 2069, y: -1766, z: 14 });
33
+ * ```
34
+ */
35
+ export declare class ServerModels {
36
+ #private;
37
+ /** @internal */
38
+ constructor(native: NativeServer, players: () => Player[]);
39
+ /**
40
+ * Adds one. `base` is a game object model: shown in its place if it
41
+ * can't load, and its collision is this one's. It's a model of one
42
+ * piece (an object's, not a vehicle's or a ped's). Ids can't be
43
+ * redefined.
44
+ */
45
+ add(id: number, model: {
46
+ base: number;
47
+ dff: string;
48
+ txd?: string;
49
+ }): void;
50
+ /** Whether `id` is one of them. */
51
+ has(id: number): boolean;
52
+ /** Every one. */
53
+ get list(): CustomModelInfo[];
54
+ /** @internal A player joined: every one (before anything uses them). */
55
+ replay(player: Player): void;
56
+ }
package/dist/models.js ADDED
@@ -0,0 +1,71 @@
1
+ /** The ids custom models may have (SA-MP's). */
2
+ export const CUSTOM_MODEL_IDS = { first: -1000, last: -30000 };
3
+ /** Whether `model` is a custom model's id (whether it's defined or not). */
4
+ export function isCustomModelId(model) {
5
+ return Number.isInteger(model) && model <= CUSTOM_MODEL_IDS.first && model >= CUSTOM_MODEL_IDS.last;
6
+ }
7
+ /**
8
+ * The server's own models, as SA-MP's AddSimpleModel: a DFF (and its TXD)
9
+ * from the client files, given an id (-1000 to -30000) to use wherever a
10
+ * model goes: `server.createObject`, `server.createPickup`,
11
+ * `player.attachObject`, `server.interactions.add`. Every player's game
12
+ * loads them as they join (their client files are there by then), and at
13
+ * once if they're added later.
14
+ * `server.models`.
15
+ *
16
+ * ```ts
17
+ * server.models.add(-1000, { base: 1216, dff: "models/handset.dff", txd: "models/handset.txd" });
18
+ * server.createObject(-1000, { x: 2069, y: -1766, z: 14 });
19
+ * ```
20
+ */
21
+ export class ServerModels {
22
+ #native;
23
+ #players;
24
+ #models = new Map();
25
+ /** @internal */
26
+ constructor(native, players) {
27
+ this.#native = native;
28
+ this.#players = players;
29
+ }
30
+ /**
31
+ * Adds one. `base` is a game object model: shown in its place if it
32
+ * can't load, and its collision is this one's. It's a model of one
33
+ * piece (an object's, not a vehicle's or a ped's). Ids can't be
34
+ * redefined.
35
+ */
36
+ add(id, model) {
37
+ if (!isCustomModelId(id))
38
+ throw new RangeError(`not a custom model id: ${id} (-1000 to -30000)`);
39
+ if (this.#models.has(id))
40
+ throw new Error(`custom model ${id} is already ${this.#models.get(id).dff}`);
41
+ if (!Number.isInteger(model.base) || model.base <= 0 || model.base >= 20000) {
42
+ throw new RangeError(`not a base model: ${model.base}`);
43
+ }
44
+ const files = new Set(this.#native.clientFiles().map((f) => f.path));
45
+ for (const file of [model.dff, model.txd]) {
46
+ if (file !== undefined && !files.has(file))
47
+ throw new Error(`no client file "${file}"`);
48
+ }
49
+ const info = { id, base: model.base, dff: model.dff, ...(model.txd ? { txd: model.txd } : {}) };
50
+ this.#models.set(id, info);
51
+ for (const p of this.#players())
52
+ this.#send(p, info);
53
+ }
54
+ /** Whether `id` is one of them. */
55
+ has(id) {
56
+ return this.#models.has(id);
57
+ }
58
+ /** Every one. */
59
+ get list() {
60
+ return [...this.#models.values()];
61
+ }
62
+ /** @internal A player joined: every one (before anything uses them). */
63
+ replay(player) {
64
+ for (const m of this.#models.values())
65
+ this.#send(player, m);
66
+ }
67
+ #send(player, m) {
68
+ this.#native.customModel(player.id, { id: m.id, base: m.base, dff: m.dff, txd: m.txd ?? "" });
69
+ }
70
+ }
71
+ //# sourceMappingURL=models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,229 @@
1
+ import type { Livery, PaintFinish } from "./paint.js";
2
+ import type { Player, Vector3 } from "./player.js";
3
+ import type { Server } from "./server.js";
4
+ import { type Vehicle } from "./vehicle.js";
5
+ import type { Garage } from "./zone.js";
6
+ /** The game's mod shops (each sells its own parts; `modShop` events say which). */
7
+ export declare const ModShop: {
8
+ readonly TransFender: 1;
9
+ readonly LocoLowCo: 2;
10
+ readonly WheelArchAngels: 4;
11
+ };
12
+ /** A paint finish the Paint Finish area sells. */
13
+ export interface ModShopFinish {
14
+ /** As the menu shows it. */
15
+ name: string;
16
+ /** The finish (null: standard paint): built in, or your own shader (`{ shader, params }`). */
17
+ finish: PaintFinish | null;
18
+ /** Its price (before `priceScale`). Default `finishPrice`. */
19
+ price?: number;
20
+ /**
21
+ * Who may buy it: true (or nothing) yes; false: not shown to them; a text:
22
+ * shown, locked, with it in place of the price ("~r~Donors").
23
+ */
24
+ available?: (player: Player, vehicle: Vehicle) => boolean | string | void;
25
+ }
26
+ /** A livery (paint job) the Liveries area sells. */
27
+ export interface ModShopLivery {
28
+ name: string;
29
+ /** The livery (null: none, to take one off). */
30
+ livery: Livery | null;
31
+ /** Its price (before `priceScale`). Default `liveryPrice`. */
32
+ price?: number;
33
+ /** Only for these models (a livery drawn for one model's layout). Default any. */
34
+ models?: number[];
35
+ available?: (player: Player, vehicle: Vehicle) => boolean | string | void;
36
+ }
37
+ /**
38
+ * A shop's areas (its menu's options): the paint ones and plate, and each
39
+ * kind of part.
40
+ */
41
+ export type ModShopArea = "colors" | "finishes" | "liveries" | "paintjobs" | "plate" | "spoilers" | "hood" | "vents" | "sideSkirts" | "exhausts" | "nitro" | "frontBumper" | "rearBumper" | "lights" | "roof" | "wheels" | "frontBullbars" | "rearBullbars" | "misc" | "stereo" | "hydraulics";
42
+ export interface ModShopOptions {
43
+ /** Open (default true). */
44
+ enabled?: boolean;
45
+ /** Which of the game's shops are open (the others are left alone). Default all. */
46
+ shops?: {
47
+ transFender?: boolean;
48
+ locoLowCo?: boolean;
49
+ wheelArchAngels?: boolean;
50
+ };
51
+ /** The menu's title (a text, or `gxt()`). Default the shop's name. */
52
+ title?: string;
53
+ /**
54
+ * An image over the menu: a client file, or a game texture
55
+ * (`"game:<txd>/<texture>"`). Default the shop's sign; null: none (the title).
56
+ */
57
+ logo?: string | null;
58
+ /** Which cars it works on (by model). Default: the game's shops their own; a shop you make, any car with parts. */
59
+ accepts?: (model: number) => boolean;
60
+ /** Whose parts it sells (`ModShop` values added together). Default its own (a shop you make: all three). */
61
+ sells?: number;
62
+ /** Areas on (true) or off (false). Default all on that have something for the car (paint jobs: not TransFender). */
63
+ areas?: Partial<Record<ModShopArea, boolean>>;
64
+ /** Parts by id (`MOD_SHOP_PARTS`; each wheel its own): a price (as is, no `priceScale`), or false not sold. */
65
+ parts?: Record<number, number | false>;
66
+ /** Every price multiplied by this. Default 1. */
67
+ priceScale?: number;
68
+ /**
69
+ * A part's price for this car (after the rest): return a number to change
70
+ * it, or null to not sell it.
71
+ */
72
+ price?: (part: number, price: number, vehicle: Vehicle, player: Player) => number | null | void;
73
+ /**
74
+ * The colour grid's colours (colour ids), 8 a row. Default the game's 64
75
+ * (MOD_SHOP_COLORS) then yours (`server.vehicleColors`).
76
+ */
77
+ colors?: number[];
78
+ /** The game's colours in the grid (when `colors` isn't given). Default true; false: yours only. */
79
+ gameColors?: boolean;
80
+ /** Colours left out of the grid. */
81
+ hideColors?: number[];
82
+ /** A colour's price. Default 150 (the game's). */
83
+ colorPrice?: number;
84
+ /** A paint job's price (the game's own). Default 500 (the game's). */
85
+ paintjobPrice?: number;
86
+ /** A plate's price. Default 250. */
87
+ platePrice?: number;
88
+ /** The Paint Finish area's list. Default `DEFAULT_MOD_SHOP_FINISHES`. (Old: true/false, the area on or off.) */
89
+ finishes?: ModShopFinish[] | boolean;
90
+ /** A finish's price, where it has none of its own. Default 1000. */
91
+ finishPrice?: number;
92
+ /** The Liveries area's list. Default none (the area hidden). */
93
+ liveries?: ModShopLivery[];
94
+ /** A livery's price, where it has none of its own. Default 2000. */
95
+ liveryPrice?: number;
96
+ /** Their blips (the game's mod garage icon) on everyone's radar, near them. Default true. */
97
+ blips?: boolean;
98
+ /**
99
+ * Asked as they drive in, after the shop's own checks: return false to
100
+ * turn them away (say why yourself), or a text to turn them away with it.
101
+ */
102
+ onEnter?: (player: Player, vehicle: Vehicle, shop: number, garage: Garage | null) => boolean | string | void;
103
+ /**
104
+ * Options for this player and car (over the rest), asked as they drive
105
+ * in: a donor's finishes, a cheaper price for staff.
106
+ */
107
+ forPlayer?: (player: Player, vehicle: Vehicle, shop: ModShopSite) => ModShopOptions | void;
108
+ /** Old: per-area toggles. Use `areas.plate`. */
109
+ plates?: boolean;
110
+ }
111
+ /** The Paint Finish area's default list. */
112
+ export declare const DEFAULT_MOD_SHOP_FINISHES: readonly ModShopFinish[];
113
+ /** Making a shop of your own (`server.modShops.create`). */
114
+ export interface ModShopCreate extends ModShopOptions {
115
+ /** Its name, for `shop(id)`. Default "custom-1", ... */
116
+ id?: string;
117
+ /** Where a car starts it (the middle of the spot it drives onto). */
118
+ at: Vector3;
119
+ /** How far from `at` (m, each way) counts. Default 4 x 4 x 2. */
120
+ size?: Vector3;
121
+ /** Which way the car faces when it's put back at `at` (they drive or back out). Default as it came in. */
122
+ exitHeading?: number;
123
+ /** Whose shop floor it uses (interior, cameras). Default TransFender's. */
124
+ floor?: number;
125
+ /** A garage whose door shuts behind them. Default none. */
126
+ garage?: Garage;
127
+ }
128
+ /** What the shops tell the server. */
129
+ export interface ModShopEvents {
130
+ mod: (player: Player, vehicle: Vehicle, part: number, price: number) => void;
131
+ paintjob: (player: Player, vehicle: Vehicle, paintjob: number, price: number) => void;
132
+ respray: (player: Player, vehicle: Vehicle, colors: [number, number]) => void;
133
+ plate: (player: Player, vehicle: Vehicle, plate: string, price: number) => void;
134
+ finish: (player: Player, vehicle: Vehicle, finish: PaintFinish | null, price: number) => void;
135
+ livery: (player: Player, vehicle: Vehicle, livery: Livery | null, price: number) => void;
136
+ shop: (player: Player, vehicle: Vehicle, shop: number, entered: boolean, site: string) => void;
137
+ }
138
+ /**
139
+ * One mod shop (`server.modShops.shop(id)`): the game's ("transfender-ls",
140
+ * "transfender-sf", "transfender-lv", "locolow", "waa") or one you made.
141
+ * Its own options go over everyone's.
142
+ */
143
+ export declare class ModShopSite {
144
+ #private;
145
+ readonly id: string;
146
+ /** Whose shop floor (`ModShop`): its interior, cameras, and (the game's) its parts. */
147
+ readonly floor: number;
148
+ /** The game's shop it is, or 0 (one you made). */
149
+ readonly shop: number;
150
+ readonly garage: Garage | null;
151
+ /** @internal */
152
+ entry: {
153
+ x: number;
154
+ y: number;
155
+ z: number;
156
+ size: {
157
+ x: number;
158
+ y: number;
159
+ z: number;
160
+ };
161
+ };
162
+ /** @internal */
163
+ exitHeading: number | null;
164
+ /** @internal */
165
+ options: ModShopOptions;
166
+ /** @internal */
167
+ constructor(init: {
168
+ id: string;
169
+ floor: number;
170
+ shop: number;
171
+ garage: Garage | null;
172
+ entry: ModShopSite["entry"];
173
+ exitHeading: number | null;
174
+ changed: () => void;
175
+ remove: (() => void) | null;
176
+ });
177
+ /** Changes how this shop works (only the options given, over everyone's). */
178
+ configure(options: ModShopOptions): this;
179
+ /** Where a car starts it. */
180
+ get position(): Vector3;
181
+ /** Takes away a shop you made (the game's: `configure({ enabled: false })`). */
182
+ remove(): void;
183
+ }
184
+ /**
185
+ * The game's mod shops (`server.modShops`), on by default: drive into
186
+ * TransFender, Loco Low Co or Wheel Arch Angels, and buy parts, colours,
187
+ * paint finishes and paint jobs from the game's menu, each shown on the car
188
+ * first. Configure every shop (`configure`), one (`shop(id).configure`), or
189
+ * per player (`forPlayer`); make your own (`create`). Fires `vehicleMod`,
190
+ * `vehiclePaintjob`, `vehicleRespray`, `vehicleFinish`, `vehicleLivery`,
191
+ * `vehiclePlate` and `modShop`.
192
+ */
193
+ export declare class ModShops {
194
+ #private;
195
+ /** @internal */
196
+ constructor(server: Server, events: ModShopEvents);
197
+ /**
198
+ * Whether they work (default true). On, the game's shops' doors are open
199
+ * (its script opened them); off, shut, as the game starts them.
200
+ */
201
+ get enabled(): boolean;
202
+ set enabled(on: boolean);
203
+ /** Changes how every shop works (only the options given). */
204
+ configure(options: ModShopOptions): this;
205
+ /** Every shop: the game's five and yours. */
206
+ get shops(): ModShopSite[];
207
+ /** A shop by id: "transfender-ls", "transfender-sf", "transfender-lv", "locolow", "waa", or yours. */
208
+ shop(id: string): ModShopSite | undefined;
209
+ /**
210
+ * Makes a mod shop of your own: a spot a car drives onto, taking it to
211
+ * one of the game's shop floors, with its own options.
212
+ *
213
+ * ```ts
214
+ * server.modShops.create({ id: "docks", at: { x: 2770, y: -2400, z: 13.6 }, title: "Docks Tuning", logo: "ui/docks.png" });
215
+ * ```
216
+ */
217
+ create(spec: ModShopCreate): ModShopSite;
218
+ /** The garages that are mod shops, and which shop each is. */
219
+ get garages(): {
220
+ garage: Garage;
221
+ shop: number;
222
+ }[];
223
+ /** Which of the game's shops works on a model (0 none): Loco Low Co lowriders, Wheel Arch Angels street racers, TransFender other cars. */
224
+ static shopFor(model: number): number;
225
+ /** Whether a player is in a shop now. */
226
+ isShopping(player: Player): boolean;
227
+ /** Sends them out of the shop they're in (as if they'd left). */
228
+ kickOut(player: Player): Promise<void>;
229
+ }