brick-engine-js 1.0.2 → 1.0.4

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 (132) hide show
  1. package/dist/app.js +5028 -1
  2. package/dist/app.js.map +1 -1
  3. package/dist/bootstrap.d.ts +24 -0
  4. package/dist/brick-engine.js +4442 -1
  5. package/dist/brick-engine.js.map +1 -1
  6. package/dist/css/{app.743066d8e4172b0e73f9.css → app.bundle.css} +1 -1
  7. package/dist/css/app.bundle.css.map +1 -0
  8. package/dist/docs/GAME_DEVELOPER_GUIDE.html +1 -1
  9. package/dist/docs/brick-engine-guide.html +1 -1
  10. package/dist/docs/getting-started.html +1 -1
  11. package/dist/docs/jsdoc_standard.html +1 -1
  12. package/dist/docs/publishing.html +1 -1
  13. package/dist/docs/reference/interfaces/modules/Session.html +1 -1
  14. package/dist/docs/reference/modules/GameMenu.html +1 -1
  15. package/dist/docs/reference/modules/GameSession.html +1 -1
  16. package/dist/docs/reference/modules/InitialStateSnapshot.html +1 -1
  17. package/dist/docs/reference/modules/SessionModal.html +1 -1
  18. package/dist/docs/testing_best_practices.html +1 -1
  19. package/dist/index.html +15 -1
  20. package/dist/main.d.ts +1 -3
  21. package/dist/menu/GameMenuSingleton.d.ts +23 -0
  22. package/dist/vendor/p5.min.js +1 -1
  23. package/package.json +2 -1
  24. package/public/CNAME +1 -0
  25. package/public/docs/GAME_DEVELOPER_GUIDE.html +727 -0
  26. package/public/docs/brick-engine-guide.html +610 -0
  27. package/public/docs/diagrams/lifecycle.mmd +19 -0
  28. package/public/docs/documentation_style_guide.html +994 -0
  29. package/public/docs/getting-started.html +648 -0
  30. package/public/docs/images/lifecycle.svg +1 -0
  31. package/public/docs/index.html +593 -0
  32. package/public/docs/jsdoc_standard.html +656 -0
  33. package/public/docs/publishing.html +573 -0
  34. package/public/docs/reference/enums/Color.html +533 -0
  35. package/public/docs/reference/enums/ControlEventType.html +505 -0
  36. package/public/docs/reference/enums/ControlKey.html +529 -0
  37. package/public/docs/reference/enums/FontAlignment.html +545 -0
  38. package/public/docs/reference/enums/FontSize.html +517 -0
  39. package/public/docs/reference/enums/Sound.html +558 -0
  40. package/public/docs/reference/enums/StateProperty.html +525 -0
  41. package/public/docs/reference/helpers/CellHelper.html +520 -0
  42. package/public/docs/reference/helpers/ControlInputHandlerHelper.html +569 -0
  43. package/public/docs/reference/helpers/CoordinateHelper.html +703 -0
  44. package/public/docs/reference/helpers/RelativeValuesHelper.html +560 -0
  45. package/public/docs/reference/interfaces/Debuggable.html +501 -0
  46. package/public/docs/reference/interfaces/GameModules.html +544 -0
  47. package/public/docs/reference/interfaces/Initializable.html +495 -0
  48. package/public/docs/reference/interfaces/RendererInitializable.html +517 -0
  49. package/public/docs/reference/interfaces/StateSyncable.html +542 -0
  50. package/public/docs/reference/interfaces/modules/Control.html +648 -0
  51. package/public/docs/reference/interfaces/modules/Grid.html +1256 -0
  52. package/public/docs/reference/interfaces/modules/Renderer.html +522 -0
  53. package/public/docs/reference/interfaces/modules/RendererComposite.html +577 -0
  54. package/public/docs/reference/interfaces/modules/Score.html +669 -0
  55. package/public/docs/reference/interfaces/modules/Session.html +585 -0
  56. package/public/docs/reference/interfaces/modules/State.html +897 -0
  57. package/public/docs/reference/interfaces/modules/Text.html +668 -0
  58. package/public/docs/reference/interfaces/modules/Time.html +684 -0
  59. package/public/docs/reference/modules/Debugger.html +579 -0
  60. package/public/docs/reference/modules/DisplayRenderer.html +557 -0
  61. package/public/docs/reference/modules/Game.html +909 -0
  62. package/public/docs/reference/modules/GameControl.html +716 -0
  63. package/public/docs/reference/modules/GameGrid.html +1910 -0
  64. package/public/docs/reference/modules/GameHudGrid.html +508 -0
  65. package/public/docs/reference/modules/GameMenu.html +538 -0
  66. package/public/docs/reference/modules/GameRenderer.html +589 -0
  67. package/public/docs/reference/modules/GameScore.html +664 -0
  68. package/public/docs/reference/modules/GameSession.html +533 -0
  69. package/public/docs/reference/modules/GameSound.html +636 -0
  70. package/public/docs/reference/modules/GameState.html +922 -0
  71. package/public/docs/reference/modules/GameText.html +701 -0
  72. package/public/docs/reference/modules/GameTime.html +696 -0
  73. package/public/docs/reference/modules/HudRenderer.html +568 -0
  74. package/public/docs/reference/modules/InitialStateSnapshot.html +557 -0
  75. package/public/docs/reference/modules/SessionModal.html +520 -0
  76. package/public/docs/reference/types/Axis.html +505 -0
  77. package/public/docs/reference/types/Cell.html +514 -0
  78. package/public/docs/reference/types/ControlCallback.html +488 -0
  79. package/public/docs/reference/types/Coordinate.html +510 -0
  80. package/public/docs/reference/types/GameEntry.html +514 -0
  81. package/public/docs/reference/types/GameEvent.html +514 -0
  82. package/public/docs/reference/types/Piece.html +506 -0
  83. package/public/docs/reference/types/RendererMetrics.html +514 -0
  84. package/public/docs/reference/types/Vector.html +509 -0
  85. package/public/docs/testing_best_practices.html +770 -0
  86. package/public/favicon.ico +0 -0
  87. package/public/fonts/digital-7.monoitalic.ttf +0 -0
  88. package/public/images/cell.svg +32 -0
  89. package/public/images/close.png +0 -0
  90. package/public/images/games.png +0 -0
  91. package/public/images/github.png +0 -0
  92. package/public/images/letter-a.png +0 -0
  93. package/public/images/letter-d.png +0 -0
  94. package/public/images/letter-j.png +0 -0
  95. package/public/images/letter-s.png +0 -0
  96. package/public/images/letter-w.png +0 -0
  97. package/public/images/meta-image.png +0 -0
  98. package/public/images/number-1.png +0 -0
  99. package/public/images/number-2.png +0 -0
  100. package/public/images/number-3.png +0 -0
  101. package/public/images/number-4.png +0 -0
  102. package/public/images/number-5.png +0 -0
  103. package/public/images/number-6.png +0 -0
  104. package/public/images/splash.gif +0 -0
  105. package/public/index.html +15 -0
  106. package/public/sounds/sound_00.wav +0 -0
  107. package/public/sounds/sound_01.wav +0 -0
  108. package/public/sounds/sound_02.wav +0 -0
  109. package/public/sounds/sound_03.wav +0 -0
  110. package/public/sounds/sound_04.wav +0 -0
  111. package/public/sounds/sound_05.wav +0 -0
  112. package/public/sounds/sound_06.wav +0 -0
  113. package/public/sounds/sound_07.wav +0 -0
  114. package/public/sounds/sound_08.wav +0 -0
  115. package/public/sounds/sound_09.wav +0 -0
  116. package/public/sounds/sound_10.wav +0 -0
  117. package/public/sounds/sound_11.wav +0 -0
  118. package/public/sounds/sound_12.wav +0 -0
  119. package/public/sounds/sound_13.wav +0 -0
  120. package/public/sounds/sound_14.wav +0 -0
  121. package/public/sounds/sound_15.wav +0 -0
  122. package/public/style/body.css +86 -0
  123. package/public/style/buttons.css +233 -0
  124. package/public/style/debugger.css +117 -0
  125. package/public/style/sessionModal.css +155 -0
  126. package/public/style/sourceCodeAndCommands.css +74 -0
  127. package/public/style/splash.css +13 -0
  128. package/public/style/theme.css +137 -0
  129. package/dist/config/env.d.ts +0 -2
  130. package/dist/css/app.743066d8e4172b0e73f9.css.map +0 -1
  131. package/dist/main.test.d.ts +0 -1
  132. /package/dist/{config/env.test.d.ts → bootstrap.test.d.ts} +0 -0
