@minicode-dev/chat 0.1.15 → 0.1.17

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 (58) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +2 -0
  3. package/dist/chunks/{BattleshipGameCard-8H-sBCsv.js → BattleshipGameCard-DwNzgH5G.js} +199 -199
  4. package/dist/chunks/{BattleshipGameCard-8H-sBCsv.js.map → BattleshipGameCard-DwNzgH5G.js.map} +1 -1
  5. package/dist/chunks/{BattleshipPrototype-CmQd5AUO.js → BattleshipPrototype-CSQxQJt5.js} +52 -52
  6. package/dist/chunks/{BattleshipPrototype-CmQd5AUO.js.map → BattleshipPrototype-CSQxQJt5.js.map} +1 -1
  7. package/dist/chunks/{ChatContext-CVW58bzC.js → ChatContext-D5rqvt5D.js} +2 -2
  8. package/dist/chunks/{ChatContext-CVW58bzC.js.map → ChatContext-D5rqvt5D.js.map} +1 -1
  9. package/dist/chunks/RacingLiveGameCard-_wvhDRlG.js +1873 -0
  10. package/dist/chunks/RacingLiveGameCard-_wvhDRlG.js.map +1 -0
  11. package/dist/chunks/{TanksGameCard-DnCufSH6.js → TanksGameCard-B-gtDYYg.js} +137 -137
  12. package/dist/chunks/{TanksGameCard-DnCufSH6.js.map → TanksGameCard-B-gtDYYg.js.map} +1 -1
  13. package/dist/chunks/{TanksLiveGameCard-D_27Jomp.js → TanksLiveGameCard-DXgd1J2Y.js} +392 -392
  14. package/dist/chunks/{TanksLiveGameCard-D_27Jomp.js.map → TanksLiveGameCard-DXgd1J2Y.js.map} +1 -1
  15. package/dist/chunks/{avalancheScene3d-CIE2WKQn.js → avalancheScene3d-CNbQyGUd.js} +2 -2
  16. package/dist/chunks/{avalancheScene3d-CIE2WKQn.js.map → avalancheScene3d-CNbQyGUd.js.map} +1 -1
  17. package/dist/chunks/{connect4Sounds-BqEHULjv.js → connect4Sounds-3a6h7gUC.js} +8 -8
  18. package/dist/chunks/{connect4Sounds-BqEHULjv.js.map → connect4Sounds-3a6h7gUC.js.map} +1 -1
  19. package/dist/chunks/createLiveScene-jrzyQogh.js +756 -0
  20. package/dist/chunks/{createLiveScene-MTGRv8rx.js.map → createLiveScene-jrzyQogh.js.map} +1 -1
  21. package/dist/chunks/createRaceScene-C-aw0dlX.js +291 -0
  22. package/dist/chunks/createRaceScene-C-aw0dlX.js.map +1 -0
  23. package/dist/chunks/{createTankScene-yhX6la27.js → createTankScene-6asWHKFf.js} +123 -125
  24. package/dist/chunks/{createTankScene-yhX6la27.js.map → createTankScene-6asWHKFf.js.map} +1 -1
  25. package/dist/chunks/fx-BNJvJYOu.js +871 -0
  26. package/dist/chunks/fx-BNJvJYOu.js.map +1 -0
  27. package/dist/chunks/{games-Bl_8raG6.js → games-D_9SiSBT.js} +708 -697
  28. package/dist/chunks/games-D_9SiSBT.js.map +1 -0
  29. package/dist/chunks/tank-DIn6Jyt8.js +605 -0
  30. package/dist/chunks/tank-DIn6Jyt8.js.map +1 -0
  31. package/dist/chunks/{tanks-live-BcKmrhnV.js → tanks-live-BRhYW4MG.js} +36 -36
  32. package/dist/chunks/{tanks-live-BcKmrhnV.js.map → tanks-live-BRhYW4MG.js.map} +1 -1
  33. package/dist/chunks/{tanksSounds-DTnidbiq.js → tanksSounds-tYPzje61.js} +4 -4
  34. package/dist/chunks/{tanksSounds-DTnidbiq.js.map → tanksSounds-tYPzje61.js.map} +1 -1
  35. package/dist/chunks/track-C1TWWT19.js +557 -0
  36. package/dist/chunks/track-C1TWWT19.js.map +1 -0
  37. package/dist/index.js +4236 -4020
  38. package/dist/index.js.map +1 -1
  39. package/dist/styles.css +1 -1
  40. package/index.d.ts +3 -1
  41. package/package.json +1 -1
  42. package/dist/chunks/RacingLiveGameCard-8j9QLnxW.js +0 -1654
  43. package/dist/chunks/RacingLiveGameCard-8j9QLnxW.js.map +0 -1
  44. package/dist/chunks/createLiveScene-MTGRv8rx.js +0 -758
  45. package/dist/chunks/createRaceScene-BiEtQsVs.js +0 -306
  46. package/dist/chunks/createRaceScene-BiEtQsVs.js.map +0 -1
  47. package/dist/chunks/decor-CyyCnmct.js +0 -418
  48. package/dist/chunks/decor-CyyCnmct.js.map +0 -1
  49. package/dist/chunks/fx-1ZwzmPWj.js +0 -458
  50. package/dist/chunks/fx-1ZwzmPWj.js.map +0 -1
  51. package/dist/chunks/games-Bl_8raG6.js.map +0 -1
  52. package/dist/chunks/rolldown-runtime-CGnMp29N.js +0 -10
  53. package/dist/chunks/tank-DjEQ4FXF.js +0 -553
  54. package/dist/chunks/tank-DjEQ4FXF.js.map +0 -1
  55. package/dist/chunks/track-BcnnpnAm.js +0 -259
  56. package/dist/chunks/track-BcnnpnAm.js.map +0 -1
  57. package/dist/chunks/util-DwI9bfS7.js +0 -57
  58. package/dist/chunks/util-DwI9bfS7.js.map +0 -1
