Add BPM to chart/difficulty select screen
This commit is contained in:
parent
fb3a1b606f
commit
c1188d2a72
|
@ -16,6 +16,7 @@ var selected_song: int = 0
|
||||||
var selected_song_vis: int = 0
|
var selected_song_vis: int = 0
|
||||||
var selected_song_delta: float = 0.0 # For floaty display scrolling
|
var selected_song_delta: float = 0.0 # For floaty display scrolling
|
||||||
var selected_song_speed: float = 0.0 # For floaty display scrolling
|
var selected_song_speed: float = 0.0 # For floaty display scrolling
|
||||||
|
var selected_song_key: String = ''
|
||||||
var selected_difficulty = ChartDifficulty.ADV
|
var selected_difficulty = ChartDifficulty.ADV
|
||||||
var menu_mode = MenuMode.SONG_SELECT
|
var menu_mode = MenuMode.SONG_SELECT
|
||||||
var menu_mode_prev = MenuMode.SONG_SELECT
|
var menu_mode_prev = MenuMode.SONG_SELECT
|
||||||
|
@ -171,29 +172,31 @@ func _draw_chart_select(center: Vector2) -> Array:
|
||||||
var size = 192
|
var size = 192
|
||||||
var spacer_x = 12
|
var spacer_x = 12
|
||||||
var touchrects = []
|
var touchrects = []
|
||||||
var songslist = genres[genres.keys()[selected_genre]]
|
|
||||||
var song_key = songslist[selected_song % len(songslist)]
|
|
||||||
var x = center.x - (size*2.5 + spacer_x*2)
|
var x = center.x - (size*2.5 + spacer_x*2)
|
||||||
for diff in 5:
|
for diff in 5:
|
||||||
var r = draw_songtile(song_key, Vector2(x, center.y), size, false, diff, (9 if diff == selected_difficulty else 3))
|
var r = draw_songtile(selected_song_key, Vector2(x, center.y), size, false, diff, (9 if diff == selected_difficulty else 3))
|
||||||
touchrects.append({rect=r, chart_idx=diff})
|
touchrects.append({rect=r, chart_idx=diff})
|
||||||
x += size + spacer_x
|
x += size + spacer_x
|
||||||
draw_string_centered(TitleFont, Vector2(center.x, center.y+size+64), Library.all_songs[song_key].title.n, Color(0.95, 0.95, 1.0))
|
draw_string_centered(TitleFont, Vector2(center.x, center.y+size+32), Library.all_songs[selected_song_key].title.n, Color(0.95, 0.95, 1.0))
|
||||||
touchrects.append({rect=Rect2(center.x-450.0, center.y+310.0, 900.0, 300.0), chart_idx=-1})
|
touchrects.append({rect=Rect2(center.x-450.0, center.y+310.0, 900.0, 300.0), chart_idx=-1})
|
||||||
|
|
||||||
|
|
||||||
# TODO: This is relatively expensive so we probably want to calculate this stuff once instead of every frame
|
# TODO: This is relatively expensive so we probably want to calculate this stuff once instead of every frame
|
||||||
var all_notes = Library.get_song_charts(song_key).values()[selected_difficulty]
|
var all_notes = Library.get_song_charts(selected_song_key).values()[selected_difficulty]
|
||||||
|
var song_data = Library.all_songs[selected_song_key]
|
||||||
var note_counts = {Note.NOTE_TAP: 0, Note.NOTE_HOLD: 0, Note.NOTE_STAR: 0}
|
var note_counts = {Note.NOTE_TAP: 0, Note.NOTE_HOLD: 0, Note.NOTE_STAR: 0}
|
||||||
for note in all_notes:
|
for note in all_notes:
|
||||||
if note.type in note_counts:
|
if note.type in note_counts:
|
||||||
note_counts[note.type] += 1
|
note_counts[note.type] += 1
|
||||||
|
|
||||||
|
draw_string_centered(TitleFont, Vector2(center.x-50, center.y+size+80), 'BPM:', Color(0.95, 0.95, 1.0))
|
||||||
|
draw_string_centered(TitleFont, Vector2(center.x+50, center.y+size+80), str(song_data.BPM), Color(0.95, 0.95, 1.0))
|
||||||
|
|
||||||
var notestrs = ['Taps:', 'Holds:', 'Slides:']
|
var notestrs = ['Taps:', 'Holds:', 'Slides:']
|
||||||
var notetypes = [0, 1, 2]
|
var notetypes = [0, 1, 2]
|
||||||
for i in len(notestrs):
|
for i in len(notestrs):
|
||||||
draw_string_centered(TitleFont, Vector2(center.x-50, center.y+size+128+i*50), notestrs[i], Color(0.95, 0.95, 1.0))
|
draw_string_centered(TitleFont, Vector2(center.x-50, center.y+size+148+i*50), notestrs[i], Color(0.95, 0.95, 1.0))
|
||||||
draw_string_centered(TitleFont, Vector2(center.x+50, center.y+size+128+i*50), str(note_counts[notetypes[i]]), Color(0.95, 0.95, 1.0))
|
draw_string_centered(TitleFont, Vector2(center.x+50, center.y+size+148+i*50), str(note_counts[notetypes[i]]), Color(0.95, 0.95, 1.0))
|
||||||
|
|
||||||
return touchrects
|
return touchrects
|
||||||
|
|
||||||
|
@ -375,6 +378,8 @@ func set_menu_mode(mode):
|
||||||
func touch_select_song(touchdict):
|
func touch_select_song(touchdict):
|
||||||
if (self.selected_genre == touchdict.genre_idx) and (self.selected_song == touchdict.song_idx):
|
if (self.selected_genre == touchdict.genre_idx) and (self.selected_song == touchdict.song_idx):
|
||||||
SFXPlayer.play(SFXPlayer.Type.NON_POSITIONAL, self, snd_interact, 0.0)
|
SFXPlayer.play(SFXPlayer.Type.NON_POSITIONAL, self, snd_interact, 0.0)
|
||||||
|
var songslist = genres[genres.keys()[selected_genre]]
|
||||||
|
selected_song_key = songslist[selected_song % len(songslist)]
|
||||||
set_menu_mode(MenuMode.CHART_SELECT)
|
set_menu_mode(MenuMode.CHART_SELECT)
|
||||||
else:
|
else:
|
||||||
self.selected_genre = touchdict.genre_idx
|
self.selected_genre = touchdict.genre_idx
|
||||||
|
@ -451,7 +456,7 @@ func _input(event):
|
||||||
elif event.is_action_pressed('ui_up'):
|
elif event.is_action_pressed('ui_up'):
|
||||||
selected_genre = int(max(0, selected_genre - 1))
|
selected_genre = int(max(0, selected_genre - 1))
|
||||||
elif event.is_action_pressed('ui_down'):
|
elif event.is_action_pressed('ui_down'):
|
||||||
selected_genre = int(min(5, selected_genre + 1))
|
selected_genre = int(min(len(genres)-1, selected_genre + 1))
|
||||||
elif event.is_action_pressed('ui_page_up'):
|
elif event.is_action_pressed('ui_page_up'):
|
||||||
selected_difficulty = int(max(0, selected_difficulty - 1))
|
selected_difficulty = int(max(0, selected_difficulty - 1))
|
||||||
elif event.is_action_pressed('ui_page_down'):
|
elif event.is_action_pressed('ui_page_down'):
|
||||||
|
|
Loading…
Reference in New Issue