ball2d 0.0.2 → 0.1.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 (55) hide show
  1. package/README.md +145 -16
  2. package/dist/browser.js +4051 -0
  3. package/dist/core.wasm +0 -0
  4. package/dist/licenses/fflate.txt +21 -0
  5. package/dist/licenses/json5.txt +23 -0
  6. package/dist/licenses/native.json +236 -0
  7. package/dist/licenses/werift.txt +21 -0
  8. package/dist/node.js +43399 -0
  9. package/dist/stadiums/big.hbs +85 -0
  10. package/dist/stadiums/big_easy.hbs +85 -0
  11. package/dist/stadiums/big_hockey.hbs +87 -0
  12. package/dist/stadiums/big_rounded.hbs +100 -0
  13. package/dist/stadiums/classic.hbs +85 -0
  14. package/dist/stadiums/easy.hbs +85 -0
  15. package/dist/stadiums/hockey.hbs +87 -0
  16. package/dist/stadiums/huge.hbs +85 -0
  17. package/dist/stadiums/provenance.json +46 -0
  18. package/dist/stadiums/rounded.hbs +100 -0
  19. package/dist/stadiums/small.hbs +85 -0
  20. package/dist/types/client/announcement.d.ts +10 -0
  21. package/dist/types/client/connection-stats.d.ts +11 -0
  22. package/dist/types/client/headless.d.ts +130 -0
  23. package/dist/types/client/host-config.d.ts +11 -0
  24. package/dist/types/client/host-runtime.d.ts +10 -0
  25. package/dist/types/client/network-runtime.d.ts +8 -0
  26. package/dist/types/client/network.d.ts +91 -0
  27. package/dist/types/client/stadium-library.d.ts +4 -0
  28. package/dist/types/client/startup-scope.d.ts +6 -0
  29. package/dist/types/client/traffic.d.ts +9 -0
  30. package/dist/types/core/avatar.d.ts +2 -0
  31. package/dist/types/core/build-id.d.ts +2 -0
  32. package/dist/types/core/control.d.ts +5 -0
  33. package/dist/types/core/disc-properties.d.ts +7 -0
  34. package/dist/types/core/engine.d.ts +68 -0
  35. package/dist/types/core/host-types.d.ts +21 -0
  36. package/dist/types/core/match-state.d.ts +17 -0
  37. package/dist/types/core/protocol.d.ts +24 -0
  38. package/dist/types/core/replay-codec.d.ts +6 -0
  39. package/dist/types/core/replay-types.d.ts +41 -0
  40. package/dist/types/core/replay-wire.d.ts +5 -0
  41. package/dist/types/core/replay.d.ts +48 -0
  42. package/dist/types/core/stadium.d.ts +91 -0
  43. package/dist/types/core/team-colors.d.ts +8 -0
  44. package/dist/types/sdk/browser.d.ts +11 -0
  45. package/dist/types/sdk/command-queue.d.ts +11 -0
  46. package/dist/types/sdk/config.d.ts +6 -0
  47. package/dist/types/sdk/create-options.d.ts +4 -0
  48. package/dist/types/sdk/node-transport.d.ts +4 -0
  49. package/dist/types/sdk/node.d.ts +18 -0
  50. package/dist/types/sdk/replay.d.ts +4 -0
  51. package/dist/types/sdk/room.d.ts +7 -0
  52. package/dist/types/sdk/stadium.d.ts +9 -0
  53. package/dist/types/sdk/types.d.ts +78 -0
  54. package/dist/types/shared/room-link.d.ts +6 -0
  55. package/package.json +22 -16