@@ -1,7 +1,5 @@
1
- import { a as e, c as t, l as n, m as r, n as i, r as a, t as o } from "./util-DwI9bfS7.js";
2
- import { a as s, i as c, o as l, s as u } from "./tank-DjEQ4FXF.js";
3
- import { a as d, i as f, n as p, r as m, t as h } from "./decor-CyyCnmct.js";
4
- import { t as g } from "./fx-1ZwzmPWj.js";
1
+ import { a as e, b as t, c as n, f as r, g as i, h as a, i as o, l as s, o as c, s as l, u } from "./tank-DIn6Jyt8.js";
2
+ import { a as d, i as f, n as p, o as m, r as h, t as g } from "./fx-BNJvJYOu.js";
5
3
  import { ACESFilmicToneMapping as _, Clock as v, DirectionalLight as y, DynamicDrawUsage as b, Fog as ee, Group as te, HemisphereLight as ne, InstancedMesh as re, Matrix4 as ie, Mesh as ae, MeshBasicMaterial as oe, MeshLambertMaterial as se, MeshStandardMaterial as ce, PCFSoftShadowMap as le, PerspectiveCamera as ue, PlaneGeometry as de, Scene as fe, Vector3 as x, WebGLRenderer as pe, sRGBEncoding as me } from "three";
6
4
  // src/games/tanks/scene/createTankScene.js
7
5
  var he = 1 / 15, ge = 4, _e = .04, S = {
@@ -33,30 +31,30 @@ function Ce(S, { quality: Ce = "auto", reducedMotion: C = !1, onEvent: we } = {}
33
31
  stencil: !1,
34
32
  powerPreference: "high-performance"
35
33
  });
36
- D.outputEncoding = me, D.toneMapping = _, D.toneMappingExposure = 1.05, D.shadowMap.enabled = !0, D.shadowMap.type = le, D.shadowMap.autoUpdate = !1, D.setPixelRatio(xe(T)), D.setClearColor(p.horizon, 1);
34
+ D.outputEncoding = me, D.toneMapping = _, D.toneMappingExposure = 1.05, D.shadowMap.enabled = !0, D.shadowMap.type = le, D.shadowMap.autoUpdate = !1, D.setPixelRatio(xe(T)), D.setClearColor(h.horizon, 1);
37
35
  let O = D.domElement;
38
36
  O.style.display = "block", O.style.width = "100%", O.style.height = "100%", O.style.outline = "none", S.appendChild(O);
39
37
  let Ee = Math.max(1, S.clientWidth), De = Math.max(1, S.clientHeight);
40
38
  D.setSize(Ee, De, !1);
41
39
  let k = new fe();
42
- k.fog = new ee(p.fog.clone(), 200, 700);
40
+ k.fog = new ee(h.fog.clone(), 200, 700);
43
41
  let A = new ue(45, Ee / De, .5, 1400), j = new te();
44
42
  k.add(j);
45
- let Oe = new ne(t("#ffd2b0"), t("#33402f"), .6), M = new y(t("#ffbe7a"), 1.9);
43
+ let Oe = new ne(a("#ffd2b0"), a("#33402f"), .6), M = new y(a("#ffbe7a"), 1.9);
46
44
  M.shadow.mapSize.set(ve, ve), M.shadow.bias = -6e-4, M.shadow.normalBias = .04;
47
45
  let ke = M.shadow.camera;
48
46
  ke.left = -120, ke.right = 120, ke.top = 120, ke.bottom = -120, ke.near = 20, ke.far = 520, ke.updateProjectionMatrix(), k.add(Oe, M, M.target);
49
- let Ae = f(ye);
47
+ let Ae = d(ye);
50
48
  k.add(Ae.mesh);
51
- let je = m(new x(80, 0, 80), ye);
49
+ let je = f(new x(80, 0, 80), ye);
52
50
  k.add(je.mesh);
53
- let N = d();
51
+ let N = m();
54
52
  j.add(N.mesh);
