ball2d 0.1.1 → 0.2.0

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 (59) hide show
  1. package/LICENSE +42 -0
  2. package/README.md +184 -138
  3. package/dist/browser.js +1790 -1251
  4. package/dist/core.wasm +0 -0
  5. package/dist/node.js +104 -43358
  6. package/dist/stadiums/big.hbs +515 -85
  7. package/dist/stadiums/big_easy.hbs +515 -85
  8. package/dist/stadiums/big_hockey.hbs +612 -87
  9. package/dist/stadiums/big_rounded.hbs +611 -100
  10. package/dist/stadiums/classic.hbs +515 -85
  11. package/dist/stadiums/easy.hbs +515 -85
  12. package/dist/stadiums/hockey.hbs +612 -87
  13. package/dist/stadiums/huge.hbs +515 -85
  14. package/dist/stadiums/provenance.json +24 -22
  15. package/dist/stadiums/rounded.hbs +611 -100
  16. package/dist/stadiums/small.hbs +515 -85
  17. package/dist/types/announcement.d.ts +1 -0
  18. package/dist/types/browser.d.ts +10 -0
  19. package/dist/types/config.d.ts +9 -0
  20. package/dist/types/disc.d.ts +4 -0
  21. package/dist/types/{core/match-state.d.ts → match-state.d.ts} +2 -0
  22. package/dist/types/node.d.ts +15 -0
  23. package/dist/types/{core/host-types.d.ts → player.d.ts} +1 -1
  24. package/dist/types/{core/replay-types.d.ts → replay.d.ts} +3 -3
  25. package/dist/types/{sdk/types.d.ts → room.d.ts} +6 -4
  26. package/dist/types/stadium.d.ts +5 -0
  27. package/dist/types/team.d.ts +6 -0
  28. package/package.json +28 -6
  29. package/dist/types/client/announcement.d.ts +0 -10
  30. package/dist/types/client/connection-stats.d.ts +0 -11
  31. package/dist/types/client/headless.d.ts +0 -130
  32. package/dist/types/client/host-config.d.ts +0 -11
  33. package/dist/types/client/host-runtime.d.ts +0 -10
  34. package/dist/types/client/network-runtime.d.ts +0 -8
  35. package/dist/types/client/network.d.ts +0 -91
  36. package/dist/types/client/stadium-library.d.ts +0 -4
  37. package/dist/types/client/startup-scope.d.ts +0 -6
  38. package/dist/types/client/traffic.d.ts +0 -9
  39. package/dist/types/core/avatar.d.ts +0 -2
  40. package/dist/types/core/build-id.d.ts +0 -2
  41. package/dist/types/core/control.d.ts +0 -5
  42. package/dist/types/core/disc-properties.d.ts +0 -7
  43. package/dist/types/core/engine.d.ts +0 -68
  44. package/dist/types/core/protocol.d.ts +0 -24
  45. package/dist/types/core/replay-codec.d.ts +0 -6
  46. package/dist/types/core/replay-wire.d.ts +0 -5
  47. package/dist/types/core/replay.d.ts +0 -48
  48. package/dist/types/core/stadium.d.ts +0 -91
  49. package/dist/types/core/team-colors.d.ts +0 -8
  50. package/dist/types/sdk/browser.d.ts +0 -11
  51. package/dist/types/sdk/command-queue.d.ts +0 -11
  52. package/dist/types/sdk/config.d.ts +0 -6
  53. package/dist/types/sdk/node-transport.d.ts +0 -4
  54. package/dist/types/sdk/node.d.ts +0 -18
  55. package/dist/types/sdk/replay.d.ts +0 -4
  56. package/dist/types/sdk/room.d.ts +0 -7
  57. package/dist/types/sdk/stadium.d.ts +0 -9
  58. package/dist/types/shared/room-link.d.ts +0 -6
  59. /package/dist/types/{sdk/create-options.d.ts → creation.d.ts} +0 -0
