11#include " rhythm_game_utilities.h"
22
3+ #include < godot_cpp/variant/dictionary.hpp>
4+
35#include < RhythmGameUtilities/Common.hpp>
46#include < RhythmGameUtilities/Utilities.hpp>
57
@@ -17,6 +19,12 @@ void rhythm_game_utilities::_bind_methods()
1719
1820 // Utilities
1921
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+
2028 ClassDB::bind_static_method (
2129 " rhythm_game_utilities" ,
2230 D_METHOD (" convert_tick_to_position" , " tick" , " resolution" ),
@@ -53,6 +61,24 @@ float rhythm_game_utilities::inverse_lerp(float a, float b, float v)
5361
5462// Utilities
5563
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+
5682float rhythm_game_utilities::convert_tick_to_position (int tick, int resolution)
5783{
5884 return RhythmGameUtilities::ConvertTickToPosition (tick, resolution);
0 commit comments