From 8ffc12f82a40c76efe667df9a8a73902c334d564 Mon Sep 17 00:00:00 2001 From: FajsiEx Date: Sat, 31 Jul 2021 20:36:05 +0200 Subject: [PATCH] + some data to songwheel --- scripts/songselect/songwheel.lua | 65 +++++++++++++++++- .../{data_bg.png => data_bg_overlay.png} | Bin 2 files changed, 64 insertions(+), 1 deletion(-) rename textures/song_select/{data_bg.png => data_bg_overlay.png} (100%) diff --git a/scripts/songselect/songwheel.lua b/scripts/songselect/songwheel.lua index e228ac7..322daa5 100644 --- a/scripts/songselect/songwheel.lua +++ b/scripts/songselect/songwheel.lua @@ -2,6 +2,7 @@ local Easing = require('common.easings'); local backgroundImage = gfx.CreateSkinImage("song_select/bg.png", 1) +local dataBackgroundOverlayImage = gfx.CreateSkinImage("song_select/data_bg_overlay.png", 1) local songPlateBg = gfx.CreateSkinImage("song_select/plate/bg.png", 1) local songPlateBottomBarOverlayImage = gfx.CreateSkinImage("song_select/plate/bottom_bar_overlay.png", 1) @@ -59,6 +60,7 @@ local gradeImages = { game.LoadSkinSample('song_wheel/cursor_change.wav'); local difficultyNumbers; +local scoreNumbers; local resx, resy = game.GetResolution() local desw, desh; @@ -130,7 +132,7 @@ end; function getJacketImage(song) if not jacketCache[song.id] or jacketCache[song.id]==defaultJacketImage then - jacketCache[song.id] = gfx.LoadImageJob(song.difficulties[1].jacketPath, defaultJacketImage, 165, 165); + jacketCache[song.id] = gfx.LoadImageJob(song.difficulties[1].jacketPath, defaultJacketImage, 400, 400); end return jacketCache[song.id]; @@ -154,9 +156,20 @@ end function drawBackground() gfx.BeginPath() gfx.ImageRect(0, 0, desw, desh, backgroundImage, 1, 0) + + -- If the score for song exists + local song = songwheel.songs[selectedIndex]; + local diff = song.difficulties[selectedDifficulty]; + local bestScore = diff.scores[1]; + if song and diff and bestScore then + gfx.BeginPath() + gfx.ImageRect(0, 0, desw, desh, dataBackgroundOverlayImage, 1, 0) + end end function drawSong(song, y) + if (not song) then return end; + local songX = desw/2+28 local selectedSongDifficulty = song.difficulties[selectedDifficulty] @@ -241,6 +254,53 @@ function drawCursor() gfx.ImageRect(desw/2-14, desh/2-213/2, 555, 213, cursorImage, 1, 0) end +local scoreNumbers = load_number_image("score_num"); +function drawData() -- Draws the song data on the left panel + local song = songwheel.songs[selectedIndex]; + local diff = song.difficulties[selectedDifficulty]; + local bestScore = diff.scores[1]; + + local jacketImage = getJacketImage(song); + gfx.BeginPath() + gfx.ImageRect(96, 324, 348, 348, jacketImage or defaultJacketImage, 1, 0) + + if bestScore then + -- Draw best score + gfx.BeginPath() + draw_number(100, 793, 1.0, math.floor(bestScore.score / 10000), 4, scoreNumbers, true, 0.3, 1.12) + draw_number(245, 797, 1.0, bestScore.score, 4, scoreNumbers, true, 0.22, 1.12) + + -- Draw grade + local gradeImage = gradeImages.none; + if bestScore then + gradeImage = getGradeImageForScore(bestScore.score) + end + + gfx.BeginPath(); + gfx.ImageRect(360, 773, 45, 45, gradeImage, 1, 0); + + -- Draw badge + badgeImage = badgeImages[bestScore.badge+1]; + gfx.BeginPath() + gfx.ImageRect(425, 724, 93/1.1, 81/1.1, badgeImage, 1, 0) + end + + -- Draw BPM + gfx.FontSize(24) + gfx.TextAlign(gfx.TEXT_ALIGN_LEFT + gfx.TEXT_ALIGN_MIDDLE) + gfx.Save() + gfx.LoadSkinFont('Digital-Serial-Bold.ttf') + gfx.Text(song.bpm, 85, 920); + gfx.Restore() + + -- Draw song title + gfx.FontSize(28) + gfx.Text(song.title, 30, 955); + + -- Draw artist + gfx.Text(song.artist, 30, 997); +end + function tickTransitions(deltaTime) if transitionScrollScale < 1 then transitionScrollScale = transitionScrollScale + deltaTime / 0.1 -- transition should last for that time in seconds @@ -255,6 +315,7 @@ function tickTransitions(deltaTime) end end + render = function (deltaTime) resetLayoutInformation(); tickTransitions(deltaTime); @@ -269,6 +330,8 @@ render = function (deltaTime) drawSongList() drawCursor() + drawData() + gfx.BeginPath(); gfx.FontSize(18) diff --git a/textures/song_select/data_bg.png b/textures/song_select/data_bg_overlay.png similarity index 100% rename from textures/song_select/data_bg.png rename to textures/song_select/data_bg_overlay.png