@@ -1,85 +1,515 @@
1
- {
2
- "name" : "Classic",
3
-
4
- "width" : 420,
5
- "height" : 200,
6
-
7
- "spawnDistance" : 170,
8
-
9
- "bg" : { "type" : "grass", "width" : 370, "height" : 170, "kickOffRadius" : 75, "cornerRadius" : 0 },
10
-
11
- "vertexes" : [
12
- { "x" : -370, "y" : 170, "trait" : "ballArea" },
13
- { "x" : -370, "y" : 64, "trait" : "ballArea" },
14
- { "x" : -370, "y" : -64, "trait" : "ballArea" },
15
- { "x" : -370, "y" : -170, "trait" : "ballArea" },
16
-
17
- { "x" : 370, "y" : 170, "trait" : "ballArea" },
18
- { "x" : 370, "y" : 64, "trait" : "ballArea" },
19
- { "x" : 370, "y" : -64, "trait" : "ballArea" },
20
- { "x" : 370, "y" : -170, "trait" : "ballArea" },
21
-
22
- { "x" : 0, "y" : 200, "trait" : "kickOffBarrier" },
23
- { "x" : 0, "y" : 75, "trait" : "kickOffBarrier" },
24
- { "x" : 0, "y" : -75, "trait" : "kickOffBarrier" },
25
- { "x" : 0, "y" : -200, "trait" : "kickOffBarrier" },
26
-
27
- { "x" : -380, "y" : -64, "trait" : "goalNet" },
28
- { "x" : -400, "y" : -44, "trait" : "goalNet" },
29
- { "x" : -400, "y" : 44, "trait" : "goalNet" },
30
- { "x" : -380, "y" : 64, "trait" : "goalNet" },
31
-
32
- { "x" : 380, "y" : -64, "trait" : "goalNet" },
33
- { "x" : 400, "y" : -44, "trait" : "goalNet" },
34
- { "x" : 400, "y" : 44, "trait" : "goalNet" },
35
- { "x" : 380, "y" : 64, "trait" : "goalNet" }
36
- ],
37
-
38
- "segments" : [
39
- { "v0" : 0, "v1" : 1, "trait" : "ballArea" },
40
- { "v0" : 2, "v1" : 3, "trait" : "ballArea" },
41
- { "v0" : 4, "v1" : 5, "trait" : "ballArea" },
42
- { "v0" : 6, "v1" : 7, "trait" : "ballArea" },
43
-
44
- { "v0" : 12, "v1" : 13, "trait" : "goalNet", "curve" : -90 },
45
- { "v0" : 13, "v1" : 14, "trait" : "goalNet" },
46
- { "v0" : 14, "v1" : 15, "trait" : "goalNet", "curve" : -90 },
47
-
48
- { "v0" : 16, "v1" : 17, "trait" : "goalNet", "curve" : 90 },
49
- { "v0" : 17, "v1" : 18, "trait" : "goalNet" },
50
- { "v0" : 18, "v1" : 19, "trait" : "goalNet", "curve" : 90 },
51
-
52
- { "v0" : 8, "v1" : 9, "trait" : "kickOffBarrier" },
53
- { "v0" : 9, "v1" : 10, "trait" : "kickOffBarrier", "curve" : 180, "cGroup" : ["blueKO"] },
54
- { "v0" : 9, "v1" : 10, "trait" : "kickOffBarrier", "curve" : -180, "cGroup" : ["redKO"] },
55
- { "v0" : 10, "v1" : 11, "trait" : "kickOffBarrier" }
56
- ],
57
-
58
- "goals" : [
59
- { "p0" : [-370, 64], "p1" : [-370,-64], "team" : "red" },
60
- { "p0" : [370, 64], "p1" : [370,-64], "team" : "blue" }
61
- ],
62
-
63
- "discs" : [
64
- { "pos" : [-370, 64], "trait" : "goalPost", "color" : "FFCCCC" },
65
- { "pos" : [-370, -64], "trait" : "goalPost", "color" : "FFCCCC" },
66
- { "pos" : [ 370, 64], "trait" : "goalPost", "color" : "CCCCFF" },
67
- { "pos" : [ 370, -64], "trait" : "goalPost", "color" : "CCCCFF" }
68
- ],
69
-
70
- "planes" : [
71
- { "normal" : [0, 1], "dist" : -170, "trait" : "ballArea" },
72
- { "normal" : [0,-1], "dist" : -170, "trait" : "ballArea" },
73
- { "normal" : [ 0, 1], "dist" : -200, "bCoef" : 0.1 },
74
- { "normal" : [ 0,-1], "dist" : -200, "bCoef" : 0.1 },
75
- { "normal" : [ 1, 0], "dist" : -420, "bCoef" : 0.1 },
76
- { "normal" : [-1, 0], "dist" : -420, "bCoef" : 0.1 }
77
- ],
78
-
79
- "traits" : {
80
- "ballArea" : { "vis" : false, "bCoef" : 1, "cMask" : ["ball"] },
81
- "goalPost" : { "radius" : 8, "invMass" : 0, "bCoef" : 0.5 },
82
- "goalNet" : { "vis" : true, "bCoef" : 0.1, "cMask" : ["ball"] },
83
- "kickOffBarrier" : { "vis" : false, "bCoef" : 0.1, "cGroup" : ["redKO", "blueKO"], "cMask" : ["red", "blue"] }
84
- }
85
- }
1
+ {
2
+ "version": 1,
3
+ "physicsMode": "substeps",
4
+ "name": "Classic",
5
+ "width": 515,
6
+ "height": 285,
7
+ "spawnDistance": 176,
8
+ "bg": {
9
+ "type": "grass",
10
+ "width": 440,
11
+ "height": 220,
12
+ "kickOffRadius": 65,
13
+ "color": "285B35",
14
+ "cornerRadius": 0
15
+ },
16
+ "vertexes": [
17
+ {
18
+ "x": -440,
19
+ "y": -220,
20
+ "cMask": [
21
+ "ball"
22
+ ]
23
+ },
24
+ {
25
+ "x": 440,
26
+ "y": -220,
27
+ "cMask": [
28
+ "ball"
29
+ ]
30
+ },
31
+ {
32
+ "x": 440,
33
+ "y": -220,
34
+ "cMask": [
35
+ "ball"
36
+ ]
37
+ },
38
+ {
39
+ "x": 440,
40
+ "y": -70,
41
+ "cMask": [
42
+ "ball"
43
+ ]
44
+ },
45
+ {
46
+ "x": 440,
47
+ "y": 70,
48
+ "cMask": [
49
+ "ball"
50
+ ]
51
+ },
52
+ {
53
+ "x": 440,
54
+ "y": 220,
55
+ "cMask": [
56
+ "ball"
57
+ ]
58
+ },
59
+ {
60
+ "x": 440,
61
+ "y": 220,
62
+ "cMask": [
63
+ "ball"
64
+ ]
65
+ },
66
+ {
67
+ "x": -440,
68
+ "y": 220,
69
+ "cMask": [
70
+ "ball"
71
+ ]
72
+ },
73
+ {
74
+ "x": -440,
75
+ "y": 220,
76
+ "cMask": [
77
+ "ball"
78
+ ]
79
+ },
80
+ {
81
+ "x": -440,
82
+ "y": 70,
83
+ "cMask": [
84
+ "ball"
85
+ ]
86
+ },
87
+ {
88
+ "x": -440,
89
+ "y": -70,
90
+ "cMask": [
91
+ "ball"
92
+ ]
93
+ },
94
+ {
95
+ "x": -440,
96
+ "y": -220,
97
+ "cMask": [
98
+ "ball"
99
+ ]
100
+ },
101
+ {
102
+ "x": -440,
103
+ "y": -70,
104
+ "cMask": [
105
+ "ball"
106
+ ]
107
+ },
108
+ {
109
+ "x": -470,
110
+ "y": -70,
111
+ "cMask": [
112
+ "ball"
113
+ ]
114
+ },
115
+ {
116
+ "x": -470,
117
+ "y": -70,
118
+ "cMask": [
119
+ "ball"
120
+ ]
121
+ },
122
+ {
123
+ "x": -470,
124
+ "y": 70,
125
+ "cMask": [
126
+ "ball"
127
+ ]
128
+ },
129
+ {
130
+ "x": -470,
131
+ "y": 70,
132
+ "cMask": [
133
+ "ball"
134
+ ]
135
+ },
136
+ {
137
+ "x": -440,
138
+ "y": 70,
139
+ "cMask": [
140
+ "ball"
141
+ ]
142
+ },
143
+ {
144
+ "x": 440,
145
+ "y": -70,
146
+ "cMask": [
147
+ "ball"
148
+ ]
149
+ },
150
+ {
151
+ "x": 470,
152
+ "y": -70,
153
+ "cMask": [
154
+ "ball"
155
+ ]
156
+ },
157
+ {
158
+ "x": 470,
159
+ "y": -70,
160
+ "cMask": [
161
+ "ball"
162
+ ]
163
+ },
164
+ {
165
+ "x": 470,
166
+ "y": 70,
167
+ "cMask": [
168
+ "ball"
169
+ ]
170
+ },
171
+ {
172
+ "x": 470,
173
+ "y": 70,
174
+ "cMask": [
175
+ "ball"
176
+ ]
177
+ },
178
+ {
179
+ "x": 440,
180
+ "y": 70,
181
+ "cMask": [
182
+ "ball"
183
+ ]
184
+ },
185
+ {
186
+ "x": 0,
187
+ "y": -260,
188
+ "cGroup": [
189
+ "redKO",
190
+ "blueKO"
191
+ ],
192
+ "cMask": [
193
+ "red",
194
+ "blue"
195
+ ]
196
+ },
197
+ {
198
+ "x": 0,
199
+ "y": -65,
200
+ "cGroup": [
201
+ "redKO",
202
+ "blueKO"
203
+ ],
204
+ "cMask": [
205
+ "red",
206
+ "blue"
207
+ ]
208
+ },
209
+ {
210
+ "x": 0,
211
+ "y": 65,
212
+ "cGroup": [
213
+ "redKO",
214
+ "blueKO"
215
+ ],
216
+ "cMask": [
217
+ "red",
218
+ "blue"
219
+ ]
220
+ },
221
+ {
222
+ "x": 0,
223
+ "y": 260,
224
+ "cGroup": [
225
+ "redKO",
226
+ "blueKO"
227
+ ],
228
+ "cMask": [
229
+ "red",
230
+ "blue"
231
+ ]
232
+ }
233
+ ],
234
+ "segments": [
235
+ {
236
+ "v0": 0,
237
+ "v1": 1,
238
+ "curve": 0,
239
+ "cMask": [
240
+ "ball"
241
+ ],
242
+ "color": "72A99C",
243
+ "bCoef": 0.8
244
+ },
245
+ {
246
+ "v0": 2,
247
+ "v1": 3,
248
+ "curve": 0,
249
+ "cMask": [
250
+ "ball"
251
+ ],
252
+ "color": "72A99C",
253
+ "bCoef": 0.8
254
+ },
255
+ {
256
+ "v0": 4,
257
+ "v1": 5,
258
+ "curve": 0,
259
+ "cMask": [
260
+ "ball"
261
+ ],
262
+ "color": "72A99C",
263
+ "bCoef": 0.8
264
+ },
265
+ {
266
+ "v0": 6,
267
+ "v1": 7,
268
+ "curve": 0,
269
+ "cMask": [
270
+ "ball"
271
+ ],
272
+ "color": "72A99C",
273
+ "bCoef": 0.8
274
+ },
275
+ {
276
+ "v0": 8,
277
+ "v1": 9,
278
+ "curve": 0,
279
+ "cMask": [
280
+ "ball"
281
+ ],
282
+ "color": "72A99C",
283
+ "bCoef": 0.8
284
+ },
285
+ {
286
+ "v0": 10,
287
+ "v1": 11,
288
+ "curve": 0,
289
+ "cMask": [
290
+ "ball"
291
+ ],
292
+ "color": "72A99C",
293
+ "bCoef": 0.8
294
+ },
295
+ {
296
+ "v0": 12,
297
+ "v1": 13,
298
+ "curve": 0,
299
+ "cMask": [
300
+ "ball"
301
+ ],
302
+ "color": "3D7267",
303
+ "bCoef": 0.15
304
+ },
305
+ {
306
+ "v0": 14,
307
+ "v1": 15,
308
+ "curve": 0,
309
+ "cMask": [
310
+ "ball"
311
+ ],
312
+ "color": "3D7267",
313
+ "bCoef": 0.15
314
+ },
315
+ {
316
+ "v0": 16,
317
+ "v1": 17,
318
+ "curve": 0,
319
+ "cMask": [
320
+ "ball"
321
+ ],
322
+ "color": "3D7267",
323
+ "bCoef": 0.15
324
+ },
325
+ {
326
+ "v0": 18,
327
+ "v1": 19,
328
+ "curve": 0,
329
+ "cMask": [
330
+ "ball"
331
+ ],
332
+ "color": "3D7267",
333
+ "bCoef": 0.15
334
+ },
335
+ {
336
+ "v0": 20,
337
+ "v1": 21,
338
+ "curve": 0,
339
+ "cMask": [
340
+ "ball"
341
+ ],
342
+ "color": "3D7267",
343
+ "bCoef": 0.15
344
+ },
345
+ {
346
+ "v0": 22,
347
+ "v1": 23,
348
+ "curve": 0,
349
+ "cMask": [
350
+ "ball"
351
+ ],
352
+ "color": "3D7267",
353
+ "bCoef": 0.15
354
+ },
355
+ {
356
+ "v0": 24,
357
+ "v1": 25,
358
+ "vis": false,
359
+ "cGroup": [
360
+ "redKO",
361
+ "blueKO"
362
+ ],
363
+ "cMask": [
364
+ "red",
365
+ "blue"
366
+ ]
367
+ },
368
+ {
369
+ "v0": 26,
370
+ "v1": 27,
371
+ "vis": false,
372
+ "cGroup": [
373
+ "redKO",
374
+ "blueKO"
375
+ ],
376
+ "cMask": [
377
+ "red",
378
+ "blue"
379
+ ]
380
+ },
381
+ {
382
+ "v0": 26,
383
+ "v1": 25,
384
+ "curve": -180,
385
+ "vis": false,
386
+ "cGroup": [
387
+ "redKO"
388
+ ],
389
+ "cMask": [
390
+ "red",
391
+ "blue"
392
+ ]
393
+ },
394
+ {
395
+ "v0": 26,
396
+ "v1": 25,
397
+ "curve": 180,
398
+ "vis": false,
399
+ "cGroup": [
400
+ "blueKO"
401
+ ],
402
+ "cMask": [
403
+ "red",
404
+ "blue"
405
+ ]
406
+ }
407
+ ],
408
+ "planes": [
409
+ {
410
+ "normal": [
411
+ 0,
412
+ 1
413
+ ],
414
+ "dist": -260
415
+ },
416
+ {
417
+ "normal": [
418
+ 0,
419
+ -1
420
+ ],
421
+ "dist": -260
422
+ },
423
+ {
424
+ "normal": [
425
+ 1,
426
+ 0
427
+ ],
428
+ "dist": -490
429
+ },
430
+ {
431
+ "normal": [
432
+ -1,
433
+ 0
434
+ ],
435
+ "dist": -490
436
+ }
437
+ ],
438
+ "goals": [
439
+ {
440
+ "p0": [
441
+ -440,
442
+ -70
443
+ ],
444
+ "p1": [
445
+ -440,
446
+ 70
447
+ ],
448
+ "team": "red"
449
+ },
450
+ {
451
+ "p0": [
452
+ 440,
453
+ -70
454
+ ],
455
+ "p1": [
456
+ 440,
457
+ 70
458
+ ],
459
+ "team": "blue"
460
+ }
461
+ ],
462
+ "discs": [
463
+ {
464
+ "pos": [
465
+ -440,
466
+ -70
467
+ ],
468
+ "radius": 6,
469
+ "invMass": 0,
470
+ "color": "DAEEE4",
471
+ "bCoef": 0.5
472
+ },
473
+ {
474
+ "pos": [
475
+ -440,
476
+ 70
477
+ ],
478
+ "radius": 6,
479
+ "invMass": 0,
480
+ "color": "DAEEE4",
481
+ "bCoef": 0.5
482
+ },
483
+ {
484
+ "pos": [
485
+ 440,
486
+ -70
487
+ ],
488
+ "radius": 6,
489
+ "invMass": 0,
490
+ "color": "DAEEE4",
491
+ "bCoef": 0.5
492
+ },
493
+ {
494
+ "pos": [
495
+ 440,
496
+ 70
497
+ ],
498
+ "radius": 6,
499
+ "invMass": 0,
500
+ "color": "DAEEE4",
501
+ "bCoef": 0.5
502
+ }
503
+ ],
504
+ "ballPhysics": {
505
+ "radius": 9,
506
+ "damping": 0.991,
507
+ "bCoef": 0.6
508
+ },
509
+ "playerPhysics": {
510
+ "radius": 15,
511
+ "acceleration": 0.11,
512
+ "damping": 0.96,
513
+ "kickStrength": 5.5
514
+ }
515
+ }