1
1
#include " rhythm_game_utilities.h"
2
2
3
+ #include < godot_cpp/variant/dictionary.hpp>
4
+
3
5
#include < RhythmGameUtilities/Common.hpp>
4
6
#include < RhythmGameUtilities/Utilities.hpp>
5
7
@@ -17,6 +19,12 @@ void rhythm_game_utilities::_bind_methods()
17
19
18
20
// Utilities
19
21
22
+ ClassDB::bind_static_method (
23
+ " rhythm_game_utilities" ,
24
+ D_METHOD (" convert_seconds_to_ticks" , " seconds" , " resolution" ,
25
+ " bpmChanges" ),
26
+ &rhythm_game_utilities::convert_seconds_to_ticks);
27
+
20
28
ClassDB::bind_static_method (
21
29
" rhythm_game_utilities" ,
22
30
D_METHOD (" convert_tick_to_position" , " tick" , " resolution" ),
@@ -53,6 +61,24 @@ float rhythm_game_utilities::inverse_lerp(float a, float b, float v)
53
61
54
62
// Utilities
55
63
64
+ int rhythm_game_utilities::convert_seconds_to_ticks (float seconds,
65
+ int resolution,
66
+ Dictionary bpmChanges)
67
+ {
68
+ std::map<int , int > bpmChangesMap;
69
+
70
+ auto keys = bpmChanges.keys ();
71
+
72
+ for (auto i = 0 ; i < keys.size (); i += 1 )
73
+ {
74
+ auto key = keys[i];
75
+ bpmChangesMap[key] = bpmChanges[key];
76
+ }
77
+
78
+ return RhythmGameUtilities::ConvertSecondsToTicks (seconds, resolution,
79
+ bpmChangesMap);
80
+ }
81
+
56
82
float rhythm_game_utilities::convert_tick_to_position (int tick, int resolution)
57
83
{
58
84
return RhythmGameUtilities::ConvertTickToPosition (tick, resolution);
0 commit comments