55
- let P = h(), F = g(k, {
53
+ let P = p(), F = g(k, {
56
54
  quality: T,
57
55
  reducedMotion: C,
58
56
  heightAt: N.heightAt
59
- }), Me = l(), I = u(), L = /* @__PURE__ */ new Map(), Ne = [], R = null;
57
+ }), Me = c(), I = l(), L = /* @__PURE__ */ new Map(), Ne = [], R = null;
60
58
  function Pe() {
61
59
  return T === "low" ? new se({ vertexColors: !0 }) : new ce({
62
60
  vertexColors: !0,
@@ -65,10 +63,10 @@ function Ce(S, { quality: Ce = "auto", reducedMotion: C = !1, onEvent: we } = {}
65
63
  });
66
64
  }
67
65
  function Fe() {
68
- I.wheelMat = Pe(), R = new re(Me.wheel, I.wheelMat, ge * c.length), R.instanceMatrix.setUsage(b), R.frustumCulled = !1, R.count = 0, j.add(R);
66
+ I.wheelMat = Pe(), R = new re(Me.wheel, I.wheelMat, ge * o.length), R.instanceMatrix.setUsage(b), R.frustumCulled = !1, R.count = 0, j.add(R);
69
67
  }
70
68
  Fe();
71
- let Ie = i(64), Le = new de(1, 1);
69
+ let Ie = s(64), Le = new de(1, 1);
72
70
  Le.rotateX(-Math.PI / 2);
73
71
  let Re = new oe({
74
72
  map: Ie,
@@ -79,7 +77,7 @@ function Ce(S, { quality: Ce = "auto", reducedMotion: C = !1, onEvent: we } = {}
79
77
  polygonOffsetUnits: -2
80
78
  }), z = new re(Le, Re, ge);
81
79
  z.frustumCulled = !1, z.count = 0, z.renderOrder = 2, j.add(z);
82
- let ze = n(128), Be = new oe({
80
+ let ze = i(128), Be = new oe({
83
81
  map: ze,
84
82
  transparent: !0,
85
83
  depthWrite: !1,
@@ -122,32 +120,32 @@ function Ce(S, { quality: Ce = "auto", reducedMotion: C = !1, onEvent: we } = {}
122
120
  function tt() {
123
121
  let e = 0;
124
122
  K.set(0, 0, 0);
125
- let t = 0, n = 0, r = 0, i = 0;
126
- for (let a of Ne) {
127
- let o = L.get(a);
123
+ let t = 0, r = 0, i = 0, a = 0;
124
+ for (let n of Ne) {
125
+ let o = L.get(n);
128
126
  if (!o) continue;
129
127
  let s = o.state;
130
- e === 0 ? (t = s.x, n = s.z) : (r = s.x, i = s.z), K.x += s.x, K.y += s.y, K.z += s.z, e++;
128
+ e === 0 ? (t = s.x, r = s.z) : (i = s.x, a = s.z), K.x += s.x, K.y += s.y, K.z += s.z, e++;
131
129
  }
132
- e === 0 ? (K.copy(Xe), K.y = N.ready ? N.heightAt(Xe.x, Xe.z) : 0, r = t + 1, i = n) : K.multiplyScalar(1 / e), e < 2 && (r = t + 1, i = n);
133
- let s = r - t, c = i - n, l = e >= 2 ? Math.hypot(s, c) : 30, u = A.fov * o / 2;
130
+ e === 0 ? (K.copy(Xe), K.y = N.ready ? N.heightAt(Xe.x, Xe.z) : 0, i = t + 1, a = r) : K.multiplyScalar(1 / e), e < 2 && (i = t + 1, a = r);
131
+ let o = i - t, s = a - r, c = e >= 2 ? Math.hypot(o, s) : 30, l = A.fov * n / 2;
134
132
  if (Y && e >= 2) {
135
- let e = s / l, o = c / l, u = t, d = 0, f = n, p = V == null ? null : L.get(V);
136
- p && p.state.x === r && p.state.z === i && (e = -e, o = -o, u = r, f = i), d = N.ready ? N.heightAt(u, f) : K.y;
137
- let m = -o, h = e, g = a(l * .3, 16, 70), _ = l * .3 + 8, v = l * .1;
138
- J.dPos.set(u - e * g + m * v, d + _, f - o * g + h * v), J.dTarget.set(u + e * l * .42, d + 1, f + o * l * .42), J.rate = 2.2;
133
+ let e = o / c, n = s / c, l = t, d = 0, f = r, p = V == null ? null : L.get(V);
134
+ p && p.state.x === i && p.state.z === a && (e = -e, n = -n, l = i, f = a), d = N.ready ? N.heightAt(l, f) : K.y;
135
+ let m = -n, h = e, g = u(c * .3, 16, 70), _ = c * .3 + 8, v = c * .1;
136
+ J.dPos.set(l - e * g + m * v, d + _, f - n * g + h * v), J.dTarget.set(l + e * c * .42, d + 1, f + n * c * .42), J.rate = 2.2;
139
137
  return;
140
138
  }
141
- let d = -c, f = s, p = Math.hypot(d, f) || 1;
139
+ let d = -s, f = o, p = Math.hypot(d, f) || 1;
142
140
  d /= p, f /= p, f < 0 && (d = -d, f = -f);
143
- let m = Y ? .78 : .52, h = Math.atan(Math.tan(u) * A.aspect), g = (l / 2 + 14) / Math.tan(h);
144
- g = Math.max(g, 26 / Math.tan(u)), g = a(g * 1.05, 38, 260), J.dTarget.set(K.x, K.y + 2, K.z), J.dPos.set(K.x + d * Math.cos(m) * g, K.y + Math.sin(m) * g, K.z + f * Math.cos(m) * g), J.rate = 2.2;
141
+ let m = Y ? .78 : .52, h = Math.atan(Math.tan(l) * A.aspect), g = (c / 2 + 14) / Math.tan(h);
142
+ g = Math.max(g, 26 / Math.tan(l)), g = u(g * 1.05, 38, 260), J.dTarget.set(K.x, K.y + 2, K.z), J.dPos.set(K.x + d * Math.cos(m) * g, K.y + Math.sin(m) * g, K.z + f * Math.cos(m) * g), J.rate = 2.2;
145
143
  }
146
144
  function nt(e, t) {
147
- let n = e.state, r = (t ? n.hullYaw : n.yaw) * o, i = Math.cos(r), s = Math.sin(r), c = -s, l = i, u = Y ? 24 : 20, d = Y ? 2 : 4.5;
148
- J.dPos.set(n.x - i * u + c * d, n.y + (Y ? 10 : 8.5), n.z - s * u + l * d);
149
- let f = a(Math.tan(a(n.pitch, 0, 70) * o) * 4, 0, 10);
150
- J.dTarget.set(n.x + i * 40, n.y + 1 + f, n.z + s * 40), J.rate = t ? 3 : 4.5;
145
+ let r = e.state, i = (t ? r.hullYaw : r.yaw) * n, a = Math.cos(i), o = Math.sin(i), s = -o, c = a, l = Y ? 24 : 20, d = Y ? 2 : 4.5;
146
+ J.dPos.set(r.x - a * l + s * d, r.y + (Y ? 10 : 8.5), r.z - o * l + c * d);
147
+ let f = u(Math.tan(u(r.pitch, 0, 70) * n) * 4, 0, 10);
148
+ J.dTarget.set(r.x + a * 40, r.y + 1 + f, r.z + o * 40), J.rate = t ? 3 : 4.5;
151
149
  }
152
150
  function rt() {
153
151
  let e = J.vel.x, t = J.vel.z, n = Math.hypot(e, t) || 1, r = e / n, i = t / n;
@@ -156,26 +154,26 @@ function Ce(S, { quality: Ce = "auto", reducedMotion: C = !1, onEvent: we } = {}
156
154
  function it(e) {
157
155
  J.orbit += J.orbitSpeed * e * +!C, J.dPos.set(J.focus.x + Math.cos(J.orbit) * J.radius, J.focus.y + J.lift, J.focus.z + Math.sin(J.orbit) * J.radius), J.dTarget.set(J.focus.x, J.focus.y + (J.mode === "celebrate" ? 4 : 1.5), J.focus.z);
158
156
  }
159
- function at(t) {
160
- let n = J.tankId == null ? null : L.get(J.tankId);
157
+ function at(e) {
158
+ let t = J.tankId == null ? null : L.get(J.tankId);
161
159
  switch (J.mode) {
162
160
  case "aim":
163
- n ? nt(n, !1) : tt();
161
+ t ? nt(t, !1) : tt();
164
162
  break;
165
163
  case "drive":
166
- n ? nt(n, !0) : tt();
164
+ t ? nt(t, !0) : tt();
167
165
  break;
168
166
  case "follow":
169
167
  rt();
170
168
  break;
171
169
  case "impact":
172
- J.radius = 30, J.lift = 12, J.orbitSpeed = .22, J.rate = 2.4, it(t);
170
+ J.radius = 30, J.lift = 12, J.orbitSpeed = .22, J.rate = 2.4, it(e);
173
171
  break;
174
172
  case "killcam":
175
- n && J.focus.set(n.state.x, n.state.y, n.state.z), J.radius = 17, J.lift = 6.5, J.orbitSpeed = .32, J.rate = 2, it(t);
173
+ t && J.focus.set(t.state.x, t.state.y, t.state.z), J.radius = 17, J.lift = 6.5, J.orbitSpeed = .32, J.rate = 2, it(e);
176
174
  break;
177
175
  case "celebrate":
178
- n && J.focus.set(n.state.x, n.state.y, n.state.z), J.radius = Y ? 24 : 19, J.lift = 4.5, J.orbitSpeed = .38, J.rate = 1.8, it(t);
176
+ t && J.focus.set(t.state.x, t.state.y, t.state.z), J.radius = Y ? 24 : 19, J.lift = 4.5, J.orbitSpeed = .38, J.rate = 1.8, it(e);
179
177
  break;
180
178
  default: tt();
181
179
  }
@@ -183,34 +181,34 @@ function Ce(S, { quality: Ce = "auto", reducedMotion: C = !1, onEvent: we } = {}
183
181
  let e = N.heightAt(J.dPos.x, J.dPos.z) + 3;
184
182
  J.dPos.y < e && (J.dPos.y = e);
185
183
  }
186
- let r;
187
- if (J.snap) J.pos.copy(J.dPos), J.target.copy(J.dTarget), J.snap = !1, r = !0;
184
+ let n;
185
+ if (J.snap) J.pos.copy(J.dPos), J.target.copy(J.dTarget), J.snap = !1, n = !0;
188
186
  else {
189
- let n = e(J.rate, t);
190
- J.pos.lerp(J.dPos, n), J.target.lerp(J.dTarget, n), r = J.pos.distanceToSquared(J.dPos) > .0025 || J.target.distanceToSquared(J.dTarget) > .0025;
187
+ let t = r(J.rate, e);
188
+ J.pos.lerp(J.dPos, t), J.target.lerp(J.dTarget, t), n = J.pos.distanceToSquared(J.dPos) > .0025 || J.target.distanceToSquared(J.dTarget) > .0025;
191
189
  }
192
190
  if (N.ready) {
193
191
  let e = N.heightAt(J.pos.x, J.pos.z) + 2;
194
192
  J.pos.y < e && (J.pos.y = e);
195
193
  }
196
194
  if (A.position.copy(J.pos), J.shake > .001 && !C) {
197
- let e = J.shake;
198
- A.position.x += (Math.random() - .5) * e, A.position.y += (Math.random() - .5) * e, A.position.z += (Math.random() - .5) * e, J.shake *= Math.exp(-6 * t), r = !0;
195
+ let t = J.shake;
196
+ A.position.x += (Math.random() - .5) * t, A.position.y += (Math.random() - .5) * t, A.position.z += (Math.random() - .5) * t, J.shake *= Math.exp(-6 * e), n = !0;
199
197
  } else J.shake = 0;
200
198
  A.lookAt(J.target);
201
199
  let i = J.pos.distanceTo(J.target);
202
- return k.fog.near = i * 1.1 + 20, k.fog.far = i * 3.2 + 260, J.moving = r || J.mode === "impact" || J.mode === "killcam" || J.mode === "celebrate" && !!G, J.moving;
200
+ return k.fog.near = i * 1.1 + 20, k.fog.far = i * 3.2 + 260, J.moving = n || J.mode === "impact" || J.mode === "killcam" || J.mode === "celebrate" && !!G, J.moving;
203
201
  }
204
202
  function ot(e, t) {
205
203
  return e.color === "red" || e.color === "green" ? e.color : t === 0 ? "green" : "red";
206
204
  }
207
- function st(e, t) {
208
- let n = L.get(e.id);
209
- return n || (n = s(Me, I, {
210
- id: e.id,
211
- color: ot(e, t),
205
+ function st(t, n) {
206
+ let r = L.get(t.id);
207
+ return r || (r = e(Me, I, {
208
+ id: t.id,
209
+ color: ot(t, n),
212
210
  quality: T
213
- }), n.setShadows(T === "high"), j.add(n.root), L.set(e.id, n), Ne.push(e.id), n);
211
+ }), r.setShadows(T === "high"), j.add(r.root), L.set(t.id, r), Ne.push(t.id), r);
214
212
  }
215
213
  function ct(e) {
216
214
  let t = L.get(e);
@@ -226,8 +224,8 @@ function Ce(S, { quality: Ce = "auto", reducedMotion: C = !1, onEvent: we } = {}
226
224
  let t = e.state;
227
225
  if (t.blown) return;
228
226
  e.place(N), j.attach(e.turret);
229
- let n = (t.hullYaw + 120) * o, r = t.x + Math.cos(n) * 4.5, i = t.z + Math.sin(n) * 4.5;
230
- e.turret.position.set(r, N.heightAt(r, i) + .2, i), e.turret.rotation.set(.5, n, 2.6), t.blown = {
227
+ let r = (t.hullYaw + 120) * n, i = t.x + Math.cos(r) * 4.5, a = t.z + Math.sin(r) * 4.5;
228
+ e.turret.position.set(i, N.heightAt(i, a) + .2, a), e.turret.rotation.set(.5, r, 2.6), t.blown = {
231
229
  p: e.turret.position.clone(),
232
230
  v: new x(),
233
231
  w: new x(),
@@ -257,7 +255,7 @@ function Ce(S, { quality: Ce = "auto", reducedMotion: C = !1, onEvent: we } = {}
257
255
  let e = 0, t = 0;
258
256
  for (let n of Ne) {
259
257
  let r = L.get(n);
260
- r.writeWheels(R, e), e += c.length;
258
+ r.writeWheels(R, e), e += o.length;
261
259
  let i = r.state;
262
260
  K.set(i.x, i.y + .08, i.z), $e.set(7.2, 1, 5.2), Qe.compose(K, r.body.quaternion, $e), z.setMatrixAt(t++, Qe);
263
261
  }
@@ -307,81 +305,81 @@ function Ce(S, { quality: Ce = "auto", reducedMotion: C = !1, onEvent: we } = {}
307
305
  let i = Math.floor(t), a = t - i, o = i * 3;
308
306
  return n.set(e[o] + (e[o + 3] - e[o]) * a, e[o + 1] + (e[o + 4] - e[o + 1]) * a, e[o + 2] + (e[o + 5] - e[o + 2]) * a);
309
307
  }
310
- function* yt(t) {
311
- let n = L.get(t.tankId), i = C ? 2 : 1;
312
- n && (n.state.targetYaw = null, n.state.targetPitch = null), B.visible = !1, F.setPreview(null);
313
- let a = Array.isArray(t.movePath) ? t.movePath.filter((e) => e && Number.isFinite(e.x) && Number.isFinite(e.z)) : [], s = 0, c = [];
314
- for (let e = 1; e < a.length; e++) {
315
- let t = Math.hypot(a[e].x - a[e - 1].x, a[e].z - a[e - 1].z);
308
+ function* yt(e) {
309
+ let i = L.get(e.tankId), a = C ? 2 : 1;
310
+ i && (i.state.targetYaw = null, i.state.targetPitch = null), B.visible = !1, F.setPreview(null);
311
+ let o = Array.isArray(e.movePath) ? e.movePath.filter((e) => e && Number.isFinite(e.x) && Number.isFinite(e.z)) : [], s = 0, c = [];
312
+ for (let e = 1; e < o.length; e++) {
313
+ let t = Math.hypot(o[e].x - o[e - 1].x, o[e].z - o[e - 1].z);
316
314
  c.push(t), s += t;
317
315
  }
318
- if (n && n.state.alive && s > .05) {
319
- let t = n.state;
320
- X("drive", { tankId: n.id }), w({
316
+ if (i && i.state.alive && s > .05) {
317
+ let e = i.state;
318
+ X("drive", { tankId: i.id }), w({
321
319
  type: "engine_start",
322
- tankId: n.id
320
+ tankId: i.id
323
321
  }), yield* gt(C ? .05 : .35), w({
324
322
  type: "move_start",
325
- tankId: n.id
323
+ tankId: i.id
326
324
  });
327
- let l = 5 * i, u = 0, d = 0, f = Math.cos(t.hullYaw * o), p = Math.sin(t.hullYaw * o);
325
+ let l = 5 * a, u = 0, d = 0, f = Math.cos(e.hullYaw * n), p = Math.sin(e.hullYaw * n);
328
326
  for (; u < s;) {
329
- let i = yield, m = t.x, h = t.z;
330
- u = Math.min(s, u + l * i);
327
+ let a = yield, m = e.x, h = e.z;
328
+ u = Math.min(s, u + l * a);
331
329
  let g = 0, _ = 0;
332
330
  for (; _ < c.length - 1 && g + c[_] < u;) g += c[_++];
333
- let v = c[_] > 0 ? (u - g) / c[_] : 1, y = a[_], b = a[_ + 1];
334
- t.x = y.x + (b.x - y.x) * v, t.z = y.z + (b.z - y.z) * v;
331
+ let v = c[_] > 0 ? (u - g) / c[_] : 1, y = o[_], b = o[_ + 1];
332
+ e.x = y.x + (b.x - y.x) * v, e.z = y.z + (b.z - y.z) * v;
335
333
  let ee = Number.isFinite(y.y) ? y.y : N.heightAt(y.x, y.z);
336
- t.y = ee + ((Number.isFinite(b.y) ? b.y : N.heightAt(b.x, b.z)) - ee) * v;
337
- let te = t.x - m, ne = t.z - h, re = Math.hypot(te, ne);
334
+ e.y = ee + ((Number.isFinite(b.y) ? b.y : N.heightAt(b.x, b.z)) - ee) * v;
335
+ let te = e.x - m, ne = e.z - h, re = Math.hypot(te, ne);
338
336
  if (re > 1e-5) {
339
- let a = (te * f + ne * p) / re;
340
- if (Math.abs(a) < .9) {
341
- let n = Math.atan2(ne, te) / o, s = a >= 0 ? n : n + 180, c = r((s - t.hullYaw) * o) / o * e(6, i);
342
- t.hullYaw += c, t.yaw += c;
337
+ let o = (te * f + ne * p) / re;
338
+ if (Math.abs(o) < .9) {
339
+ let i = Math.atan2(ne, te) / n, s = o >= 0 ? i : i + 180, c = t((s - e.hullYaw) * n) / n * r(6, a);
340
+ e.hullYaw += c, e.yaw += c;
343
341
  }
344
- n.scrollTracks(a >= 0 ? re : -re), d += re;
342
+ i.scrollTracks(o >= 0 ? re : -re), d += re;
345
343
  }
346
- for (n.place(N, i); d > .7;) d -= .7, n.localToWorld(q, -2.6, .2, 1.4), F.dust(q.x, q.y, q.z), n.localToWorld(q, -2.6, .2, -1.4), F.dust(q.x, q.y, q.z), n.localToWorld(q, -3.3, 1.3, .9), F.exhaust(q.x, q.y, q.z);
344
+ for (i.place(N, a); d > .7;) d -= .7, i.localToWorld(q, -2.6, .2, 1.4), F.dust(q.x, q.y, q.z), i.localToWorld(q, -2.6, .2, -1.4), F.dust(q.x, q.y, q.z), i.localToWorld(q, -3.3, 1.3, .9), F.exhaust(q.x, q.y, q.z);
347
345
  We = !0, H = !0;
348
346
  }
349
347
  w({
350
348
  type: "move_end",
351
- tankId: n.id
349
+ tankId: i.id
352
350
  });
353
351
  }
354
- if (n && n.state.alive) {
355
- let e = n.state, a = Number.isFinite(t.yaw) ? t.yaw : e.yaw, s = Number.isFinite(t.pitch) ? t.pitch : e.pitch, c = r((a - e.yaw) * o) / o, l = s - e.pitch;
356
- if ((J.mode !== "drive" && !C || J.mode === "drive") && X("aim", { tankId: n.id }), Math.abs(c) > .5 || Math.abs(l) > .5) {
352
+ if (i && i.state.alive) {
353
+ let r = i.state, o = Number.isFinite(e.yaw) ? e.yaw : r.yaw, s = Number.isFinite(e.pitch) ? e.pitch : r.pitch, c = t((o - r.yaw) * n) / n, l = s - r.pitch;
354
+ if ((J.mode !== "drive" && !C || J.mode === "drive") && X("aim", { tankId: i.id }), Math.abs(c) > .5 || Math.abs(l) > .5) {
357
355
  w({
358
356
  type: "turret_start",
359
- tankId: n.id
357
+ tankId: i.id
360
358
  });
361
- let t = 90 * i, r = Math.max(.25, Math.max(Math.abs(c), Math.abs(l)) / t), a = e.yaw, o = e.pitch, s = 0;
362
- for (; s < r;) {
359
+ let e = 90 * a, t = Math.max(.25, Math.max(Math.abs(c), Math.abs(l)) / e), n = r.yaw, o = r.pitch, s = 0;
360
+ for (; s < t;) {
363
361
  s += yield;
364
- let t = Math.min(1, s / r), i = t * t * (3 - 2 * t);
365
- e.yaw = a + c * i, e.pitch = o + l * i, n.place(N), H = !0;
362
+ let e = Math.min(1, s / t), a = e * e * (3 - 2 * e);
363
+ r.yaw = n + c * a, r.pitch = o + l * a, i.place(N), H = !0;
366
364
  }
367
365
  w({
368
366
  type: "turret_end",
369
- tankId: n.id
367
+ tankId: i.id
370
368
  });
371
369
  }
372
- e.yaw = a, e.pitch = s, n.place(N), yield* gt(C ? .05 : .2);
370
+ r.yaw = o, r.pitch = s, i.place(N), yield* gt(C ? .05 : .2);
373
371
  }
374
- let l = Array.isArray(t.shots) ? t.shots.slice(0, 8) : [], u = Array.isArray(t.craters) ? t.craters.map((e) => ({
372
+ let l = Array.isArray(e.shots) ? e.shots.slice(0, 8) : [], u = Array.isArray(e.craters) ? e.craters.map((e) => ({
375
373
  ...e,
376
374
  used: !1
377
- })) : [], d = t.damage || {}, f = /* @__PURE__ */ new Set(), p = l.map((e, t) => {
375
+ })) : [], d = e.damage || {}, f = /* @__PURE__ */ new Set(), p = l.map((e, t) => {
378
376
  let n = e && e.samples && e.samples.length >= 3 ? e.samples : null, r = n ? n.length / 3 | 0 : 0;
379
377
  return {
380
378
  shot: e,
381
379
  samples: n,
382
380
  n: r,
383
- start: (Number.isFinite(e && e.startMs) ? e.startMs / 1e3 : 0) / i,
384
- dur: Math.max(1, r - 1) * _e / i,
381
+ start: (Number.isFinite(e && e.startMs) ? e.startMs / 1e3 : 0) / a,
382
+ dur: Math.max(1, r - 1) * _e / a,
385
383
  role: e && e.role || "main",
386
384
  slot: t,
387
385
  started: !1,
@@ -390,25 +388,25 @@ function Ce(S, { quality: Ce = "auto", reducedMotion: C = !1, onEvent: we } = {}
390
388
  };
391
389
  }), m = !1, h = null, g = p.find((e) => e.role === "carrier" && !e.done) || null;
392
390
  if (p.length) {
393
- let e = 0, r = p.filter((e) => !e.done).length, a = Math.min(...p.map((e) => e.start));
394
- for (; r > 0 && e < 30;) {
395
- !m && n && (m = !0, n.muzzleWorld(q), n.gunDirWorld(Ze), F.muzzle(q, Ze), n.state.recoil = 1, J.shake = .6, w({
391
+ let t = 0, n = p.filter((e) => !e.done).length, r = Math.min(...p.map((e) => e.start));
392
+ for (; n > 0 && t < 30;) {
393
+ !m && i && (m = !0, i.muzzleWorld(q), i.gunDirWorld(Ze), F.muzzle(q, Ze), i.state.recoil = 1, J.shake = .6, w({
396
394
  type: "fire",
397
- tankId: n.id
395
+ tankId: i.id
398
396
  }));
399
397
  let o = 0, s = 0, c = 0, l = 0, _ = 0, v = 0, y = 0;
400
398
  for (let m of p) {
401
399
  if (m.done) continue;
402
- let p = e - m.start;
400
+ let p = t - m.start;
403
401
  if (p < 0 || !m.started && m.role === "bomblet" && g && !g.done) continue;
404
- m.started || (m.started = !0, vt(m.samples, 0, K), n && (m.role === "main" || m.role === "carrier") && m.start <= a + 1e-6 && (n.muzzleWorld(q), m.offset.copy(q).sub(K)), F.projShow(m.slot, K.x + m.offset.x, K.y + m.offset.y, K.z + m.offset.z, (m.shot.radius || 0) >= 7), w({
402
+ m.started || (m.started = !0, vt(m.samples, 0, K), i && (m.role === "main" || m.role === "carrier") && m.start <= r + 1e-6 && (i.muzzleWorld(q), m.offset.copy(q).sub(K)), F.projShow(m.slot, K.x + m.offset.x, K.y + m.offset.y, K.z + m.offset.z, (m.shot.radius || 0) >= 7), w({
405
403
  type: "projectile_start",
406
- tankId: t.tankId,
404
+ tankId: e.tankId,
407
405
  role: m.role
408
406
  }));
409
- let b = p / _e * i;
407
+ let b = p / _e * a;
410
408
  if (p >= m.dur) {
411
- m.done = !0, r--, F.projHide(m.slot), h = bt(m, u, d, f) || h;
409
+ m.done = !0, n--, F.projHide(m.slot), h = bt(m, u, d, f) || h;
412
410
  continue;
413
411
  }
414
412
  vt(m.samples, b, K);
@@ -418,7 +416,7 @@ function Ce(S, { quality: Ce = "auto", reducedMotion: C = !1, onEvent: we } = {}
418
416
  y > 0 ? (J.focus.set(o / y, s / y, c / y), Math.hypot(l, v) > .1 && J.vel.set(l / y, _ / y, v / y), J.mode !== "follow" && !C && X("follow"), C && J.mode !== "overview" && X("overview", { cut: !0 })) : h && J.mode === "follow" && X("impact", {
419
417
  focus: h,
420
418
  orbitFromCurrent: !0
421
- }), e += yield;
419
+ }), t += yield;
422
420
  }
423
421
  }
424
422
  for (let e of u) e.used || (N.crater(e.x, e.z, e.radius || 4, e.depth || 1), P.blast(N, e.x, e.z, e.radius || 4), H = !0);
@@ -430,7 +428,7 @@ function Ce(S, { quality: Ce = "auto", reducedMotion: C = !1, onEvent: we } = {}
430
428
  focus: h,
431
429
  orbitFromCurrent: !0
432
430
  }), C && X("overview", { cut: !0 }), yield* gt(C ? .5 : 1.3)) : yield* gt(.4);
433
- let _ = Array.isArray(t.destroyed) ? t.destroyed : [];
431
+ let _ = Array.isArray(e.destroyed) ? e.destroyed : [];
434
432
  for (let e of _) {
435
433
  let t = L.get(e);
436
434
  !t || !t.state.alive && t.state.charred || (C || (X("killcam", {
@@ -536,13 +534,13 @@ function Ce(S, { quality: Ce = "auto", reducedMotion: C = !1, onEvent: we } = {}
536
534
  }
537
535
  function Rt() {
538
536
  if (Z = 0, E || !Ot) return;
539
- let n = Nt.getDelta();
540
- U = Math.min(n, he);
537
+ let e = Nt.getDelta();
538
+ U = Math.min(e, he);
541
539
  let i = U * Je;
542
540
  qe += U;
543
- let a = qe < Ke;
541
+ let o = qe < Ke;
544
542
  if (W) {
545
- a = !0, W.realT += U;
543
+ o = !0, W.realT += U;
546
544
  let e;
547
545
  try {
548
546
  e = W.gen.next(i);
@@ -551,37 +549,37 @@ function Ce(S, { quality: Ce = "auto", reducedMotion: C = !1, onEvent: we } = {}
551
549
  }
552
550
  (e.done || W.realT > W.deadline) && St(W), W || xt();
553
551
  }
554
- for (let t of Ne) {
555
- let n = L.get(t), s = n.state, c = !1;
552
+ for (let e of Ne) {
553
+ let a = L.get(e), s = a.state, c = !1;
556
554
  if (s.targetYaw != null && !W) {
557
- let t = r((s.targetYaw - s.yaw) * o) / o, n = s.targetPitch - s.pitch;
558
- if (Math.abs(t) > .02 || Math.abs(n) > .02) {
559
- let r = C ? 1 : e(14, U);
560
- s.yaw += t * r, s.pitch += n * r, c = !0, a = !0;
555
+ let e = t((s.targetYaw - s.yaw) * n) / n, i = s.targetPitch - s.pitch;
556
+ if (Math.abs(e) > .02 || Math.abs(i) > .02) {
557
+ let t = C ? 1 : r(14, U);
558
+ s.yaw += e * t, s.pitch += i * t, c = !0, o = !0;
561
559
  } else Ge && (s.yaw = s.targetYaw, s.pitch = s.targetPitch, c = !0);
562
560
  }
563
- s.recoil > 0 && (s.recoil = Math.max(0, s.recoil - i * 2.2), c = !0, a = !0), s.hitFlash > 0 && (s.hitFlash = Math.max(0, s.hitFlash - i * 2.5), n.setFlash(s.hitFlash * s.hitFlash * 1.5), a = !0), ft(n, i) && (a = !0), c && (n.place(N), H = !0);
564
- let l = mt(n);
565
- l > 0 && (s.blown && l >= 2 ? K.set(s.x, s.y + 1.4, s.z) : n.localToWorld(K, l >= 2 ? -.5 : -1.8, 1.8, 0), F.emitDamage(K.x, K.y, K.z, i, l, s));
561
+ s.recoil > 0 && (s.recoil = Math.max(0, s.recoil - i * 2.2), c = !0, o = !0), s.hitFlash > 0 && (s.hitFlash = Math.max(0, s.hitFlash - i * 2.5), a.setFlash(s.hitFlash * s.hitFlash * 1.5), o = !0), ft(a, i) && (o = !0), c && (a.place(N), H = !0);
562
+ let l = mt(a);
563
+ l > 0 && (s.blown && l >= 2 ? K.set(s.x, s.y + 1.4, s.z) : a.localToWorld(K, l >= 2 ? -.5 : -1.8, 1.8, 0), F.emitDamage(K.x, K.y, K.z, i, l, s));
566
564
  }
567
565
  if (Ge = !1, G) {
568
566
  let e = G;
569
- if (e.t += U, e.next -= U, a = !0, e.next <= 0 && e.t < 5.5) {
567
+ if (e.t += U, e.next -= U, o = !0, e.next <= 0 && e.t < 5.5) {
570
568
  e.next = .55;
571
- let n = e.id == null ? null : L.get(e.id), r = n ? n.state.x : Xe.x, i = n ? n.state.z : Xe.z, a = n ? n.state.y : N.heightAt(r, i), o = n ? n.team.accent : t("#ffd36b");
572
- F.firework(r + (Math.random() - .5) * 10, a + 9 + Math.random() * 3, i + (Math.random() - .5) * 10, o);
569
+ let t = e.id == null ? null : L.get(e.id), n = t ? t.state.x : Xe.x, r = t ? t.state.z : Xe.z, i = t ? t.state.y : N.heightAt(n, r), o = t ? t.team.accent : a("#ffd36b");
570
+ F.firework(n + (Math.random() - .5) * 10, i + 9 + Math.random() * 3, r + (Math.random() - .5) * 10, o);
573
571
  }
574
572
  e.t > 9 && (G = null);
575
573
  }
576
- We && pt(), F.update(i, A, D, a || !!W) && (a = !0), at(U) && (a = !0), F.hasPreview && J.mode === "aim" && (a = a || qe < Ke), H && T === "high" && (D.shadowMap.needsUpdate = !0), H = !1, D.render(k, A);
574
+ We && pt(), F.update(i, A, D, o || !!W) && (o = !0), at(U) && (o = !0), F.hasPreview && J.mode === "aim" && (o = o || qe < Ke), H && T === "high" && (D.shadowMap.needsUpdate = !0), H = !1, D.render(k, A);
577
575
  let s = D.info.render;
578
576
  It = {
579
577
  calls: s.calls,
580
578
  triangles: s.triangles,
581
579
  particles: F.particleCount,
582
580
  quality: T,
583
- fps: n > 0 ? Math.round(1 / n) : 0
584
- }, Te && a && T !== "low" && qe > 2 && (Pt += Math.min(n, .25), Ft++, Ft >= 90 && (Pt / Ft > 1 / 38 && Vt(T === "high" ? "medium" : "low"), Pt = 0, Ft = 0)), a ? Lt() : zt() ? Q = setTimeout(() => {
581
+ fps: e > 0 ? Math.round(1 / e) : 0
582
+ }, Te && o && T !== "low" && qe > 2 && (Pt += Math.min(e, .25), Ft++, Ft >= 90 && (Pt / Ft > 1 / 38 && Vt(T === "high" ? "medium" : "low"), Pt = 0, Ft = 0)), o ? Lt() : zt() ? Q = setTimeout(() => {
585
583
  Q = 0, Lt();
586
584
  }, 40) : Nt.stop();
587
585
  }
@@ -685,4 +683,4 @@ function Ce(S, { quality: Ce = "auto", reducedMotion: C = !1, onEvent: we } = {}
685
683
  }
686
684
  export { Ce as createTankScene, Ce as default };
687
685
 
688
- //# sourceMappingURL=createTankScene-yhX6la27.js.map
686
+ //# sourceMappingURL=createTankScene-6asWHKFf.js.map