@minicode-dev/chat 0.1.13 → 0.1.14

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 (110) hide show
  1. package/CHANGELOG.md +112 -5
  2. package/README.md +401 -312
  3. package/assets/sounds/effects/avalanche.mp3 +0 -0
  4. package/assets/sounds/racing/car_boost.mp3 +0 -0
  5. package/assets/sounds/racing/car_boost.ogg +0 -0
  6. package/assets/sounds/racing/car_bump.mp3 +0 -0
  7. package/assets/sounds/racing/car_bump.ogg +0 -0
  8. package/assets/sounds/racing/car_drift_loop.mp3 +0 -0
  9. package/assets/sounds/racing/car_drift_loop.ogg +0 -0
  10. package/assets/sounds/racing/car_engine_loop.mp3 +0 -0
  11. package/assets/sounds/racing/car_engine_loop.ogg +0 -0
  12. package/assets/sounds/racing/car_engine_start.mp3 +0 -0
  13. package/assets/sounds/racing/car_engine_start.ogg +0 -0
  14. package/assets/sounds/racing/countdown_beep.mp3 +0 -0
  15. package/assets/sounds/racing/countdown_beep.ogg +0 -0
  16. package/assets/sounds/racing/countdown_go.mp3 +0 -0
  17. package/assets/sounds/racing/countdown_go.ogg +0 -0
  18. package/assets/sounds/racing/final_lap.mp3 +0 -0
  19. package/assets/sounds/racing/final_lap.ogg +0 -0
  20. package/assets/sounds/racing/finish_line.mp3 +0 -0
  21. package/assets/sounds/racing/finish_line.ogg +0 -0
  22. package/assets/sounds/racing/lap_complete.mp3 +0 -0
  23. package/assets/sounds/racing/lap_complete.ogg +0 -0
  24. package/assets/sounds/racing/music_circuit.mp3 +0 -0
  25. package/assets/sounds/racing/music_circuit.ogg +0 -0
  26. package/assets/sounds/racing/music_final_lap.mp3 +0 -0
  27. package/assets/sounds/racing/music_final_lap.ogg +0 -0
  28. package/assets/sounds/racing/race_defeat.mp3 +0 -0
  29. package/assets/sounds/racing/race_defeat.ogg +0 -0
  30. package/assets/sounds/racing/race_victory.mp3 +0 -0
  31. package/assets/sounds/racing/race_victory.ogg +0 -0
  32. package/assets/sounds/tanks/barrel_explode.mp3 +0 -0
  33. package/assets/sounds/tanks/barrel_explode.ogg +0 -0
  34. package/assets/sounds/tanks/crate_break.mp3 +0 -0
  35. package/assets/sounds/tanks/crate_break.ogg +0 -0
  36. package/assets/sounds/tanks/health_pickup.mp3 +0 -0
  37. package/assets/sounds/tanks/health_pickup.ogg +0 -0
  38. package/assets/sounds/tanks/last_life.mp3 +0 -0
  39. package/assets/sounds/tanks/last_life.ogg +0 -0
  40. package/assets/sounds/tanks/life_lost.mp3 +0 -0
  41. package/assets/sounds/tanks/life_lost.ogg +0 -0
  42. package/assets/sounds/tanks/respawn.mp3 +0 -0
  43. package/assets/sounds/tanks/respawn.ogg +0 -0
  44. package/assets/sounds/tanks/shield_end.mp3 +0 -0
  45. package/assets/sounds/tanks/shield_end.ogg +0 -0
  46. package/assets/sounds/tanks/shield_loop.mp3 +0 -0
  47. package/assets/sounds/tanks/shield_loop.ogg +0 -0
  48. package/assets/sounds/tanks/wall_hit.mp3 +0 -0
  49. package/assets/sounds/tanks/wall_hit.ogg +0 -0
  50. package/dist/chunks/{BattleshipGameCard-iRk8d4vR.js → BattleshipGameCard-B-B4r7lK.js} +146 -144
  51. package/dist/chunks/{BattleshipGameCard-iRk8d4vR.js.map → BattleshipGameCard-B-B4r7lK.js.map} +1 -1
  52. package/dist/chunks/{ChatContext-DjIEifGY.js → ChatContext-DQtKsR6Z.js} +2 -2
  53. package/dist/chunks/{ChatContext-DjIEifGY.js.map → ChatContext-DQtKsR6Z.js.map} +1 -1
  54. package/dist/chunks/RacingLiveGameCard-c1G7uoDI.js +1654 -0
  55. package/dist/chunks/RacingLiveGameCard-c1G7uoDI.js.map +1 -0
  56. package/dist/chunks/{TanksGameCard-GrqmdwJ7.js → TanksGameCard-CvTaF7tu.js} +164 -162
  57. package/dist/chunks/{TanksGameCard-GrqmdwJ7.js.map → TanksGameCard-CvTaF7tu.js.map} +1 -1
  58. package/dist/chunks/TanksLiveGameCard-COr9Oay5.js +1011 -0
  59. package/dist/chunks/TanksLiveGameCard-COr9Oay5.js.map +1 -0
  60. package/dist/chunks/avalancheScene3d-Z5QyZIid.js +1299 -0
  61. package/dist/chunks/avalancheScene3d-Z5QyZIid.js.map +1 -0
  62. package/dist/chunks/connect4Sounds-DmD-E9kX.js +235 -0
  63. package/dist/chunks/connect4Sounds-DmD-E9kX.js.map +1 -0
  64. package/dist/chunks/connectionStore-DwgIUl30.js +13 -0
  65. package/dist/chunks/connectionStore-DwgIUl30.js.map +1 -0
  66. package/dist/chunks/createLiveScene-CWBunxPi.js +367 -0
  67. package/dist/chunks/{createLiveScene-819NWv84.js.map → createLiveScene-CWBunxPi.js.map} +1 -1
  68. package/dist/chunks/createRaceScene-C7Rw89kj.js +305 -0
  69. package/dist/chunks/createRaceScene-C7Rw89kj.js.map +1 -0
  70. package/dist/chunks/{createTankScene-6asWHKFf.js → createTankScene-yhX6la27.js} +125 -123
  71. package/dist/chunks/{createTankScene-6asWHKFf.js.map → createTankScene-yhX6la27.js.map} +1 -1
  72. package/dist/chunks/decor-CyyCnmct.js +418 -0
  73. package/dist/chunks/decor-CyyCnmct.js.map +1 -0
  74. package/dist/chunks/fx-1ZwzmPWj.js +458 -0
  75. package/dist/chunks/fx-1ZwzmPWj.js.map +1 -0
  76. package/dist/chunks/fx-UZwhOmdl.js +584 -0
  77. package/dist/chunks/fx-UZwhOmdl.js.map +1 -0
  78. package/dist/chunks/gameStatus-BChd29yI.js +62 -0
  79. package/dist/chunks/gameStatus-BChd29yI.js.map +1 -0
  80. package/dist/chunks/{connect4Sounds-Cv0q31VW.js → games-BvYTWgaR.js} +814 -951
  81. package/dist/chunks/games-BvYTWgaR.js.map +1 -0
  82. package/dist/chunks/rolldown-runtime-CGnMp29N.js +10 -0
  83. package/dist/chunks/tank-DjEQ4FXF.js +553 -0
  84. package/dist/chunks/tank-DjEQ4FXF.js.map +1 -0
  85. package/dist/chunks/tanks-live-BcKmrhnV.js +261 -0
  86. package/dist/chunks/tanks-live-BcKmrhnV.js.map +1 -0
  87. package/dist/chunks/{tanksSounds-CUNDIOal.js → tanksSounds-DwjfSp3W.js} +43 -11
  88. package/dist/chunks/tanksSounds-DwjfSp3W.js.map +1 -0
  89. package/dist/chunks/track-BcnnpnAm.js +259 -0
  90. package/dist/chunks/track-BcnnpnAm.js.map +1 -0
  91. package/dist/chunks/util-DwI9bfS7.js +57 -0
  92. package/dist/chunks/util-DwI9bfS7.js.map +1 -0
  93. package/dist/index.js +812 -625
  94. package/dist/index.js.map +1 -1
  95. package/dist/styles.css +1 -1
  96. package/index.d.ts +3 -1
  97. package/package.json +1 -1
  98. package/dist/chunks/TanksLiveGameCard-DSmQcUMh.js +0 -1225
  99. package/dist/chunks/TanksLiveGameCard-DSmQcUMh.js.map +0 -1
  100. package/dist/chunks/avalancheScene3d-Dnl2E3EA.js +0 -1878
  101. package/dist/chunks/avalancheScene3d-Dnl2E3EA.js.map +0 -1
  102. package/dist/chunks/connect4Sounds-Cv0q31VW.js.map +0 -1
  103. package/dist/chunks/createLiveScene-819NWv84.js +0 -365
  104. package/dist/chunks/fx-BNJvJYOu.js +0 -871
  105. package/dist/chunks/fx-BNJvJYOu.js.map +0 -1
  106. package/dist/chunks/gameStatus-Cu1Z8un9.js +0 -69
  107. package/dist/chunks/gameStatus-Cu1Z8un9.js.map +0 -1
  108. package/dist/chunks/tank-DIn6Jyt8.js +0 -605
  109. package/dist/chunks/tank-DIn6Jyt8.js.map +0 -1
  110. package/dist/chunks/tanksSounds-CUNDIOal.js.map +0 -1