Binary file
@@ -0,0 +1,32 @@
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
3
+ "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
4
+ <svg version="1.0" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 3 3">
5
+
6
+ <rect
7
+ x="0"
8
+ y="0"
9
+ width="3"
10
+ height="3"
11
+ fill="rgb(172, 189, 173)"
12
+ />
13
+
14
+ <rect
15
+ x="0.3"
16
+ y="0.3"
17
+ width="2.5"
18
+ height="2.5"
19
+ stroke="rgb(161, 178, 160)"
20
+ stroke-width=".2"
21
+ fill="none"
22
+ />
23
+
24
+ <rect
25
+ x=".8"
26
+ y=".8"
27
+ width="1.5"
28
+ height="1.5"
29
+ fill="rgb(161, 178, 160)"
30
+ />
31
+
32
+ </svg>
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,15 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <title>P5 Project</title>
6
+ <script src="vendor/p5.min.js"></script>
7
+ </head>
8
+ <body>
9
+ <div id="brick-game"></div>
10
+
11
+ <div id="splash">
12
+ <img src="images/splash.gif" />
13
+ </div>
14
+ </body>
15
+ </html>
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,86 @@
1
+ /* MAIN BODY */
2
+
3
+ #brick-game {
4
+ display: flex;
5
+ justify-content: center;
6
+ align-items: center;
7
+ width: 100%;
8
+ height: 100%;
9
+ }
10
+
11
+ #container {
12
+ width: var(--width);
13
+ height: var(--height);
14
+
15
+ background-color: var(--main-color);
16
+
17
+ border-radius: var(--border-radius);
18
+ border: var(--border);
19
+
20
+ box-sizing: border-box;
21
+ margin: auto;
22
+ position: relative;
23
+
24
+ display: flex;
25
+ flex-direction: column;
26
+
27
+ box-shadow:
28
+ calc(var(--width) * -0.03) calc(var(--width) * 0.03) var(--dispersion) black,
29
+ calc(var(--width) * -0.02) calc(var(--width) * 0.02) var(--dispersion) var(--color-shadow-reflexion) inset,
30
+ calc(var(--width) * 0.01) calc(var(--width) * -0.01) var(--dispersion) var(--color-shadow) inset;
31
+ }
32
+
33
+ #brick-game-canvas {
34
+ border: var(--border);
35
+ box-shadow:
36
+ calc(var(--width) * -0.01) calc(var(--width) * 0.01) var(--dispersion) var(--color-shadow),
37
+ calc(var(--width) * 0.01) calc(var(--width) * -0.01) var(--dispersion) var(--color-shadow-reflexion);
38
+ }
39
+
40
+ /* FRAME */
41
+
42
+ #frame {
43
+ border: var(--border);
44
+ border-radius: var(--border-radius);
45
+
46
+ position: relative;
47
+
48
+ width: calc(var(--width) * 0.85);
49
+ height: auto;
50
+ aspect-ratio: 9/10;
51
+ margin: 7.5%;
52
+ margin-bottom: 3.75%;
53
+
54
+ display: flex;
55
+ justify-content: center;
56
+ align-items: center;
57
+ }
58
+
59
+ #frame div {
60
+ position: absolute;
61
+ top: calc(var(--height) * -0.02);
62
+ left: 27.5%;
63
+
64
+ width: 45%;
65
+ height: calc(var(--height) * 0.03);
66
+
67
+ background-color: var(--main-color);
68
+
69
+ display: flex;
70
+ justify-content: center;
71
+
72
+ padding-top: calc(var(--height) * 0.005);
73
+ padding-bottom: 0;
74
+ }
75
+
76
+ #frame p {
77
+ text-align: center;
78
+
79
+ font-family: 'retro-gamming';
80
+ font-weight: bold;
81
+ font-size: calc(var(--height) * 0.03);
82
+
83
+ text-shadow:
84
+ calc(var(--width) * -0.003) calc(var(--width) * 0.003) 0 var(--color-shadow),
85
+ calc(var(--width) * 0.002) calc(var(--width) * -0.002) 0 var(--color-shadow-reflexion);
86
+ }
@@ -0,0 +1,233 @@
1
+ /* BUTTONS */
2
+
3
+ .sm-btn,
4
+ .btn,
5
+ .lg-btn {
6
+ z-index: 999;
7
+ }
8
+
9
+ .sm-btn {
10
+ box-shadow:
11
+ calc(var(--width) * -0.0075) calc(var(--width) * 0.0075) var(--dispersion) var(--color-shadow),
12
+ calc(var(--width) * -0.01) calc(var(--width) * 0.01) var(--dispersion) var(--button-color-reflexion) inset;
13
+ }
14
+
15
+ .sm-btn:active {
16
+ box-shadow:
17
+ calc(var(--width) * -0.004) calc(var(--width) * 0.004) var(--dispersion) var(--color-shadow),
18
+ calc(var(--width) * -0.003) calc(var(--width) * 0.003) var(--dispersion) var(--button-color-reflexion) inset;
19
+ transform: translateX(calc(var(--width) * -0.0025)) translateY(calc(var(--width) * 0.0025));
20
+ }
21
+
22
+ .btn {
23
+ box-shadow:
24
+ calc(var(--width) * -0.015) calc(var(--width) * 0.015) var(--dispersion) var(--color-shadow),
25
+ calc(var(--width) * -0.0175) calc(var(--width) * 0.0175) var(--dispersion) var(--button-color-reflexion) inset;
26
+ }
27
+
28
+ .btn:active {
29
+ box-shadow:
30
+ calc(var(--width) * -0.004) calc(var(--width) * 0.004) var(--dispersion) var(--color-shadow),
31
+ calc(var(--width) * -0.003) calc(var(--width) * 0.003) var(--dispersion) var(--button-color-reflexion) inset;
32
+ transform: translateX(calc(var(--width) * -0.005)) translateY(calc(var(--width) * 0.005));
33
+ }
34
+
35
+ .lg-btn {
36
+ box-shadow:
37
+ calc(var(--width) * -0.02) calc(var(--width) * 0.02) var(--dispersion) var(--color-shadow),
38
+ calc(var(--width) * -0.0175) calc(var(--width) * 0.0175) var(--dispersion) var(--button-color-reflexion) inset;
39
+ }
40
+
41
+ .lg-btn:active {
42
+ box-shadow:
43
+ calc(var(--width) * -0.005) calc(var(--width) * 0.005) var(--dispersion) var(--color-shadow),
44
+ calc(var(--width) * -0.004) calc(var(--width) * 0.004) var(--dispersion) var(--button-color-reflexion) inset;
45
+ transform: translateX(calc(var(--width) * -0.0075)) translateY(calc(var(--width) * 0.0075));
46
+ }
47
+
48
+ .sm-btn-p,
49
+ .btn-p,
50
+ .lg-btn-p {
51
+ font-family: 'retro-gamming';
52
+ color: white;
53
+ text-align: center;
54
+
55
+ user-select: none;
56
+ }
57
+
58
+ .sm-btn-container,
59
+ .btn-container,
60
+ .lg-btn-container {
61
+ display: flex;
62
+ justify-content: center;
63
+ align-items: center;
64
+ }
65
+
66
+ .sm-btn,
67
+ .btn,
68
+ .lg-btn {
69
+ outline: none;
70
+
71
+ border-radius: 50%;
72
+ border: var(--button-border);
73
+
74
+ transition-property: transform box-shadow;
75
+ transition-duration: var(--button-animation-duration);
76
+
77
+ background-color: var(--button-color);
78
+ }
79
+
80
+ .sm-btn-container {
81
+ flex-direction: column;
82
+ }
83
+
84
+ .sm-btn {
85
+ width: var(--sm-button-size);
86
+ height: var(--sm-button-size);
87
+ }
88
+
89
+ .sm-btn-p {
90
+ font-family: 'retro-gamming';
91
+ color: white;
92
+ text-align: center;
93
+
94
+ user-select: none;
95
+
96
+ font-size: calc(var(--width) * 0.03);
97
+
98
+ /* width: calc(var(--width) * 0.08); */
99
+ margin-top: calc(var(--width) * 0.01);
100
+
101
+ line-height: calc(var(--width) * 0.03);
102
+ height: calc(var(--width) * 0.06);
103
+
104
+ text-shadow:
105
+ calc(var(--width) * -0.003) calc(var(--width) * 0.003) 0 var(--color-shadow),
106
+ calc(var(--width) * 0.002) calc(var(--width) * -0.002) 0 var(--color-shadow-reflexion);
107
+ }
108
+
109
+ .btn-container {
110
+ flex-direction: column-reverse;
111
+ }
112
+
113
+ .btn {
114
+ width: var(--button-size);
115
+ height: var(--button-size);
116
+ }
117
+
118
+ .btn-p {
119
+ font-weight: bold;
120
+ font-size: calc(var(--width) * 0.04);
121
+ margin-bottom: calc(var(--width) * 0.015);
122
+ line-height: calc(var(--width) * 0.03);
123
+ }
124
+
125
+ .lg-btn-container {
126
+ flex-direction: column;
127
+ }
128
+
129
+ .lg-btn {
130
+ width: var(--lg-button-size);
131
+ height: var(--lg-button-size);
132
+ }
133
+
134
+ .lg-btn-p {
135
+ font-weight: bold;
136
+ font-size: calc(var(--width) * 0.05);
137
+ margin-bottom: calc(var(--width) * 0.015);
138
+ line-height: calc(var(--width) * 0.03);
139
+ }
140
+
141
+ .btn,
142
+ .lg-btn {
143
+ font-family: 'retro-gamming';
144
+ font-size: calc(var(--width) * 0.045);
145
+ font-weight: bold;
146
+ color: white;
147
+ text-shadow:
148
+ calc(var(--width) * -0.003) calc(var(--width) * 0.003) 0 var(--button-color-shadow),
149
+ calc(var(--width) * 0.002) calc(var(--width) * -0.002) 0 var(--button-color-reflexion);
150
+ }
151
+
152
+ /* BUTTON CONTAINERS */
153
+
154
+ #button-container,
155
+ #small-button-container,
156
+ #inner-button-container,
157
+ #medium-button-container,
158
+ #large-button-container {
159
+ width: 100%;
160
+ height: auto;
161
+ }
162
+
163
+ #button-container {
164
+ display: flex;
165
+ flex-grow: 1;
166
+ flex-direction: column;
167
+ }
168
+
169
+ #small-button-container {
170
+ display: flex;
171
+ flex-grow: 0.1;
172
+ justify-content: space-evenly;
173
+
174
+ max-height: 150px;
175
+
176
+ position: relative;
177
+ }
178
+
179
+ .sm-btn-container-top {
180
+ position: relative;
181
+ top: -20%;
182
+ }
183
+
184
+ .sm-btn-container-bottom {
185
+ position: relative;
186
+ bottom: -20%;
187
+ }
188
+
189
+ #inner-button-container {
190
+ display: flex;
191
+ flex-grow: 1;
192
+ flex-direction: row;
193
+ }
194
+
195
+ #medium-button-container {
196
+ display: flex;
197
+ flex-shrink: 1;
198
+
199
+ position: relative;
200
+ }
201
+
202
+ #large-button-container {
203
+ display: flex;
204
+ justify-content: center;
205
+ align-items: center;
206
+
207
+ flex-shrink: 1.5;
208
+ }
209
+
210
+ #direction-vertical-container,
211
+ #direction-horizontal-container {
212
+ width: 100%;
213
+ height: 100%;
214
+
215
+ display: flex;
216
+ justify-content: center;
217
+ align-items: center;
218
+ gap: calc(var(--width) * 0.115);
219
+
220
+ position: absolute;
221
+ top: 0;
222
+ bottom: 0;
223
+ left: 0;
224
+ right: 0;
225
+ }
226
+
227
+ #direction-vertical-container {
228
+ flex-direction: column;
229
+ }
230
+
231
+ #direction-horizontal-container {
232
+ flex-direction: row;
233
+ }
@@ -0,0 +1,117 @@
1
+ #debugger {
2
+ font-family: 'retro-gamming', monospace;
3
+ background-color: rgba(0, 0, 0, 0.9);
4
+ color: #0f0; /* Green phosphor */
5
+ border: 2px solid #0f0;
6
+ box-shadow: 0 0 10px #0f0;
7
+ padding: 10px;
8
+ position: absolute;
9
+ top: 10px;
10
+ right: 10px;
11
+ width: 300px;
12
+ max-height: calc(100vh - 40px);
13
+ overflow-y: auto;
14
+ user-select: none;
15
+ -webkit-user-select: none;
16
+ z-index: 9999;
17
+ font-size: 14px;
18
+ /* text-shadow: 0 0 2px #0f0; */
19
+ }
20
+
21
+ /* Custom Scrollbar */
22
+ #debugger::-webkit-scrollbar {
23
+ width: 8px;
24
+ }
25
+
26
+ #debugger::-webkit-scrollbar-track {
27
+ background: #001100;
28
+ }
29
+
30
+ #debugger::-webkit-scrollbar-thumb {
31
+ background: #0f0;
32
+ border-radius: 4px;
33
+ }
34
+
35
+ #debugger::-webkit-scrollbar-thumb:hover {
36
+ background: #0a0;
37
+ }
38
+
39
+ /* Summary / Header */
40
+ #debugger-summary {
41
+ font-weight: bold;
42
+ font-size: 16px;
43
+ cursor: pointer;
44
+ margin-bottom: 10px;
45
+ /* text-transform: uppercase; */
46
+ border-bottom: 1px dashed #0f0;
47
+ padding-bottom: 5px;
48
+ list-style: none;
49
+ }
50
+
51
+ /* Module Sections */
52
+ .debugger-module {
53
+ margin-bottom: 10px;
54
+ border-left: 1px solid #004400;
55
+ padding-left: 8px;
56
+ }
57
+
58
+ .debugger-module-summary {
59
+ cursor: pointer;
60
+ font-weight: bold;
61
+ color: #cfc;
62
+ margin-bottom: 4px;
63
+ }
64
+
65
+ .debugger-module-summary:hover {
66
+ color: #fff;
67
+ /* text-shadow: 0 0 4px #fff; */
68
+ }
69
+
70
+ /* Data Rows */
71
+ .debugger-container {
72
+ display: flex;
73
+ justify-content: space-between;
74
+ padding: 2px 0;
75
+ border-bottom: 1px dotted #003300;
76
+ }
77
+
78
+ /* Closed State */
79
+ #debugger:not([open]) {
80
+ width: auto;
81
+ height: auto;
82
+ max-height: none;
83
+ padding: 5px 10px;
84
+ border: 1px solid #0f0;
85
+ background-color: rgba(0, 0, 0, 0.5);
86
+ box-shadow: none;
87
+ }
88
+
89
+ #debugger:not([open]) #debugger-summary {
90
+ margin-bottom: 0;
91
+ border-bottom: none;
92
+ padding-bottom: 0;
93
+ }
94
+
95
+ .debugger-container:hover {
96
+ background-color: rgba(0, 255, 0, 0.05);
97
+ }
98
+
99
+ .debugger-container.highlight {
100
+ background-color: transparent;
101
+ color: #fff;
102
+ /* text-shadow: 0 0 5px #fff; */
103
+ border-bottom: 1px solid #fff;
104
+ }
105
+
106
+ .debugger-container.highlight span {
107
+ color: #fff;
108
+ }
109
+
110
+ .debugger-container p {
111
+ margin: 0;
112
+ opacity: 0.8;
113
+ }
114
+
115
+ .debugger-container span {
116
+ font-weight: bold;
117
+ }