Skip to content

Commit 85486a9

Browse files
committed
Added new method.
1 parent b486748 commit 85486a9

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

GodotPlugin/include/rhythm_game_utilities.cpp

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
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+
5682
float rhythm_game_utilities::convert_tick_to_position(int tick, int resolution)
5783
{
5884
return RhythmGameUtilities::ConvertTickToPosition(tick, resolution);

GodotPlugin/include/rhythm_game_utilities.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
#include <godot_cpp/classes/object.hpp>
44
#include <godot_cpp/core/class_db.hpp>
5+
#include <godot_cpp/variant/dictionary.hpp>
56
#include <godot_cpp/variant/string.hpp>
67

78
using namespace godot;
@@ -22,6 +23,9 @@ class rhythm_game_utilities : public Object
2223

2324
// Utilities
2425

26+
static int convert_seconds_to_ticks(float seconds, int resolution,
27+
Dictionary bpmChanges);
28+
2529
static float convert_tick_to_position(int tick, int resolution);
2630

2731
static bool is_on_the_beat(int bpm, float currentTime, float delta = 0.05f);

0 commit comments

Comments
 (0)