@@ -1,605 +0,0 @@
1
- import { t as e } from "./core-geo-UJY-tH9L.js";
2
- import { BufferAttribute as t, BufferGeometry as n, CanvasTexture as r, Color as i, DoubleSide as a, Group as o, LinearFilter as s, Matrix4 as c, Mesh as l, MeshBasicMaterial as u, MeshLambertMaterial as d, MeshStandardMaterial as f, Quaternion as p, RepeatWrapping as m, Vector3 as h } from "three";
3
- // src/games/tanks/scene/util.js
4
- var g = (e) => new i(e).convertSRGBToLinear(), _ = (e, t, n) => e < t ? t : e > n ? n : e, v = (e) => e < 0 ? 0 : e > 1 ? 1 : e, y = (e, t, n) => {
5
- let r = v((n - e) / (t - e));
6
- return r * r * (3 - 2 * r);
7
- }, b = Math.PI / 180, x = (e, t) => 1 - Math.exp(-e * t), S = (e) => {
8
- for (; e > Math.PI;) e -= Math.PI * 2;
9
- for (; e < -Math.PI;) e += Math.PI * 2;
10
- return e;
11
- }, C = (e, t) => {
12
- let n = Math.sin(e * 127.1 + t * 311.7) * 43758.5453;
13
- return n - Math.floor(n);
14
- };
15
- function w(e) {
16
- let t = e >>> 0 || 1;
17
- return () => (t ^= t << 13, t ^= t >>> 17, t ^= t << 5, (t >>> 0) / 4294967296);
18
- }
19
- function T(e, t) {
20
- let n = document.createElement("canvas");
21
- return n.width = e, n.height = t, n;
22
- }
23
- function E(e, t = !1) {
24
- let n = new r(e);
25
- return n.minFilter = s, n.magFilter = s, n.generateMipmaps = !1, t && (n.wrapS = m, n.wrapT = m), n;
26
- }
27
- function D(e = 64) {
28
- let t = T(e, e), n = t.getContext("2d"), r = e / 2, i = n.createRadialGradient(r, r, 0, r, r, r);
29
- return i.addColorStop(0, "rgba(255,255,255,1)"), i.addColorStop(.18, "rgba(255,255,255,0.85)"), i.addColorStop(.45, "rgba(255,255,255,0.32)"), i.addColorStop(1, "rgba(255,255,255,0)"), n.fillStyle = i, n.fillRect(0, 0, e, e), E(t);
30
- }
31
- function O(e = 64) {
32
- let t = T(e, e), n = t.getContext("2d"), r = e / 2, i = w(7);
33
- for (let t = 0; t < 7; t++) {
34
- let t = i() * Math.PI * 2, a = i() * r * .32, o = r + Math.cos(t) * a, s = r + Math.sin(t) * a, c = r * (.45 + i() * .25), l = n.createRadialGradient(o, s, 0, o, s, c);
35
- l.addColorStop(0, "rgba(255,255,255,0.55)"), l.addColorStop(.6, "rgba(255,255,255,0.25)"), l.addColorStop(1, "rgba(255,255,255,0)"), n.fillStyle = l, n.fillRect(0, 0, e, e);
36
- }
37
- return E(t);
38
- }
39
- function k(e = 128) {
40
- let t = T(e, e), n = t.getContext("2d"), r = e / 2, i = n.createRadialGradient(r, r, 0, r, r, r);
41
- return i.addColorStop(0, "rgba(255,255,255,0)"), i.addColorStop(.62, "rgba(255,255,255,0)"), i.addColorStop(.8, "rgba(255,255,255,0.55)"), i.addColorStop(.9, "rgba(255,255,255,1)"), i.addColorStop(1, "rgba(255,255,255,0)"), n.fillStyle = i, n.fillRect(0, 0, e, e), E(t);
42
- }
43
- function A(e = 64) {
44
- let t = T(e, e), n = t.getContext("2d"), r = e / 2, i = n.createRadialGradient(r, r, 0, r, r, r);
45
- return i.addColorStop(0, "rgba(0,0,0,0.6)"), i.addColorStop(.55, "rgba(0,0,0,0.38)"), i.addColorStop(1, "rgba(0,0,0,0)"), n.fillStyle = i, n.fillRect(0, 0, e, e), E(t);
46
- }
47
- function j() {
48
- let e = T(64, 32), t = e.getContext("2d");
49
- t.fillStyle = "#3b3b3e", t.fillRect(0, 0, 64, 32);
50
- for (let e = 0; e < 4; e++) {
51
- let n = e * 16;
52
- t.fillStyle = "#1b1b1d", t.fillRect(n, 0, 6, 32), t.fillStyle = "#5a5a5f", t.fillRect(n + 6, 0, 2, 32), t.fillStyle = "#2a2a2d", t.fillRect(n + 8, 13, 8, 6);
53
- }
54
- return t.fillStyle = "rgba(0,0,0,0.35)", t.fillRect(0, 0, 64, 3), t.fillRect(0, 29, 64, 3), E(e, !0);
55
- }
56
- // src/games/tanks/scene/tank.js
57
- var ee = 1.15, M = {
58
- green: {
59
- tint: g("#7fa35c"),
60
- accent: g("#22c55e"),
61
- hex: "#22c55e"
62
- },
63
- red: {
64
- tint: g("#b8584a"),
65
- accent: g("#ef4444"),
66
- hex: "#ef4444"
67
- }
68
- }, N = g("#e9e6dc"), P = g("#c9c4b6"), F = g("#6d6a64"), I = g("#2a2927"), L = g("#55565b"), R = g("#ffffff"), z = 1.35, B = .74, V = .36, H = [
69
- -2.1,
70
- -1.05,
71
- 0,
72
- 1.05,
73
- 2.1
74
- ], U = [
75
- 2.85,
76
- .62,
77
- .3
78
- ], W = [
79
- -2.85,
80
- .62,
81
- .3
82
- ], G = .9, te = new h(-.35, 1.6, 0), K = new h(1.55, .42, 0), ne = new h(4.7, 0, 0), q = (e, t, n, r, i = n) => [
83
- [e, -i],
84
- [e, i],
85
- [t - r, n],
86
- [t, n - r * 1.6],
87
- [t, -(n - r * 1.6)],
88
- [t - r, -n]
89
- ];
90
- function J(e, t, n, r = 0, i = null) {
91
- let a = 0, o = 0, s = 0;
92
- for (let e of t) for (let t of e.pts) a += e.x, o += t[0], s++;
93
- let c = [
94
- a / s,
95
- o / s,
96
- 0
97
- ];
98
- for (let a = 0; a < t.length - 1; a++) {
99
- let o = t[a], s = t[a + 1], l = o.pts.length;
100
- for (let t = 0; t < l; t++) {
101
- let a = (t + 1) % l, u = [
102
- o.x,
103
- o.pts[t][0],
104
- o.pts[t][1]
105
- ], d = [
106
- o.x,
107
- o.pts[a][0],
108
- o.pts[a][1]
109
- ], f = [
110
- s.x,
111
- s.pts[t][0],
112
- s.pts[t][1]
113
- ], p = [
114
- s.x,
115
- s.pts[a][0],
116
- s.pts[a][1]
117
- ], m = i && o.pts[t][0] === o.pts[a][0] && o.pts[t][0] > c[1];
118
- e.quad(u, d, p, f, c, m ? i : n, r);
119
- }
120
- }
121
- for (let i of [t[0], t[t.length - 1]]) {
122
- let t = [
123
- i.x,
124
- 0,
125
- 0
126
- ];
127
- for (let e of i.pts) t[1] += e[0] / i.pts.length;
128
- for (let a = 0; a < i.pts.length; a++) {
129
- let o = i.pts[a], s = i.pts[(a + 1) % i.pts.length];
130
- e.tri(t, [
131
- i.x,
132
- o[0],
133
- o[1]
134
- ], [
135
- i.x,
136
- s[0],
137
- s[1]
138
- ], c, n, r);
139
- }
140
- }
141
- }
142
- function Y(e, t, n, r, i, a, o, s = 0, c = 0, l = 0) {
143
- let u = [
144
- (t + n) / 2,
145
- s,
146
- c
147
- ];
148
- for (let d = 0; d < a; d++) {
149
- let f = d / a * Math.PI * 2 + Math.PI / a, p = (d + 1) / a * Math.PI * 2 + Math.PI / a, m = (e, t, n) => [
150
- e,
151
- s + Math.cos(n) * t,
152
- c + Math.sin(n) * t
153
- ];
154
- e.quad(m(t, r, f), m(t, r, p), m(n, i, p), m(n, i, f), u, o, l), e.tri([
155
- t,
156
- s,
157
- c
158
- ], m(t, r, f), m(t, r, p), [
159
- n,
160
- s,
161
- c
162
- ], o, l), e.tri([
163
- n,
164
- s,
165
- c
166
- ], m(n, i, f), m(n, i, p), [
167
- t,
168
- s,
169
- c
170
- ], o, l);
171
- }
172
- }
173
- function X(e, t, n, r, i, a, o = 0, s = 0) {
174
- let c = [
175
- o,
176
- s,
177
- (t + n) / 2
178
- ];
179
- for (let l = 0; l < i; l++) {
180
- let u = l / i * Math.PI * 2, d = (l + 1) / i * Math.PI * 2, f = (e, t) => [
181
- o + Math.cos(t) * r,
182
- s + Math.sin(t) * r,
183
- e
184
- ];
185
- e.quad(f(t, u), f(t, d), f(n, d), f(n, u), c, a), e.tri([
186
- o,
187
- s,
188
- t
189
- ], f(t, u), f(t, d), [
190
- o,
191
- s,
192
- n
193
- ], a), e.tri([
194
- o,
195
- s,
196
- n
197
- ], f(n, u), f(n, d), [
198
- o,
199
- s,
200
- t
201
- ], a);
202
- }
203
- }
204
- function Z() {
205
- let t = new e();
206
- J(t, [
207
- {
208
- x: -3,
209
- pts: [
210
- [.5, -.9],
211
- [.5, .9],
212
- [1, .98],
213
- [1, -.98]
214
- ]
215
- },
216
- {
217
- x: 2.55,
218
- pts: [
219
- [.45, -.9],
220
- [.45, .9],
221
- [1, .98],
222
- [1, -.98]
223
- ]
224
- },
225
- {
226
- x: 3.15,
227
- pts: [
228
- [.85, -.85],
229
- [.85, .85],
230
- [1, .95],
231
- [1, -.95]
232
- ]
233
- }
234
- ], F), J(t, [
235
- {
236
- x: -3.15,
237
- pts: q(.98, 1.48, 1.68, .1)
238
- },
239
- {
240
- x: -2.95,
241
- pts: q(.95, 1.6, 1.8, .14)
242
- },
243
- {
244
- x: 1.85,
245
- pts: q(.95, 1.6, 1.8, .14)
246
- },
247
- {
248
- x: 3.3,
249
- pts: q(.95, 1.1, 1.72, .06)
250
- }
251
- ], N, 0, P), t.box(-2.2, 1.62, 0, 1.1, .05, 1.7, I);
252
- for (let e = 0; e < 4; e++) t.box(-2.65 + e * .3, 1.66, 0, .12, .03, 1.6, F);
253
- t.box(-3.18, 1.22, .9, .12, .28, .5, I), t.box(-3.18, 1.22, -.9, .12, .28, .5, I);
254
- for (let e of [-1, 1]) J(t, [{
255
- x: -2.95,
256
- pts: [
257
- [.62, e * 1.82],
258
- [.98, e * 1.8],
259
- [.98, e * 1.88],
260
- [.62, e * 1.9]
261
- ]
262
- }, {
263
- x: 2.35,
264
- pts: [
265
- [.62, e * 1.82],
266
- [.98, e * 1.8],
267
- [.98, e * 1.88],
268
- [.62, e * 1.9]
269
- ]
270
- }], P), t.box(-1.3, 1.72, e * 1.4, 1.3, .24, .5, F), t.box(.7, 1.7, e * 1.45, .7, .2, .4, P), t.box(3.2, .92, e * 1.25, .25, .14, .22, I);
271
- return t.prism(1.35, 1.6, .55, .32, .32, .08, 6, F), t.box(1.8, 1.61, -.45, .35, .06, .5, I), t.build();
272
- }
273
- function Q() {
274
- let t = new e();
275
- for (let e of [-1, 1]) t.box(-.3, 1, e * 1.905, 5, .07, .03, R, 1), t.box(-.3, .66, e * 1.915, 5, .04, .03, R, 1), t.box(-3.19, 1.4, e * 1.3, .04, .12, .4, R, 1);
276
- return t.box(2.9, 1.24, 0, .6, .02, .22, R, 1), t.build();
277
- }
278
- function re() {
279
- let t = new e();
280
- for (let e of [-1, 1]) t.box(3.24, 1.16, e * 1.3, .12, .16, .26, R, 1);
281
- return t.build();
282
- }
283
- function ie() {
284
- let t = new e();
285
- J(t, [
286
- {
287
- x: -2.25,
288
- pts: q(.05, .62, 1, .1, .95)
289
- },
290
- {
291
- x: -1.55,
292
- pts: q(0, .8, 1.32, .14, 1.25)
293
- },
294
- {
295
- x: .85,
296
- pts: q(0, .8, 1.35, .14, 1.28)
297
- },
298
- {
299
- x: 1.75,
300
- pts: q(.05, .55, .85, .08, .95)
301
- }
302
- ], N, 0, P), t.prism(-.2, -.08, 0, 1.15, 1.15, .1, 10, I), t.prism(-.75, .8, .55, .4, .4, .22, 8, F, 0, .9), t.prism(-.75, 1.02, .55, .3, .3, .07, 8, P), t.box(-.2, .86, -.6, .6, .1, .45, F), t.box(.55, .92, -.75, .42, .26, .3, F), t.box(.77, .94, -.75, .02, .16, .22, I), t.box(-2.3, .45, 0, .32, .4, 1.7, I);
303
- for (let e of [-1, 1]) for (let n = 0; n < 3; n++) t.box(1 - n * .12, .58, e * (1.18 + n * .03), .22, .12, .12, F);
304
- return t.box(-1.85, 1.5, -.85, .04, 1.5, .04, I), t.build();
305
- }
306
- function ae() {
307
- let t = new e();
308
- for (let e of [-1, 1]) t.box(-.35, .42, e * 1.34, 2.3, .1, .03, R, 1);
309
- return t.box(-2.42, .45, 0, .03, .08, 1.6, R, 1), t.box(-1.85, 2.27, -.85, .08, .08, .08, R, 1), t.build();
310
- }
311
- function oe() {
312
- let t = new e();
313
- return J(t, [{
314
- x: -.05,
315
- pts: [
316
- [-.32, -.5],
317
- [-.32, .5],
318
- [.3, .5],
319
- [.3, -.5]
320
- ]
321
- }, {
322
- x: .55,
323
- pts: [
324
- [-.22, -.36],
325
- [-.22, .36],
326
- [.22, .36],
327
- [.22, -.36]
328
- ]
329
- }], F), Y(t, .5, 4.3, .15, .12, 10, P), Y(t, 1.9, 2.55, .21, .21, 10, F), Y(t, 4.25, 4.7, .19, .19, 8, L), t.box(4.47, 0, 0, .18, .3, .46, I), t.build();
330
- }
331
- function se() {
332
- let t = new e();
333
- X(t, -.31079999999999997, B * .42, V, 10, I), X(t, .30079999999999996, .35079999999999995, V * .66, 10, P), X(t, -.35079999999999995, -.30079999999999996, V * .66, 10, P);
334
- for (let e = 0; e < 3; e++) {
335
- let n = e / 3 * Math.PI, r = Math.cos(n), i = Math.sin(n), a = V * .55, o = .07;
336
- for (let e of [.37079999999999996, -.37079999999999996]) {
337
- let n = [
338
- 0,
339
- 0,
340
- e > 0 ? e - .1 : e + .1
341
- ];
342
- t.quad([
343
- -r * a - i * o,
344
- -i * a + r * o,
345
- e
346
- ], [
347
- r * a - i * o,
348
- i * a + r * o,
349
- e
350
- ], [
351
- r * a + i * o,
352
- i * a - r * o,
353
- e
354
- ], [
355
- -r * a + i * o,
356
- -i * a - r * o,
357
- e
358
- ], n, F);
359
- }
360
- }
361
- return X(t, -.3908, .3908, .08, 6, L), t.build();
362
- }
363
- function ce() {
364
- let e = [], r = (t, n, r, i, a, o) => {
365
- for (let s = 0; s <= o; s++) {
366
- let c = i + (a - i) * s / o;
367
- e.push([t + Math.cos(c) * r, n + Math.sin(c) * r]);
368
- }
369
- }, i = .38;
370
- e.push([-2.1, -0]), e.push([2.1, -0]), r(U[0], U[1], i, -2, Math.PI / 2, 6), r(W[0], W[1], i, Math.PI / 2, Math.PI + 2, 6), e.push(e[0]);
371
- let a = [0];
372
- for (let t = 1; t < e.length; t++) a.push(a[t - 1] + Math.hypot(e[t][0] - e[t - 1][0], e[t][1] - e[t - 1][1]));
373
- let o = [], s = [], c = [];
374
- for (let t of [-1, 1]) {
375
- let n = t * z - B / 2, r = t * z + B / 2;
376
- for (let t = 0; t < e.length - 1; t++) {
377
- let [i, l] = e[t], [u, d] = e[t + 1], f = d - l, p = -(u - i), m = Math.hypot(f, p) || 1;
378
- f /= m, p /= m;
379
- let h = a[t] / G, g = a[t + 1] / G, _ = [
380
- [
381
- i,
382
- l,
383
- n,
384
- h,
385
- 0
386
- ],
387
- [
388
- u,
389
- d,
390
- n,
391
- g,
392
- 0
393
- ],
394
- [
395
- u,
396
- d,
397
- r,
398
- g,
399
- 1
400
- ],
401
- [
402
- i,
403
- l,
404
- n,
405
- h,
406
- 0
407
- ],
408
- [
409
- u,
410
- d,
411
- r,
412
- g,
413
- 1
414
- ],
415
- [
416
- i,
417
- l,
418
- r,
419
- h,
420
- 1
421
- ]
422
- ];
423
- for (let e of _) o.push(e[0], e[1] + .02, e[2]), s.push(f, p, 0), c.push(e[3], e[4]);
424
- }
425
- }
426
- let l = new n();
427
- return l.setAttribute("position", new t(new Float32Array(o), 3)), l.setAttribute("normal", new t(new Float32Array(s), 3)), l.setAttribute("uv", new t(new Float32Array(c), 2)), l.computeBoundingSphere(), l;
428
- }
429
- var $ = (() => {
430
- let e = [];
431
- for (let t of [-1, 1]) {
432
- for (let n of H) e.push({
433
- x: n,
434
- y: V,
435
- z: t * z,
436
- r: V
437
- });
438
- e.push({
439
- x: U[0],
440
- y: U[1],
441
- z: t * z,
442
- r: U[2]
443
- }), e.push({
444
- x: W[0],
445
- y: W[1],
446
- z: t * z,
447
- r: W[2]
448
- });
449
- }
450
- return e;
451
- })();
452
- function le() {
453
- let e = {
454
- hull: Z(),
455
- hullAccent: Q(),
456
- lamps: re(),
457
- turret: ie(),
458
- turretAccent: ae(),
459
- gun: oe(),
460
- wheel: se(),
461
- track: ce()
462
- };
463
- return e.dispose = () => {
464
- for (let t of Object.keys(e)) e[t] && e[t].isBufferGeometry && e[t].dispose();
465
- }, e;
466
- }
467
- var ue = g("#3a3431"), de = g("#2a201b");
468
- function fe(e, t, { id: n, color: r = "green", quality: i = "high" }) {
469
- let s = M[r] || M.green, m = new o();
470
- m.scale.setScalar(ee);
471
- let _ = new o();
472
- m.add(_);
473
- let v = new o();
474
- v.position.copy(te);
475
- let y = new o();
476
- y.position.copy(K), v.add(y), _.add(v);
477
- let b = new u({ color: s.accent.clone() });
478
- b.color.multiplyScalar(1.35);
479
- let x = t.trackTex.clone();
480
- x.needsUpdate = !0;
481
- let S = null, C = null, w = new l(e.hull, null), T = new l(e.hullAccent, b), E = new l(e.lamps, t.lampMat), D = new l(e.track, null), O = new l(e.turret, null), k = new l(e.turretAccent, b), A = new l(e.gun, null);
482
- _.add(w, T, E, D), v.add(O, k), y.add(A);
483
- let j = [
484
- w,
485
- D,
486
- O,
487
- A
488
- ];
489
- function N(e) {
490
- S && S.dispose(), C && C.dispose(), e === "low" ? (S = new d({
491
- vertexColors: !0,
492
- color: s.tint.clone()
493
- }), C = new d({
494
- map: x,
495
- color: g("#9a9a9a"),
496
- side: a
497
- })) : (S = new f({
498
- vertexColors: !0,
499
- color: s.tint.clone(),
500
- roughness: .62,
501
- metalness: .18,
502
- flatShading: !0
503
- }), C = new f({
504
- map: x,
505
- color: g("#a0a0a0"),
506
- roughness: .85,
507
- metalness: .2,
508
- side: a
509
- })), w.material = S, O.material = S, A.material = S, D.material = C, P.charred && F();
510
- }
511
- let P = {
512
- id: n,
513
- color: r,
514
- alive: !0,
515
- charred: !1,
516
- hp: 100,
517
- maxHp: 100,
518
- x: 0,
519
- y: 0,
520
- z: 0,
521
- hullYaw: 0,
522
- yaw: 0,
523
- pitch: 10,
524
- targetYaw: null,
525
- targetPitch: null,
526
- recoil: 0,
527
- hitFlash: 0,
528
- trackDist: 0,
529
- wheelSpin: 0,
530
- smokeAcc: 0,
531
- blown: null
532
- };
533
- function F() {
534
- S.color.copy(ue), b.color.copy(de), E.visible = !1, C && C.color.copy(g("#3a3836"));
535
- }
536
- N(i);
537
- let I = new h(0, 1, 0), L = new h(), R = new p(), z = new p(), B = new p(), H = !1;
538
- function U(e, t = 0) {
539
- m.position.set(P.x, P.y, P.z), e.normalAt(P.x, P.z, L, 2.2), B.setFromUnitVectors(I, L), !H || t <= 0 ? (R.copy(B), H = !0) : R.slerp(B, 1 - Math.exp(-10 * t)), z.setFromAxisAngle(I, -P.hullYaw * Math.PI / 180), _.quaternion.copy(R).multiply(z), v.rotation.y = -(P.yaw - P.hullYaw) * Math.PI / 180, y.rotation.z = P.pitch * Math.PI / 180, y.position.x = K.x - P.recoil * .55;
540
- }
541
- function W(e) {
542
- P.charred !== e && (P.charred = e, e ? F() : (S.color.copy(s.tint), b.color.copy(s.accent).multiplyScalar(1.35), E.visible = !0, C.color.copy(g(i === "low" ? "#9a9a9a" : "#a0a0a0"))));
543
- }
544
- function q(e) {
545
- S.emissive.setRGB(1 * e, .45 * e, .2 * e);
546
- }
547
- function J(e) {
548
- for (let t of j) t.castShadow = e, t.receiveShadow = e;
549
- }
550
- let Y = new c(), X = new p(), Z = new h(), Q = new h(), re = new h(0, 0, 1);
551
- function ie(e, t) {
552
- _.updateWorldMatrix(!0, !1);
553
- for (let n = 0; n < $.length; n++) {
554
- let r = $[n];
555
- X.setFromAxisAngle(re, -P.trackDist / r.r), Q.setScalar(r.r / V), Z.set(r.x, r.y, r.z), Y.compose(Z, X, Q), Y.premultiply(_.matrixWorld), e.setMatrixAt(t + n, Y);
556
- }
557
- }
558
- return {
559
- id: n,
560
- team: s,
561
- root: m,
562
- body: _,
563
- turret: v,
564
- gun: y,
565
- turretMesh: O,
566
- turretAccent: k,
567
- state: P,
568
- trackTex: x,
569
- place: U,
570
- setCharred: W,
571
- setFlash: q,
572
- setShadows: J,
573
- writeWheels: ie,
574
- setQuality(e) {
575
- i = e, N(e);
576
- },
577
- scrollTracks(e) {
578
- P.trackDist += e, x.offset.x = -P.trackDist / G;
579
- },
580
- muzzleWorld(e) {
581
- return y.updateWorldMatrix(!0, !1), e.copy(ne).applyMatrix4(y.matrixWorld);
582
- },
583
- gunDirWorld(e) {
584
- return y.updateWorldMatrix(!0, !1), e.set(1, 0, 0).transformDirection(y.matrixWorld);
585
- },
586
- localToWorld(e, t, n, r) {
587
- return _.updateWorldMatrix(!0, !1), e.set(t, n, r).applyMatrix4(_.matrixWorld);
588
- },
589
- dispose() {
590
- S.dispose(), C.dispose(), b.dispose(), x.dispose(), m.removeFromParent();
591
- }
592
- };
593
- }
594
- function pe() {
595
- return {
596
- trackTex: j(),
597
- lampMat: new u({ color: g("#fff1c2").multiplyScalar(1.6) }),
598
- dispose() {
599
- this.trackTex.dispose(), this.lampMat.dispose();
600
- }
601
- };
602
- }
603
- export { w as _, fe as a, S as b, b as c, v as d, x as f, k as g, g as h, $ as i, A as l, C as m, M as n, le as o, D as p, te as r, pe as s, K as t, _ as u, O as v, y };
604
-
605
- //# sourceMappingURL=tank-DIn6Jyt8.js.map