Skip to content

Commit b486748

Browse files
committed
Added additional methods.
1 parent 3eec158 commit b486748

File tree

2 files changed

+69
-0
lines changed

2 files changed

+69
-0
lines changed

GodotPlugin/include/rhythm_game_utilities.cpp

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,46 @@
11
#include "rhythm_game_utilities.h"
22

33
#include <RhythmGameUtilities/Common.hpp>
4+
#include <RhythmGameUtilities/Utilities.hpp>
45

56
void rhythm_game_utilities::_bind_methods()
67
{
8+
// Common
9+
710
ClassDB::bind_static_method("rhythm_game_utilities",
811
D_METHOD("lerp", "a", "b", "t"),
912
&rhythm_game_utilities::lerp);
1013

1114
ClassDB::bind_static_method("rhythm_game_utilities",
1215
D_METHOD("inverse_lerp", "a", "b", "v"),
1316
&rhythm_game_utilities::inverse_lerp);
17+
18+
// Utilities
19+
20+
ClassDB::bind_static_method(
21+
"rhythm_game_utilities",
22+
D_METHOD("convert_tick_to_position", "tick", "resolution"),
23+
&rhythm_game_utilities::convert_tick_to_position);
24+
25+
ClassDB::bind_static_method(
26+
"rhythm_game_utilities",
27+
D_METHOD("is_on_the_beat", "bpm", "currentTime", "delta"),
28+
&rhythm_game_utilities::is_on_the_beat);
29+
30+
ClassDB::bind_static_method(
31+
"rhythm_game_utilities",
32+
D_METHOD("round_up_to_the_nearest_multiplier", "value", "multiplier"),
33+
&rhythm_game_utilities::round_up_to_the_nearest_multiplier);
34+
35+
ClassDB::bind_static_method(
36+
"rhythm_game_utilities",
37+
D_METHOD("calculate_accuracy_ratio", "position", "currentPosition",
38+
"delta"),
39+
&rhythm_game_utilities::calculate_accuracy_ratio);
1440
}
1541

42+
// Common
43+
1644
float rhythm_game_utilities::lerp(float a, float b, float t)
1745
{
1846
return RhythmGameUtilities::Lerp(a, b, t);
@@ -22,3 +50,31 @@ float rhythm_game_utilities::inverse_lerp(float a, float b, float v)
2250
{
2351
return RhythmGameUtilities::InverseLerp(a, b, v);
2452
}
53+
54+
// Utilities
55+
56+
float rhythm_game_utilities::convert_tick_to_position(int tick, int resolution)
57+
{
58+
return RhythmGameUtilities::ConvertTickToPosition(tick, resolution);
59+
}
60+
61+
bool rhythm_game_utilities::is_on_the_beat(int bpm, float currentTime,
62+
float delta)
63+
{
64+
return RhythmGameUtilities::IsOnTheBeat(bpm, currentTime, delta);
65+
}
66+
67+
int rhythm_game_utilities::round_up_to_the_nearest_multiplier(int value,
68+
int multiplier)
69+
{
70+
return RhythmGameUtilities::RoundUpToTheNearestMultiplier(value,
71+
multiplier);
72+
}
73+
74+
float rhythm_game_utilities::calculate_accuracy_ratio(int position,
75+
int currentPosition,
76+
int delta)
77+
{
78+
return RhythmGameUtilities::CalculateAccuracyRatio(position,
79+
currentPosition, delta);
80+
}

GodotPlugin/include/rhythm_game_utilities.h

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,20 @@ class rhythm_game_utilities : public Object
1414
static void _bind_methods();
1515

1616
public:
17+
// Common
18+
1719
static float lerp(float a, float b, float t);
1820

1921
static float inverse_lerp(float a, float b, float v);
22+
23+
// Utilities
24+
25+
static float convert_tick_to_position(int tick, int resolution);
26+
27+
static bool is_on_the_beat(int bpm, float currentTime, float delta = 0.05f);
28+
29+
static int round_up_to_the_nearest_multiplier(int value, int multiplier);
30+
31+
static float calculate_accuracy_ratio(int position, int currentPosition,
32+
int delta = 50);
2033
};

0 commit comments

Comments
 (0)