@@ -0,0 +1,85 @@
1
+ {
2
+ "name" : "Big",
3
+
4
+ "width" : 600,
5
+ "height" : 270,
6
+
7
+ "spawnDistance" : 350,
8
+
9
+ "bg" : { "type" : "grass", "width" : 550, "height" : 240, "kickOffRadius" : 80, "cornerRadius" : 0 },
10
+
11
+ "vertexes" : [
12
+ { "x" : -550, "y" : 240, "trait" : "ballArea" },
13
+ { "x" : -550, "y" : 80, "trait" : "ballArea" },
14
+ { "x" : -550, "y" : -80, "trait" : "ballArea" },
15
+ { "x" : -550, "y" : -240, "trait" : "ballArea" },
16
+
17
+ { "x" : 550, "y" : 240, "trait" : "ballArea" },
18
+ { "x" : 550, "y" : 80, "trait" : "ballArea" },
19
+ { "x" : 550, "y" : -80, "trait" : "ballArea" },
20
+ { "x" : 550, "y" : -240, "trait" : "ballArea" },
21
+
22
+ { "x" : 0, "y" : 270, "trait" : "kickOffBarrier" },
23
+ { "x" : 0, "y" : 80, "trait" : "kickOffBarrier" },
24
+ { "x" : 0, "y" : -80, "trait" : "kickOffBarrier" },
25
+ { "x" : 0, "y" : -270, "trait" : "kickOffBarrier" },
26
+
27
+ { "x" : -560, "y" : -80, "trait" : "goalNet" },
28
+ { "x" : -580, "y" : -60, "trait" : "goalNet" },
29
+ { "x" : -580, "y" : 60, "trait" : "goalNet" },
30
+ { "x" : -560, "y" : 80, "trait" : "goalNet" },
31
+
32
+ { "x" : 560, "y" : -80, "trait" : "goalNet" },
33
+ { "x" : 580, "y" : -60, "trait" : "goalNet" },
34
+ { "x" : 580, "y" : 60, "trait" : "goalNet" },
35
+ { "x" : 560, "y" : 80, "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" : [-550, 80], "p1" : [-550,-80], "team" : "red" },
60
+ { "p0" : [550, 80], "p1" : [550,-80], "team" : "blue" }
61
+ ],
62
+
63
+ "discs" : [
64
+ { "pos" : [-550, 80], "trait" : "goalPost", "color" : "FFCCCC" },
65
+ { "pos" : [-550, -80], "trait" : "goalPost", "color" : "FFCCCC" },
66
+ { "pos" : [ 550, 80], "trait" : "goalPost", "color" : "CCCCFF" },
67
+ { "pos" : [ 550, -80], "trait" : "goalPost", "color" : "CCCCFF" }
68
+ ],
69
+
70
+ "planes" : [
71
+ { "normal" : [0, 1], "dist" : -240, "trait" : "ballArea" },
72
+ { "normal" : [0,-1], "dist" : -240, "trait" : "ballArea" },
73
+ { "normal" : [ 0, 1], "dist" : -270, "bCoef" : 0.1 },
74
+ { "normal" : [ 0,-1], "dist" : -270, "bCoef" : 0.1 },
75
+ { "normal" : [ 1, 0], "dist" : -600, "bCoef" : 0.1 },
76
+ { "normal" : [-1, 0], "dist" : -600, "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
+ }
@@ -0,0 +1,85 @@
1
+ {
2
+ "name" : "Big Easy",
3
+
4
+ "width" : 600,
5
+ "height" : 270,
6
+
7
+ "spawnDistance" : 350,
8
+
9
+ "bg" : { "type" : "grass", "width" : 550, "height" : 240, "kickOffRadius" : 80, "cornerRadius" : 0 },
10
+
11
+ "vertexes" : [
12
+ { "x" : -550, "y" : 240, "trait" : "ballArea" },
13
+ { "x" : -550, "y" : 95, "trait" : "ballArea" },
14
+ { "x" : -550, "y" : -95, "trait" : "ballArea" },
15
+ { "x" : -550, "y" : -240, "trait" : "ballArea" },
16
+
17
+ { "x" : 550, "y" : 240, "trait" : "ballArea" },
18
+ { "x" : 550, "y" : 95, "trait" : "ballArea" },
19
+ { "x" : 550, "y" : -95, "trait" : "ballArea" },
20
+ { "x" : 550, "y" : -240, "trait" : "ballArea" },
21
+
22
+ { "x" : 0, "y" : 270, "trait" : "kickOffBarrier" },
23
+ { "x" : 0, "y" : 80, "trait" : "kickOffBarrier" },
24
+ { "x" : 0, "y" : -80, "trait" : "kickOffBarrier" },
25
+ { "x" : 0, "y" : -270, "trait" : "kickOffBarrier" },
26
+
27
+ { "x" : -560, "y" : -95, "trait" : "goalNet" },
28
+ { "x" : -580, "y" : -75, "trait" : "goalNet" },
29
+ { "x" : -580, "y" : 75, "trait" : "goalNet" },
30
+ { "x" : -560, "y" : 95, "trait" : "goalNet" },
31
+
32
+ { "x" : 560, "y" : -95, "trait" : "goalNet" },
33
+ { "x" : 580, "y" : -75, "trait" : "goalNet" },
34
+ { "x" : 580, "y" : 75, "trait" : "goalNet" },
35
+ { "x" : 560, "y" : 95, "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" : [-550, 95], "p1" : [-550,-95], "team" : "red" },
60
+ { "p0" : [550, 95], "p1" : [550,-95], "team" : "blue" }
61
+ ],
62
+
63
+ "discs" : [
64
+ { "pos" : [-550, 95], "trait" : "goalPost", "color" : "FFCCCC" },
65
+ { "pos" : [-550, -95], "trait" : "goalPost", "color" : "FFCCCC" },
66
+ { "pos" : [ 550, 95], "trait" : "goalPost", "color" : "CCCCFF" },
67
+ { "pos" : [ 550, -95], "trait" : "goalPost", "color" : "CCCCFF" }
68
+ ],
69
+
70
+ "planes" : [
71
+ { "normal" : [0, 1], "dist" : -240, "trait" : "ballArea" },
72
+ { "normal" : [0,-1], "dist" : -240, "trait" : "ballArea" },
73
+ { "normal" : [ 0, 1], "dist" : -270, "bCoef" : 0.1 },
74
+ { "normal" : [ 0,-1], "dist" : -270, "bCoef" : 0.1 },
75
+ { "normal" : [ 1, 0], "dist" : -600, "bCoef" : 0.1 },
76
+ { "normal" : [-1, 0], "dist" : -600, "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
+ }
@@ -0,0 +1,87 @@
1
+ {
2
+ "name" : "Big Hockey",
3
+
4
+ "width" : 600,
5
+ "height" : 270,
6
+
7
+ "spawnDistance" : 280,
8
+
9
+ "bg" : { "type" : "hockey", "width" : 550, "height" : 240, "kickOffRadius" : 75, "cornerRadius" : 150, "goalLine" : 160 },
10
+
11
+ "vertexes" : [
12
+ { "x" : 0, "y" : 270, "trait" : "kickOffBarrier" },
13
+ { "x" : 0, "y" : 75, "trait" : "kickOffBarrier" },
14
+ { "x" : 0, "y" : -75, "trait" : "kickOffBarrier" },
15
+ { "x" : 0, "y" : -270, "trait" : "kickOffBarrier" },
16
+
17
+ { "x" : -400, "y" : -90, "trait" : "goalNet" },
18
+ { "x" : -420, "y" : -70, "trait" : "goalNet" },
19
+ { "x" : -420, "y" : 70, "trait" : "goalNet" },
20
+ { "x" : -400, "y" : 90, "trait" : "goalNet" },
21
+
22
+ { "x" : 400, "y" : -90, "trait" : "goalNet" },
23
+ { "x" : 420, "y" : -70, "trait" : "goalNet" },
24
+ { "x" : 420, "y" : 70, "trait" : "goalNet" },
25
+ { "x" : 400, "y" : 90, "trait" : "goalNet" },
26
+
27
+ { "x" : -400, "y" : -240, "trait" : "ballArea" },
28
+ { "x" : -550, "y" : -90, "trait" : "ballArea" },
29
+ { "x" : -550, "y" : 90, "trait" : "ballArea" },
30
+ { "x" : -400, "y" : 240, "trait" : "ballArea" },
31
+
32
+ { "x" : 400, "y" : -240, "trait" : "ballArea" },
33
+ { "x" : 550, "y" : -90, "trait" : "ballArea" },
34
+ { "x" : 550, "y" : 90, "trait" : "ballArea" },
35
+ { "x" : 400, "y" : 240, "trait" : "ballArea" }
36
+ ],
37
+
38
+ "segments" : [
39
+ { "v0" : 0, "v1" : 1, "trait" : "kickOffBarrier" },
40
+ { "v0" : 1, "v1" : 2, "trait" : "kickOffBarrier", "curve" : 180, "cGroup" : ["blueKO"] },
41
+ { "v0" : 1, "v1" : 2, "trait" : "kickOffBarrier", "curve" : -180, "cGroup" : ["redKO"] },
42
+ { "v0" : 2, "v1" : 3, "trait" : "kickOffBarrier" },
43
+
44
+ { "v0" : 4, "v1" : 5, "trait" : "goalNet", "curve" : -90 },
45
+ { "v0" : 5, "v1" : 6, "trait" : "goalNet" },
46
+ { "v0" : 6, "v1" : 7, "trait" : "goalNet", "curve" : -90 },
47
+
48
+ { "v0" : 8, "v1" : 9, "trait" : "goalNet", "curve" : 90 },
49
+ { "v0" : 9, "v1" : 10, "trait" : "goalNet" },
50
+ { "v0" : 10, "v1" : 11, "trait" : "goalNet", "curve" : 90 },
51
+
52
+ { "v0" : 12, "v1" : 13, "trait" : "ballArea", "curve" : -90 },
53
+ { "v0" : 14, "v1" : 15, "trait" : "ballArea", "curve" : -90 },
54
+ { "v0" : 16, "v1" : 17, "trait" : "ballArea", "curve" : 90 },
55
+ { "v0" : 18, "v1" : 19, "trait" : "ballArea", "curve" : 90 }
56
+ ],
57
+
58
+ "goals" : [
59
+ { "p0" : [-390, 90], "p1" : [-390,-90], "team" : "red" },
60
+ { "p0" : [390, 90], "p1" : [390,-90], "team" : "blue" }
61
+ ],
62
+
63
+ "discs" : [
64
+ { "pos" : [-390, 90], "trait" : "goalPost", "color" : "FFCCCC" },
65
+ { "pos" : [-390, -90], "trait" : "goalPost", "color" : "FFCCCC" },
66
+ { "pos" : [ 390, 90], "trait" : "goalPost", "color" : "CCCCFF" },
67
+ { "pos" : [ 390, -90], "trait" : "goalPost", "color" : "CCCCFF" }
68
+ ],
69
+
70
+ "planes" : [
71
+ { "normal" : [0, 1], "dist" : -240, "trait" : "ballArea" },
72
+ { "normal" : [0,-1], "dist" : -240, "trait" : "ballArea" },
73
+ { "normal" : [ 1,0], "dist" : -550, "trait" : "ballArea" },
74
+ { "normal" : [-1,0], "dist" : -550, "trait" : "ballArea" },
75
+ { "normal" : [ 0, 1], "dist" : -270, "bCoef" : 0.1 },
76
+ { "normal" : [ 0,-1], "dist" : -270, "bCoef" : 0.1 },
77
+ { "normal" : [ 1, 0], "dist" : -600, "bCoef" : 0.1 },
78
+ { "normal" : [-1, 0], "dist" : -600, "bCoef" : 0.1 }
79
+ ],
80
+
81
+ "traits" : {
82
+ "ballArea" : { "vis" : false, "bCoef" : 1, "cMask" : ["ball"] },
83
+ "goalPost" : { "radius" : 8, "invMass" : 0, "bCoef" : 0.5 },
84
+ "goalNet" : { "vis" : true, "bCoef" : 0.1, "cMask" : ["all"] },
85
+ "kickOffBarrier" : { "vis" : false, "bCoef" : 0.1, "cGroup" : ["redKO", "blueKO"], "cMask" : ["red", "blue"] }
86
+ }
87
+ }
@@ -0,0 +1,100 @@
1
+ {
2
+ "name" : "Big Rounded",
3
+
4
+ "width" : 600,
5
+ "height" : 270,
6
+
7
+ "spawnDistance" : 350,
8
+
9
+ "bg" : { "type" : "grass", "width" : 550, "height" : 240, "kickOffRadius" : 80, "cornerRadius" : 100 },
10
+
11
+ "vertexes" : [
12
+ { "x" : -550, "y" : 240, "trait" : "ballArea" },
13
+ { "x" : -550, "y" : 80, "trait" : "ballArea" },
14
+ { "x" : -550, "y" : -80, "trait" : "ballArea" },
15
+ { "x" : -550, "y" : -240, "trait" : "ballArea" },
16
+
17
+ { "x" : 550, "y" : 240, "trait" : "ballArea" },
18
+ { "x" : 550, "y" : 80, "trait" : "ballArea" },
19
+ { "x" : 550, "y" : -80, "trait" : "ballArea" },
20
+ { "x" : 550, "y" : -240, "trait" : "ballArea" },
21
+
22
+ { "x" : 0, "y" : 270, "trait" : "kickOffBarrier" },
23
+ { "x" : 0, "y" : 80, "trait" : "kickOffBarrier" },
24
+ { "x" : 0, "y" : -80, "trait" : "kickOffBarrier" },
25
+ { "x" : 0, "y" : -270, "trait" : "kickOffBarrier" },
26
+
27
+ { "x" : -560, "y" : -80, "trait" : "goalNet" },
28
+ { "x" : -580, "y" : -60, "trait" : "goalNet" },
29
+ { "x" : -580, "y" : 60, "trait" : "goalNet" },
30
+ { "x" : -560, "y" : 80, "trait" : "goalNet" },
31
+
32
+ { "x" : 560, "y" : -80, "trait" : "goalNet" },
33
+ { "x" : 580, "y" : -60, "trait" : "goalNet" },
34
+ { "x" : 580, "y" : 60, "trait" : "goalNet" },
35
+ { "x" : 560, "y" : 80, "trait" : "goalNet" },
36
+
37
+ { "x" : -450, "y" : -240, "trait" : "ballArea" },
38
+ { "x" : -550, "y" : -140, "trait" : "ballArea" },
39
+ { "x" : -550, "y" : 140, "trait" : "ballArea" },
40
+ { "x" : -450, "y" : 240, "trait" : "ballArea" },
41
+
42
+ { "x" : 450, "y" : -240, "trait" : "ballArea" },
43
+ { "x" : 550, "y" : -140, "trait" : "ballArea" },
44
+ { "x" : 550, "y" : 140, "trait" : "ballArea" },
45
+ { "x" : 450, "y" : 240, "trait" : "ballArea" }
46
+ ],
47
+
48
+ "segments" : [
49
+ { "v0" : 0, "v1" : 1, "trait" : "ballArea" },
50
+ { "v0" : 2, "v1" : 3, "trait" : "ballArea" },
51
+ { "v0" : 4, "v1" : 5, "trait" : "ballArea" },
52
+ { "v0" : 6, "v1" : 7, "trait" : "ballArea" },
53
+
54
+ { "v0" : 12, "v1" : 13, "trait" : "goalNet", "curve" : -90 },
55
+ { "v0" : 13, "v1" : 14, "trait" : "goalNet" },
56
+ { "v0" : 14, "v1" : 15, "trait" : "goalNet", "curve" : -90 },
57
+
58
+ { "v0" : 16, "v1" : 17, "trait" : "goalNet", "curve" : 90 },
59
+ { "v0" : 17, "v1" : 18, "trait" : "goalNet" },
60
+ { "v0" : 18, "v1" : 19, "trait" : "goalNet", "curve" : 90 },
61
+
62
+ { "v0" : 8, "v1" : 9, "trait" : "kickOffBarrier" },
63
+ { "v0" : 9, "v1" : 10, "trait" : "kickOffBarrier", "curve" : 180, "cGroup" : ["blueKO"] },
64
+ { "v0" : 9, "v1" : 10, "trait" : "kickOffBarrier", "curve" : -180, "cGroup" : ["redKO"] },
65
+ { "v0" : 10, "v1" : 11, "trait" : "kickOffBarrier" },
66
+
67
+ { "v0" : 20, "v1" : 21, "trait" : "ballArea", "curve" : -90 },
68
+ { "v0" : 22, "v1" : 23, "trait" : "ballArea", "curve" : -90 },
69
+ { "v0" : 24, "v1" : 25, "trait" : "ballArea", "curve" : 90 },
70
+ { "v0" : 26, "v1" : 27, "trait" : "ballArea", "curve" : 90 }
71
+ ],
72
+
73
+ "goals" : [
74
+ { "p0" : [-550, 80], "p1" : [-550,-80], "team" : "red" },
75
+ { "p0" : [550, 80], "p1" : [550,-80], "team" : "blue" }
76
+ ],
77
+
78
+ "discs" : [
79
+ { "pos" : [-550, 80], "trait" : "goalPost", "color" : "FFCCCC" },
80
+ { "pos" : [-550, -80], "trait" : "goalPost", "color" : "FFCCCC" },
81
+ { "pos" : [ 550, 80], "trait" : "goalPost", "color" : "CCCCFF" },
82
+ { "pos" : [ 550, -80], "trait" : "goalPost", "color" : "CCCCFF" }
83
+ ],
84
+
85
+ "planes" : [
86
+ { "normal" : [0, 1], "dist" : -240, "trait" : "ballArea" },
87
+ { "normal" : [0,-1], "dist" : -240, "trait" : "ballArea" },
88
+ { "normal" : [ 0, 1], "dist" : -270, "bCoef" : 0.1 },
89
+ { "normal" : [ 0,-1], "dist" : -270, "bCoef" : 0.1 },
90
+ { "normal" : [ 1, 0], "dist" : -600, "bCoef" : 0.1 },
91
+ { "normal" : [-1, 0], "dist" : -600, "bCoef" : 0.1 }
92
+ ],
93
+
94
+ "traits" : {
95
+ "ballArea" : { "vis" : false, "bCoef" : 1, "cMask" : ["ball"] },
96
+ "goalPost" : { "radius" : 8, "invMass" : 0, "bCoef" : 0.5 },
97
+ "goalNet" : { "vis" : true, "bCoef" : 0.1, "cMask" : ["ball"] },
98
+ "kickOffBarrier" : { "vis" : false, "bCoef" : 0.1, "cGroup" : ["redKO", "blueKO"], "cMask" : ["red", "blue"] }
99
+ }
100
+ }
@@ -0,0 +1,85 @@
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
+ }
@@ -0,0 +1,85 @@
1
+ {
2
+ "name" : "Easy",
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" : 90, "trait" : "ballArea" },
14
+ { "x" : -370, "y" : -90, "trait" : "ballArea" },
15
+ { "x" : -370, "y" : -170, "trait" : "ballArea" },
16
+
17
+ { "x" : 370, "y" : 170, "trait" : "ballArea" },
18
+ { "x" : 370, "y" : 90, "trait" : "ballArea" },
19
+ { "x" : 370, "y" : -90, "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" : -90, "trait" : "goalNet" },
28
+ { "x" : -400, "y" : -70, "trait" : "goalNet" },
29
+ { "x" : -400, "y" : 70, "trait" : "goalNet" },
30
+ { "x" : -380, "y" : 90, "trait" : "goalNet" },
31
+
32
+ { "x" : 380, "y" : -90, "trait" : "goalNet" },
33
+ { "x" : 400, "y" : -70, "trait" : "goalNet" },
34
+ { "x" : 400, "y" : 70, "trait" : "goalNet" },
35
+ { "x" : 380, "y" : 90, "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, 90], "p1" : [-370,-90], "team" : "red" },
60
+ { "p0" : [370, 90], "p1" : [370,-90], "team" : "blue" }
61
+ ],
62
+
63
+ "discs" : [
64
+ { "pos" : [-370, 90], "trait" : "goalPost", "color" : "FFCCCC" },
65
+ { "pos" : [-370, -90], "trait" : "goalPost", "color" : "FFCCCC" },
66
+ { "pos" : [ 370, 90], "trait" : "goalPost", "color" : "CCCCFF" },
67
+ { "pos" : [ 370, -90], "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
+ }
@@ -0,0 +1,87 @@
1
+ {
2
+ "name" : "Hockey",
3
+
4
+ "width" : 420,
5
+ "height" : 204,
6
+
7
+ "spawnDistance" : 180,
8
+
9
+ "bg" : { "type" : "hockey", "width" : 398, "height" : 182, "kickOffRadius" : 75, "cornerRadius" : 100, "goalLine" : 120 },
10
+
11
+ "vertexes" : [
12
+ { "x" : 0, "y" : 204, "trait" : "kickOffBarrier" },
13
+ { "x" : 0, "y" : 75, "trait" : "kickOffBarrier" },
14
+ { "x" : 0, "y" : -75, "trait" : "kickOffBarrier" },
15
+ { "x" : 0, "y" : -204, "trait" : "kickOffBarrier" },
16
+
17
+ { "x" : -288, "y" : -68, "trait" : "goalNet" },
18
+ { "x" : -308, "y" : -44, "trait" : "goalNet" },
19
+ { "x" : -308, "y" : 44, "trait" : "goalNet" },
20
+ { "x" : -288, "y" : 68, "trait" : "goalNet" },
21
+
22
+ { "x" : 288, "y" : -68, "trait" : "goalNet" },
23
+ { "x" : 308, "y" : -44, "trait" : "goalNet" },
24
+ { "x" : 308, "y" : 44, "trait" : "goalNet" },
25
+ { "x" : 288, "y" : 68, "trait" : "goalNet" },
26
+
27
+ { "x" : -295, "y" : -182, "trait" : "ballArea" },
28
+ { "x" : -398, "y" : -95, "trait" : "ballArea" },
29
+ { "x" : -398, "y" : 95, "trait" : "ballArea" },
30
+ { "x" : -295, "y" : 182, "trait" : "ballArea" },
31
+
32
+ { "x" : 295, "y" : -182, "trait" : "ballArea" },
33
+ { "x" : 398, "y" : -95, "trait" : "ballArea" },
34
+ { "x" : 398, "y" : 95, "trait" : "ballArea" },
35
+ { "x" : 295, "y" : 182, "trait" : "ballArea" }
36
+ ],
37
+
38
+ "segments" : [
39
+ { "v0" : 0, "v1" : 1, "trait" : "kickOffBarrier" },
40
+ { "v0" : 1, "v1" : 2, "trait" : "kickOffBarrier", "curve" : 180, "cGroup" : ["blueKO"] },
41
+ { "v0" : 1, "v1" : 2, "trait" : "kickOffBarrier", "curve" : -180, "cGroup" : ["redKO"] },
42
+ { "v0" : 2, "v1" : 3, "trait" : "kickOffBarrier" },
43
+
44
+ { "v0" : 4, "v1" : 5, "trait" : "goalNet", "curve" : -90 },
45
+ { "v0" : 5, "v1" : 6, "trait" : "goalNet" },
46
+ { "v0" : 6, "v1" : 7, "trait" : "goalNet", "curve" : -90 },
47
+
48
+ { "v0" : 8, "v1" : 9, "trait" : "goalNet", "curve" : 90 },
49
+ { "v0" : 9, "v1" : 10, "trait" : "goalNet" },
50
+ { "v0" : 10, "v1" : 11, "trait" : "goalNet", "curve" : 90 },
51
+
52
+ { "v0" : 12, "v1" : 13, "trait" : "ballArea", "curve" : -90 },
53
+ { "v0" : 14, "v1" : 15, "trait" : "ballArea", "curve" : -90 },
54
+ { "v0" : 16, "v1" : 17, "trait" : "ballArea", "curve" : 90 },
55
+ { "v0" : 18, "v1" : 19, "trait" : "ballArea", "curve" : 90 }
56
+ ],
57
+
58
+ "goals" : [
59
+ { "p0" : [-278, 68], "p1" : [-278,-68], "team" : "red" },
60
+ { "p0" : [278, 68], "p1" : [278,-68], "team" : "blue" }
61
+ ],
62
+
63
+ "discs" : [
64
+ { "pos" : [-278, 68], "trait" : "goalPost", "color" : "FFCCCC" },
65
+ { "pos" : [-278, -68], "trait" : "goalPost", "color" : "FFCCCC" },
66
+ { "pos" : [ 278, 68], "trait" : "goalPost", "color" : "CCCCFF" },
67
+ { "pos" : [ 278, -68], "trait" : "goalPost", "color" : "CCCCFF" }
68
+ ],
69
+
70
+ "planes" : [
71
+ { "normal" : [0, 1], "dist" : -182, "trait" : "ballArea" },
72
+ { "normal" : [0,-1], "dist" : -182, "trait" : "ballArea" },
73
+ { "normal" : [ 1,0], "dist" : -398, "trait" : "ballArea" },
74
+ { "normal" : [-1,0], "dist" : -398, "trait" : "ballArea" },
75
+ { "normal" : [ 0, 1], "dist" : -204, "bCoef" : 0.1 },
76
+ { "normal" : [ 0,-1], "dist" : -204, "bCoef" : 0.1 },
77
+ { "normal" : [ 1, 0], "dist" : -420, "bCoef" : 0.1 },
78
+ { "normal" : [-1, 0], "dist" : -420, "bCoef" : 0.1 }
79
+ ],
80
+
81
+ "traits" : {
82
+ "ballArea" : { "vis" : false, "bCoef" : 1, "cMask" : ["ball"] },
83
+ "goalPost" : { "radius" : 8, "invMass" : 0, "bCoef" : 0.5 },
84
+ "goalNet" : { "vis" : true, "bCoef" : 0.1, "cMask" : ["all"] },
85
+ "kickOffBarrier" : { "vis" : false, "bCoef" : 0.1, "cGroup" : ["redKO", "blueKO"], "cMask" : ["red", "blue"] }
86
+ }
87
+ }