@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
package/dist/zone.js ADDED
@@ -0,0 +1,140 @@
1
+ /** The game's garage types (as the map files define them). */
2
+ export const GarageType = {
3
+ Mission: 1,
4
+ BombShopTimed: 2,
5
+ BombShopEngine: 3,
6
+ BombShopRemote: 4,
7
+ PayNSpray: 5,
8
+ SafehouseGanton: 16,
9
+ SafehouseSantaMaria: 17,
10
+ SafehouseRockshore: 18,
11
+ ImpoundLS: 33,
12
+ ImpoundSF: 34,
13
+ ImpoundLV: 35,
14
+ };
15
+ /**
16
+ * An area the server watches players against, firing `zoneEnter`,
17
+ * `zoneLeave` and `zoneMove` (each position update while inside). Positions
18
+ * are the ones players sync, on foot or driving.
19
+ */
20
+ export class Zone {
21
+ id;
22
+ /** The garage this zone covers, for the built-in garage zones. */
23
+ garage;
24
+ /** Free-form storage for gamemode data. */
25
+ data = {};
26
+ #destroy;
27
+ #exists = true;
28
+ /** @internal Created by Server. */
29
+ constructor(id, garage, destroy) {
30
+ this.id = id;
31
+ this.garage = garage;
32
+ this.#destroy = destroy;
33
+ }
34
+ get exists() {
35
+ return this.#exists;
36
+ }
37
+ /** @internal */
38
+ markDestroyed() {
39
+ this.#exists = false;
40
+ }
41
+ /** Stops watching it (no leave events are sent). */
42
+ destroy() {
43
+ if (this.#exists)
44
+ this.#destroy(this);
45
+ }
46
+ }
47
+ /**
48
+ * One of the game's garages: a door the server opens and closes for
49
+ * everyone, and a zone over its floor. Players' games run none of the
50
+ * garage's own logic (no Pay 'n' Spray, safehouse storage, ...): build that
51
+ * from `zoneEnter` on `garage.zone`.
52
+ */
53
+ export class Garage {
54
+ id;
55
+ /** As in the map files; not unique. */
56
+ name;
57
+ /** See `GarageType`. */
58
+ type;
59
+ position;
60
+ zone;
61
+ #native;
62
+ #open;
63
+ #box;
64
+ /** @internal Created by Server. */
65
+ constructor(nativeServer, state) {
66
+ this.#native = nativeServer;
67
+ this.id = state.id;
68
+ this.name = state.name || `garage${state.id}`;
69
+ this.type = state.type;
70
+ this.position = { x: state.x, y: state.y, z: state.z };
71
+ this.#open = state.open;
72
+ this.#box = {
73
+ x: state.x, y: state.y, z: state.z, ax: state.frontX - state.x, ay: state.frontY - state.y,
74
+ bx: state.sideX - state.x, by: state.sideY - state.y, top: state.topZ,
75
+ };
76
+ }
77
+ /**
78
+ * Whether a spot is inside it, at least `margin` m from its walls (not
79
+ * the floor or roof): a car's position with a margin of half its length
80
+ * is a car wholly inside, as the game's garages check before shutting.
81
+ * A negative margin reaches that far outside.
82
+ */
83
+ contains(at, margin = 0) {
84
+ const b = this.#box;
85
+ if (at.z < b.z - 1 || at.z > b.top)
86
+ return false;
87
+ const la = Math.hypot(b.ax, b.ay), lb = Math.hypot(b.bx, b.by);
88
+ const dx = at.x - b.x, dy = at.y - b.y;
89
+ // Along each side, in metres from its start.
90
+ const u = (dx * b.ax + dy * b.ay) / la, v = (dx * b.bx + dy * b.by) / lb;
91
+ return u >= margin && u <= la - margin && v >= Math.min(margin, lb / 2) && v <= lb - Math.min(margin, lb / 2);
92
+ }
93
+ /**
94
+ * The spot `distance` m outside the wall nearest `at`, across from `at`
95
+ * (for where a car drove in: in front of the door), facing away from the
96
+ * garage: where to put a car driving out.
97
+ */
98
+ outside(at, distance = 4) {
99
+ const b = this.#box;
100
+ const la = Math.hypot(b.ax, b.ay), lb = Math.hypot(b.bx, b.by);
101
+ const a1 = { x: b.ax / la, y: b.ay / la }, b1 = { x: b.bx / lb, y: b.by / lb };
102
+ const dx = at.x - b.x, dy = at.y - b.y;
103
+ const u = dx * a1.x + dy * a1.y, v = dx * b1.x + dy * b1.y;
104
+ // Each wall: how far `at` is in from it (outside: less than 0), the spot
105
+ // on it across from `at` (along a, b), its outward way.
106
+ const cu = Math.max(1, Math.min(la - 1, u)), cv = Math.max(1, Math.min(lb - 1, v));
107
+ const walls = [
108
+ { d: v, mid: [cu, 0], out: { x: -b1.x, y: -b1.y } },
109
+ { d: lb - v, mid: [cu, lb], out: b1 },
110
+ { d: u, mid: [0, cv], out: { x: -a1.x, y: -a1.y } },
111
+ { d: la - u, mid: [la, cv], out: a1 },
112
+ ];
113
+ const w = walls.reduce((m, x) => (x.d < m.d ? x : m));
114
+ const mx = b.x + a1.x * w.mid[0] + b1.x * w.mid[1], my = b.y + a1.y * w.mid[0] + b1.y * w.mid[1];
115
+ return {
116
+ position: { x: mx + w.out.x * distance, y: my + w.out.y * distance, z: b.z + 0.5 },
117
+ heading: ((Math.atan2(-w.out.x, w.out.y) * 180) / Math.PI + 360) % 360,
118
+ };
119
+ }
120
+ /** Its floor's middle. */
121
+ get center() {
122
+ const b = this.#box;
123
+ return { x: b.x + (b.ax + b.bx) / 2, y: b.y + (b.ay + b.by) / 2, z: b.z };
124
+ }
125
+ get isOpen() {
126
+ return this.#open;
127
+ }
128
+ open() {
129
+ this.#open = true;
130
+ this.#native.setGarageOpen(this.id, true);
131
+ }
132
+ close() {
133
+ this.#open = false;
134
+ this.#native.setGarageOpen(this.id, false);
135
+ }
136
+ toString() {
137
+ return `garage ${this.id} (${this.name})`;
138
+ }
139
+ }
140
+ //# sourceMappingURL=zone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zone.js","sourceRoot":"","sources":["../src/zone.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,35 @@
1
1
  {
2
2
  "name": "@sagl/server",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.1.0-next.49",
4
+ "description": "SAGL multiplayer server for GTA: San Andreas, scriptable in Node.js",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "default": "./dist/index.js"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist",
16
+ "README.md",
17
+ "LICENSE"
18
+ ],
19
+ "engines": {
20
+ "node": ">=22"
21
+ },
22
+ "license": "MIT",
23
+ "homepage": "https://docs.sagl.mp",
24
+ "keywords": [
25
+ "gta",
26
+ "san-andreas",
27
+ "multiplayer",
28
+ "game-server",
29
+ "sagl"
30
+ ],
31
+ "optionalDependencies": {
32
+ "@sagl/server-linux-x64": "0.1.0-next.49",
33
+ "@sagl/server-win32-x64": "0.1.0-next.49"
34
+ }
35
+ }