@@ -101,17 +101,23 @@ _texture2D.Apply();
101
101
#### ` Common.Lerp `
102
102
103
103
``` csharp
104
+ using System ;
104
105
using RhythmGameUtilities ;
105
106
106
107
var value = Common .Lerp (0 , 10 , 0 . 5 f );
108
+
109
+ Console .WriteLine (value ); // 5
107
110
```
108
111
109
112
#### ` Common.InverseLerp `
110
113
111
114
``` csharp
115
+ using System ;
112
116
using RhythmGameUtilities ;
113
117
114
118
var value = Common .InverseLerp (0 , 10 , 5 );
119
+
120
+ Console .WriteLine (value ); // 0.5
115
121
```
116
122
117
123
### ` Parsers `
@@ -121,112 +127,192 @@ Read more about `.chart` files: <https://github.com/TheNathannator/GuitarGame_Ch
121
127
#### ` Parsers.ParseSectionsFromChart `
122
128
123
129
``` csharp
130
+ using System ;
124
131
using RhythmGameUtilities ;
125
132
126
133
var sections = Parsers .ParseSectionsFromChart (contents );
134
+
135
+ Console .WriteLine (sections .Count ); // 4
127
136
```
128
137
129
138
#### ` Parsers.ParseMetaDataFromChartSection `
130
139
131
140
``` csharp
141
+ using System ;
132
142
using RhythmGameUtilities ;
133
143
134
144
var sections = Parsers .ParseSectionsFromChart (contents );
135
145
136
146
var metaData = Parsers .ParseMetaDataFromChartSection (sections [NamedSection .Song ]);
147
+
148
+ Console .WriteLine (metaData [" Name" ]); // Example Song
149
+ Console .WriteLine (metaData [" Resolution" ]); // 192
150
+ Console .WriteLine (metaData [" MusicStream" ]); // Example Song.ogg
137
151
```
138
152
139
153
#### ` Parsers.ParseTimeSignaturesFromChartSection `
140
154
141
155
``` csharp
156
+ using System ;
142
157
using RhythmGameUtilities ;
143
158
144
159
var sections = Parsers .ParseSectionsFromChart (contents );
145
160
146
161
var timeSignatures = Parsers .ParseTimeSignaturesFromChartSection (sections [NamedSection .SyncTrack ]);
162
+
163
+ Console .WriteLine (timeSignatures .Count ); // 4
147
164
```
148
165
149
166
#### ` Parsers.ParseBpmFromChartSection `
150
167
151
168
``` csharp
169
+ using System ;
152
170
using RhythmGameUtilities ;
153
171
154
172
var sections = Parsers .ParseSectionsFromChart (contents );
155
173
156
174
var bpm = Parsers .ParseBpmFromChartSection (sections [NamedSection .SyncTrack ]);
175
+
176
+ Console .WriteLine (bpm .Count ); // 7
157
177
```
158
178
159
179
#### ` Parsers.ParseNotesFromChartSection `
160
180
161
181
``` csharp
182
+ using System ;
162
183
using RhythmGameUtilities ;
163
184
164
185
var sections = Parsers .ParseSectionsFromChart (contents );
165
186
166
187
var notes = Parsers .ParseNotesFromChartSection (sections [$" {Difficulty .Expert }Single" ]);
188
+
189
+ Console .WriteLine (notes .Count ); // 8
167
190
```
168
191
169
192
#### ` Parsers.ParseLyricsFromChartSection `
170
193
171
194
``` csharp
195
+ using System ;
172
196
using RhythmGameUtilities ;
173
197
174
198
var sections = Parsers .ParseSectionsFromChart (contents );
175
199
176
200
var lyrics = Parsers .ParseLyricsFromChartSection (sections [NamedSection .Events ]);
201
+
202
+ Console .WriteLine (notes .Count ); // 12
177
203
```
178
204
179
205
### Utilities
180
206
181
207
#### ` Utilities.ConvertTickToPosition `
182
208
183
209
``` csharp
210
+ using System ;
184
211
using RhythmGameUtilities ;
185
212
186
213
const int tick = 2784 ;
187
214
const int resolution = 192 ;
188
215
189
216
var position = Utilities .ConvertTickToPosition (tick , resolution );
217
+
218
+ Console .WriteLine (position ); // 14.5
190
219
```
191
220
192
221
#### ` Utilities.ConvertSecondsToTicks `
193
222
194
223
``` csharp
224
+ using System ;
195
225
using RhythmGameUtilities ;
196
226
197
- const int seconds = 2784 ;
227
+ const int seconds = 5 ;
198
228
const int resolution = 192 ;
199
- const bpmChanges = new Dictionary <int , int >();
229
+
230
+ var bpmChanges = new Dictionary <int , int >
231
+ {
232
+ { 0 , 88000 },
233
+ { 3840 , 112000 },
234
+ { 9984 , 89600 },
235
+ { 22272 , 112000 },
236
+ { 33792 , 111500 },
237
+ { 34560 , 112000 },
238
+ { 42240 , 111980 }
239
+ };
200
240
201
241
var ticks = Utilities .ConvertSecondsToTicks (seconds , resolution , bpmChanges );
242
+
243
+ Console .WriteLine (ticks ); // 1408
202
244
```
203
245
204
246
#### ` Utilities.IsOnTheBeat `
205
247
206
248
``` csharp
249
+ using System ;
207
250
using RhythmGameUtilities ;
208
251
209
252
const int bpm = 120 ;
210
253
const int currentTime = 10 ;
211
254
212
255
if (Utilities .IsOnTheBeat (bpm , currentTime ))
213
256
{
214
-
257
+ Console . WriteLine ( " On the beat! " );
215
258
}
216
259
```
217
260
218
261
#### ` Utilities.RoundUpToTheNearestMultiplier `
219
262
220
263
``` csharp
264
+ using System ;
221
265
using RhythmGameUtilities ;
222
266
223
267
var value = Utilities .RoundUpToTheNearestMultiplier (12 , 10 );
268
+
269
+ Console .WriteLine (value ); // 20
224
270
```
225
271
226
272
#### ` Utilities.CalculateAccuracyRatio `
227
273
274
+ ``` csharp
275
+ using System ;
276
+ using RhythmGameUtilities ;
277
+
278
+ const int seconds = 2 ;
279
+ const int resolution = 192 ;
280
+
281
+ var bpmChanges = new Dictionary <int , int > {
282
+ { 0 , 120000 }
283
+ };
284
+
285
+ var note = new Note { Position = 750 };
286
+ var currentPosition = Utilities .ConvertSecondsToTicks (seconds , resolution , bpmChanges );
287
+ const int delta = 50 ;
288
+
289
+ var value = Utilities .CalculateAccuracyRatio (note .Position , currentPosition , delta );
290
+
291
+ Console .WriteLine (value ); // 0.64
292
+ ```
293
+
228
294
#### ` Utilities.CalculateBeatBarsInternal `
229
295
296
+ ``` csharp
297
+ const int resolution = 192 ;
298
+ const int timeSignature = 4 ;
299
+
300
+ var bpmChanges = new Dictionary <int , int >
301
+ {
302
+ { 0 , 88000 },
303
+ { 3840 , 112000 },
304
+ { 9984 , 89600 },
305
+ { 22272 , 112000 },
306
+ { 33792 , 111500 },
307
+ { 34560 , 112000 },
308
+ { 42240 , 111980 }
309
+ };
310
+
311
+ var beatBars = Utilities .CalculateBeatBars (bpmChanges , resolution , timeSignature , true );
312
+
313
+ Assert .That (beatBars .Count , Is .EqualTo (440 ));
314
+ ```
315
+
230
316
## Architecture
231
317
232
318
``` mermaid
0 commit comments