67099e520c
Besides a few other minor retouches and additions, the biggest change is that the theme now has a fixed color scheme of yellow, orange, and dark magenta, and that many of the glossy graphics have been replaced by flatter versions with subtle shadows.
94 lines
3.0 KiB
Lua
94 lines
3.0 KiB
Lua
local PlayerNumber = ...
|
|
assert( PlayerNumber )
|
|
|
|
local bpm_text_zoom = 0.6
|
|
|
|
local song_bpms= {}
|
|
local bpm_text= "??? - ???"
|
|
local function format_bpm(bpm)
|
|
return ("%.0f"):format(bpm)
|
|
end
|
|
|
|
-- Courses don't have GetDisplayBpms.
|
|
if GAMESTATE:GetCurrentSong() then
|
|
song_bpms= GAMESTATE:GetCurrentSong():GetDisplayBpms()
|
|
song_bpms[1]= math.round(song_bpms[1])
|
|
song_bpms[2]= math.round(song_bpms[2])
|
|
if song_bpms[1] == song_bpms[2] then
|
|
bpm_text= format_bpm(song_bpms[1])
|
|
else
|
|
bpm_text= format_bpm(song_bpms[1]) .. " - " .. format_bpm(song_bpms[2])
|
|
end
|
|
end
|
|
|
|
local t = Def.ActorFrame {
|
|
LoadActor(THEME:GetPathB("_frame","3x1"),"rounded light", 250-16) .. {
|
|
OnCommand=cmd(diffuse,ColorLightTone(PlayerColor(PlayerNumber));diffusealpha,0.8);
|
|
};
|
|
LoadFont("Common Condensed") .. {
|
|
Text=ToEnumShortString(PlayerNumber);
|
|
Name="PlayerShortName",
|
|
InitCommand=cmd(x,-127;maxwidth,32;zoom,0.75;),
|
|
OnCommand=cmd(diffuse,ColorDarkTone(PlayerColor(PlayerNumber));)
|
|
},
|
|
LoadFont("_overpass 36px") .. {
|
|
Text=bpm_text;
|
|
Name="BPMRangeOld",
|
|
InitCommand=cmd(x,-60;maxwidth,88/bpm_text_zoom),
|
|
OnCommand=cmd(zoom,bpm_text_zoom;diffuse,ColorDarkTone(PlayerColor(PlayerNumber));)
|
|
},
|
|
LoadActor(THEME:GetPathG("_StepsDisplayListRow","arrow")) .. {
|
|
Name="Seperator",
|
|
InitCommand=cmd(x,4);
|
|
OnCommand=cmd(diffuse,ColorDarkTone(PlayerColor(PlayerNumber));)
|
|
},
|
|
LoadFont("_overpass 36px") .. {
|
|
Text="100 - 200000";
|
|
Text="100 - 200000";
|
|
Name="BPMRangeNew",
|
|
InitCommand= function(self)
|
|
self:x(68):maxwidth(88/bpm_text_zoom):zoom(bpm_text_zoom)
|
|
local speed, mode= GetSpeedModeAndValueFromPoptions(PlayerNumber)
|
|
self:playcommand("SpeedChoiceChanged", {pn= PlayerNumber, mode= mode, speed= speed})
|
|
end,
|
|
BPMWillNotChangeCommand=cmd(stopeffect;diffuse,ColorDarkTone(PlayerColor(PlayerNumber));),
|
|
BPMWillChangeCommand=cmd(diffuseshift;effectcolor1,Color.Black;effectcolor2,ColorMidTone(PlayerColor(PlayerNumber));),
|
|
SpeedChoiceChangedMessageCommand= function(self, param)
|
|
if param.pn ~= PlayerNumber then return end
|
|
local text= ""
|
|
local no_change= true
|
|
if param.mode == "x" then
|
|
if not song_bpms[1] then
|
|
text= "??? - ???"
|
|
elseif song_bpms[1] == song_bpms[2] then
|
|
text= format_bpm(song_bpms[1] * param.speed*.01)
|
|
else
|
|
text= format_bpm(song_bpms[1] * param.speed*.01) .. " - " ..
|
|
format_bpm(song_bpms[2] * param.speed*.01)
|
|
end
|
|
no_change= param.speed == 100
|
|
elseif param.mode == "C" then
|
|
text= param.mode .. param.speed
|
|
no_change= param.speed == song_bpms[2] and song_bpms[1] == song_bpms[2]
|
|
else
|
|
no_change= param.speed == song_bpms[2]
|
|
if song_bpms[1] == song_bpms[2] then
|
|
text= param.mode .. param.speed
|
|
else
|
|
local factor= song_bpms[1] / song_bpms[2]
|
|
text= param.mode .. format_bpm(param.speed * factor) .. " - "
|
|
.. param.mode .. param.speed
|
|
end
|
|
end
|
|
self:settext(text)
|
|
if no_change then
|
|
self:queuecommand("BPMWillNotChange")
|
|
else
|
|
self:queuecommand("BPMWillChange")
|
|
end
|
|
end
|
|
}
|
|
}
|
|
|
|
return t
|